1
0
mirror of https://gitlab.com/fdroid/fdroidserver.git synced 2024-11-04 22:40:12 +01:00

Use pre-retrieved Binary when publishing

This allows this system to work when the machine that runs 'fdroid
publish' is offline.
This commit is contained in:
Ciaran Gultnieks 2015-01-31 15:36:57 +00:00
parent d1c03fbdbf
commit 3e7046e23b

View File

@ -124,31 +124,9 @@ def main():
# It's an app where we build from source, and verify the apk # It's an app where we build from source, and verify the apk
# contents against a developer's binary, and then publish their # contents against a developer's binary, and then publish their
# version if everything checks out. # version if everything checks out.
# The binary should already have been retrieved during the build
# Need the version name for the version code... # process.
versionname = None srcapk = apkfile + ".binary"
for build in app['builds']:
if build['vercode'] == vercode:
versionname = build['version']
break
if not versionname:
logging.error("...no defined build for version code {0}"
.format(vercode))
continue
# Figure out where the developer's binary is supposed to come from...
url = app['Binaries']
url = url.replace('%v', versionname)
url = url.replace('%c', str(vercode))
# Grab the binary from where the developer publishes it...
logging.info("...retrieving " + url)
srcapk = os.path.join(tmp_dir, url.split('/')[-1])
p = FDroidPopen(['wget', '-nv', '--continue', url], cwd=tmp_dir)
if p.returncode != 0 or not os.path.exists(srcapk):
logging.error("...failed to retrieve " + url +
" - publish skipped")
continue
# Compare our unsigned one with the downloaded one... # Compare our unsigned one with the downloaded one...
compare_result = common.compare_apks(srcapk, apkfile, tmp_dir) compare_result = common.compare_apks(srcapk, apkfile, tmp_dir)
@ -157,8 +135,10 @@ def main():
+ compare_result) + compare_result)
continue continue
# Success! So move the downloaded file to the repo... # Success! So move the downloaded file to the repo, and remove
# our built version.
shutil.move(srcapk, os.path.join(output_dir, apkfilename)) shutil.move(srcapk, os.path.join(output_dir, apkfilename))
os.remove(apkfile)
else: else: