logging.info("...retrieving " + url)
of = "{0}_{1}.apk.binary".format(app['id'], thisbuild['vercode'])
of = os.path.join(output_dir, of)
- p = FDroidPopen(['wget', '-nv', '-O', of, url])
- if p.returncode != 0 or not os.path.exists(of):
- raise BuildException("...failed to retrieve " + url)
+ common.download_file(url, local_filename=of)
build_succeeded.append(app)
wikilog = "Build succeeded"
import re
import shutil
import glob
+import requests
import stat
import subprocess
import time
'keystore': 'keystore.jks',
'smartcardoptions': [],
'char_limits': {
- 'Summary': 50,
- 'Description': 1500
+ 'Summary': 80,
+ 'Description': 4000
},
'keyaliases': {},
'repo_url': "https://MyFirstFDroidRepo.org/fdroid/repo",
return True
except ValueError:
return False
+
+
+def download_file(url, local_filename=None, dldir='tmp'):
+ filename = url.split('/')[-1]
+ if local_filename is None:
+ local_filename = os.path.join(dldir, filename)
+ # the stream=True parameter keeps memory usage low
+ r = requests.get(url, stream=True)
+ with open(local_filename, 'wb') as f:
+ for chunk in r.iter_content(chunk_size=1024):
+ if chunk: # filter out keep-alive new chunks
+ f.write(chunk)
+ f.flush()
+ return local_filename
import zipfile
import hashlib
import pickle
+from datetime import datetime, timedelta
from xml.dom.minidom import Document
from optparse import OptionParser
import time
apk = zipfile.ZipFile(apkfile, 'r')
+ # if an APK has files newer than the system time, suggest updating
+ # the system clock. This is useful for offline systems, used for
+ # signing, which do not have another source of clock sync info. It
+ # has to be more than 24 hours newer because ZIP/APK files do not
+ # store timezone info
+ info = apk.getinfo('AndroidManifest.xml')
+ dt_obj = datetime(*info.date_time)
+ checkdt = dt_obj - timedelta(1)
+ if datetime.today() < checkdt:
+ logging.warn('System clock is older than manifest in: '
+ + apkfilename + '\nSet clock to that time using:\n'
+ + 'sudo date -s "' + str(dt_obj) + '"')
+
iconfilename = "%s.%s.png" % (
thisinfo['id'],
thisinfo['versioncode'])
import logging
import common
-from common import FDroidPopen, FDroidException
+from common import FDroidException
options = None
config = None
os.remove(remoteapk)
url = 'https://f-droid.org/repo/' + apkfilename
logging.info("...retrieving " + url)
- p = FDroidPopen(['wget', '-nv', url], cwd=tmp_dir)
- if p.returncode != 0:
- raise FDroidException("Failed to get " + apkfilename)
+ common.download_file(url, dldir=tmp_dir)
compare_result = common.compare_apks(
os.path.join(unsigned_dir, apkfilename),
'apache-libcloud >= 0.14.1',
'pyasn1',
'pyasn1-modules',
+ 'requests',
],
classifiers=[
'Development Status :: 3 - Alpha',