Package: release.debian.org User: release.debian....@packages.debian.org Usertags: unblock Severity: normal
unblock fdroidserver/0.2.1-4 Fix RC bug to keep this package in testing, its related to all these: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=769912 It turned out to be non-trivial to change fdroidserver to also be able to use the system provided Android SDK utils (i.e. /usr/bin/aapt vs. ~/Documents/android-sdk/build-tools/21.1.2/aapt) so the debdiff isn't super short. But these are literally only changes needed for this functionality to work. It is still important that fdroidserver be able to use a user-installed Android SDK because lots of the SDK is not yet in Debian. The 0.2.1-4 update means that a user can maintain an app repo using only packages in Debian, but in order to build Android apps, they still need to install the Android SDK. $ debdiff fdroidserver_0.2.1-3.dsc fdroidserver_0.2.1-4.dsc diff -Nru fdroidserver-0.2.1/debian/changelog fdroidserver-0.2.1/debian/changelog --- fdroidserver-0.2.1/debian/changelog 2014-10-10 04:43:45.000000000 +0200 +++ fdroidserver-0.2.1/debian/changelog 2014-12-14 22:23:11.000000000 +0100 @@ -1,3 +1,11 @@ +fdroidserver (0.2.1-4) unstable; urgency=medium + + * Recommend android-tools-adb, aapt, zipalign to provide essential utilities + * include upstream commits that allow use of system-provided SDK utilities + (Closes: #769912) + + -- Hans-Christoph Steiner <h...@eds.org> Sun, 14 Dec 2014 20:22:07 +0100 + fdroidserver (0.2.1-3) unstable; urgency=low * fix local sync perms diff -Nru fdroidserver-0.2.1/debian/control fdroidserver-0.2.1/debian/control --- fdroidserver-0.2.1/debian/control 2014-10-10 04:12:19.000000000 +0200 +++ fdroidserver-0.2.1/debian/control 2014-12-14 22:06:17.000000000 +0100 @@ -18,11 +18,14 @@ Architecture: all Depends: ${python:Depends}, ${misc:Depends} -Recommends: openjdk-7-jre-headless, +Recommends: android-tools-adb, + aapt, + openjdk-7-jre-headless, openjdk-7-jdk, opensc, rsync, - wget + wget, + zipalign Suggests: bzr, git, gradle, diff -Nru fdroidserver-0.2.1/debian/patches/do-not-set-sdk_path-in-config.py-if-using-system-pro.patch fdroidserver-0.2.1/debian/patches/do-not-set-sdk_path-in-config.py-if-using-system-pro.patch --- fdroidserver-0.2.1/debian/patches/do-not-set-sdk_path-in-config.py-if-using-system-pro.patch 1970-01-01 01:00:00.000000000 +0100 +++ fdroidserver-0.2.1/debian/patches/do-not-set-sdk_path-in-config.py-if-using-system-pro.patch 2014-12-14 22:23:11.000000000 +0100 @@ -0,0 +1,139 @@ +From 5f5bcd2e11f45277b865400de14ea8e820318804 Mon Sep 17 00:00:00 2001 +From: Hans-Christoph Steiner <h...@eds.org> +Date: Tue, 9 Dec 2014 15:20:29 +0100 +Forwarded: not-needed +Origin: upstream, https://gitlab.com/fdroid/fdroidserver/merge_requests/31 +Subject: [PATCH 7/7] do not set sdk_path in config.py if using system-provided + aapt + +By not setting sdk_path when /usr/bin/aapt is found, sdk_path then defaults +to $ANDROID_HOME when its used. Since in this case, aapt will be used from +the system path, using aapt entirely ignores sdk_path. If the user runs +`fdroid build` in this setup, sdk_path will be $ANDROID_HOME, so it should +check the env vars for it, but maybe that doesn't actually work like that +yet. +--- + examples/config.py | 2 +- + fdroidserver/common.py | 9 ++++++--- + fdroidserver/init.py | 49 ++++++++++++++++++++++++++++--------------------- + 3 files changed, 35 insertions(+), 25 deletions(-) + +--- a/examples/config.py ++++ b/examples/config.py +@@ -9,7 +9,7 @@ + # Override the path to the Android NDK, $ANDROID_NDK by default + # ndk_path = "/path/to/android-ndk" + # Build tools version to be used +-build_tools = "20.0.0" ++# build_tools = "20.0.0" + + # Command for running Ant + # ant = "/path/to/ant" +--- a/fdroidserver/common.py ++++ b/fdroidserver/common.py +@@ -161,7 +161,7 @@ def find_sdk_tools_cmd(cmd): + '''find a working path to a tool from the Android SDK''' + + tooldirs = [] +- if 'sdk_path' in config and os.path.exists(config['sdk_path']): ++ if config is not None and 'sdk_path' in config and os.path.exists(config['sdk_path']): + # try to find a working path to this command, in all the recent possible paths + if 'build_tools' in config: + build_tools = os.path.join(config['sdk_path'], 'build-tools') +@@ -192,7 +192,11 @@ def find_sdk_tools_cmd(cmd): + def test_sdk_exists(c): + if 'sdk_path' not in c: + logging.error("'sdk_path' not set in config.py!") +- return False ++ if 'aapt' in c and os.path.isfile(c['aapt']): ++ return True ++ else: ++ logging.error("'sdk_path' not set in config.py!") ++ return False + if c['sdk_path'] is None: + # c['sdk_path'] is set to the value of ANDROID_HOME by default + logging.error('No Android SDK found! ANDROID_HOME is not set and sdk_path is not in config.py!') +--- a/fdroidserver/init.py ++++ b/fdroidserver/init.py +@@ -121,6 +121,7 @@ def main(): + prefix = os.path.normpath(os.path.join(os.path.dirname(__file__), '..')) + examplesdir = prefix + '/examples' + ++ aapt = None + fdroiddir = os.getcwd() + test_config = common.get_default_config() + +@@ -129,21 +130,28 @@ def main(): + if options.android_home is not None: + test_config['sdk_path'] = options.android_home + elif not common.test_sdk_exists(test_config): +- # if neither --android-home nor the default sdk_path exist, prompt the user +- default_sdk_path = '/opt/android-sdk' +- while not options.no_prompt: +- try: +- s = raw_input('Enter the path to the Android SDK (' +- + default_sdk_path + ') here:\n> ') +- except KeyboardInterrupt: +- print('') +- sys.exit(1) +- if re.match('^\s*$', s) is not None: +- test_config['sdk_path'] = default_sdk_path +- else: +- test_config['sdk_path'] = s +- if common.test_sdk_exists(test_config): +- break ++ if os.path.isfile('/usr/bin/aapt'): ++ # remove sdk_path and build_tools, they are not required ++ test_config.pop('sdk_path', None) ++ test_config.pop('build_tools', None) ++ # make sure at least aapt is found, since this can't do anything without it ++ test_config['aapt'] = common.find_sdk_tools_cmd('aapt') ++ else: ++ # if neither --android-home nor the default sdk_path exist, prompt the user ++ default_sdk_path = '/opt/android-sdk' ++ while not options.no_prompt: ++ try: ++ s = raw_input('Enter the path to the Android SDK (' ++ + default_sdk_path + ') here:\n> ') ++ except KeyboardInterrupt: ++ print('') ++ sys.exit(1) ++ if re.match('^\s*$', s) is not None: ++ test_config['sdk_path'] = default_sdk_path ++ else: ++ test_config['sdk_path'] = s ++ if common.test_sdk_exists(test_config): ++ break + if not common.test_sdk_exists(test_config): + sys.exit(3) + +@@ -154,16 +162,14 @@ def main(): + shutil.copy(os.path.join(examplesdir, 'fdroid-icon.png'), fdroiddir) + shutil.copyfile(os.path.join(examplesdir, 'config.py'), 'config.py') + os.chmod('config.py', 0o0600) +- write_to_config('sdk_path', test_config['sdk_path']) ++ if 'sdk_path' in test_config: ++ write_to_config('sdk_path', test_config['sdk_path']) + else: + logging.warn('Looks like this is already an F-Droid repo, cowardly refusing to overwrite it...') + logging.info('Try running `fdroid init` in an empty directory.') + sys.exit() + +- if os.path.exists('/usr/bin/aapt'): +- # make sure at least aapt is found, since this can't do anything without it +- config['aapt'] = common.find_sdk_tools_cmd('aapt') +- else: ++ if not 'aapt' in test_config or not os.path.isfile(test_config['aapt']): + # try to find a working aapt, in all the recent possible paths + build_tools = os.path.join(test_config['sdk_path'], 'build-tools') + aaptdirs = [] +@@ -270,7 +276,8 @@ def main(): + logging.info('Built repo based in "' + fdroiddir + '"') + logging.info('with this config:') + logging.info(' Android SDK:\t\t\t' + config['sdk_path']) +- logging.info(' Android SDK Build Tools:\t' + os.path.dirname(aapt)) ++ if aapt: ++ logging.info(' Android SDK Build Tools:\t' + os.path.dirname(aapt)) + logging.info(' Android NDK (optional):\t' + ndk_path) + logging.info(' Keystore for signing key:\t' + keystore) + if repo_keyalias is not None: diff -Nru fdroidserver-0.2.1/debian/patches/find-cmds-from-SDK-build-tools-in-a-more-flexible-wa.patch fdroidserver-0.2.1/debian/patches/find-cmds-from-SDK-build-tools-in-a-more-flexible-wa.patch --- fdroidserver-0.2.1/debian/patches/find-cmds-from-SDK-build-tools-in-a-more-flexible-wa.patch 1970-01-01 01:00:00.000000000 +0100 +++ fdroidserver-0.2.1/debian/patches/find-cmds-from-SDK-build-tools-in-a-more-flexible-wa.patch 2014-12-14 22:23:11.000000000 +0100 @@ -0,0 +1,218 @@ +From 924425646166673d930cd2b9d93825087646952d Mon Sep 17 00:00:00 2001 +From: Hans-Christoph Steiner <h...@eds.org> +Date: Tue, 9 Dec 2014 14:12:41 +0100 +Forwarded: not-needed +Origin: upstream, https://gitlab.com/fdroid/fdroidserver/merge_requests/31 +Subject: [PATCH 5/7] find cmds from SDK build-tools in a more flexible way, on + the fly + +This is a more flexible approach than testing for the complete SDK and +build-tools up front. This will only test for the commands that are +actually being run, so that if you only have `aapt` installed, you can do +`fdroid update` without errors, but other commands will still give +appropriate errors. + +This also makes the build_tools item in config.py optional, it is only +needed if you want to force a specific version of the build-tools. +--- + fdroidserver/build.py | 4 ++-- + fdroidserver/common.py | 56 ++++++++++++++++++++++++++++++++++++++++++-------- + fdroidserver/init.py | 47 ++++++++++++++++++++++-------------------- + fdroidserver/update.py | 4 ++-- + +--- a/fdroidserver/build.py ++++ b/fdroidserver/build.py +@@ -35,7 +35,7 @@ import logging + + import common + import metadata +-from common import FDroidException, BuildException, VCSException, FDroidPopen, SilentPopen ++from common import FDroidException, BuildException, VCSException, FDroidPopen, SdkToolsPopen + + try: + import paramiko +@@ -769,7 +769,7 @@ def build_local(app, thisbuild, vcs, bui + if not os.path.exists(src): + raise BuildException("Unsigned apk is not at expected location of " + src) + +- p = SilentPopen([config['aapt'], 'dump', 'badging', src]) ++ p = SdkToolsPopen(['aapt', 'dump', 'badging', src]) + + vercode = None + version = None +--- a/fdroidserver/common.py ++++ b/fdroidserver/common.py +@@ -122,9 +122,6 @@ def read_config(opts, config_file='confi + v = os.path.expanduser(v) + config[k] = os.path.expandvars(v) + +- if not test_build_tools_exists(config): +- sys.exit(3) +- + bin_paths = { + 'aapt': [ + os.path.join(config['sdk_path'], 'build-tools', config['build_tools'], 'aapt'), +@@ -186,7 +183,42 @@ def read_config(opts, config_file='confi + return config + + ++def find_sdk_tools_cmd(cmd): ++ '''find a working path to a tool from the Android SDK''' ++ ++ tooldirs = [] ++ if 'sdk_path' in config and os.path.exists(config['sdk_path']): ++ # try to find a working path to this command, in all the recent possible paths ++ if 'build_tools' in config: ++ build_tools = os.path.join(config['sdk_path'], 'build-tools') ++ # if 'build_tools' was manually set and exists, check only that one ++ configed_build_tools = os.path.join(build_tools, config['build_tools']) ++ if os.path.exists(configed_build_tools): ++ tooldirs.append(configed_build_tools) ++ else: ++ # no configed version, so hunt known paths for it ++ for f in sorted(os.listdir(build_tools), reverse=True): ++ if os.path.isdir(os.path.join(build_tools, f)): ++ tooldirs.append(os.path.join(build_tools, f)) ++ tooldirs.append(build_tools) ++ sdk_tools = os.path.join(config['sdk_path'], 'tools') ++ if os.path.exists(sdk_tools): ++ tooldirs.append(sdk_tools) ++ sdk_platform_tools = os.path.join(config['sdk_path'], 'platform-tools') ++ if os.path.exists(sdk_platform_tools): ++ tooldirs.append(sdk_platform_tools) ++ tooldirs.append('/usr/bin') ++ for d in tooldirs: ++ if os.path.isfile(os.path.join(d, cmd)): ++ return os.path.join(d, cmd) ++ # did not find the command, exit with error message ++ ensure_build_tools_exists(config) ++ ++ + def test_sdk_exists(c): ++ if 'sdk_path' not in c: ++ logging.error("'sdk_path' not set in config.py!") ++ return False + if c['sdk_path'] is None: + # c['sdk_path'] is set to the value of ANDROID_HOME by default + logging.error('No Android SDK found! ANDROID_HOME is not set and sdk_path is not in config.py!') +@@ -207,16 +239,15 @@ def test_sdk_exists(c): + return True + + +-def test_build_tools_exists(c): ++def ensure_build_tools_exists(c): + if not test_sdk_exists(c): +- return False ++ sys.exit(3) + build_tools = os.path.join(c['sdk_path'], 'build-tools') + versioned_build_tools = os.path.join(build_tools, c['build_tools']) + if not os.path.isdir(versioned_build_tools): + logging.critical('Android Build Tools path "' + + versioned_build_tools + '" does not exist!') +- return False +- return True ++ sys.exit(3) + + + def write_password_file(pwtype, password=None): +@@ -1588,8 +1619,7 @@ def isApkDebuggable(apkfile, config): + + :param apkfile: full path to the apk to check""" + +- p = SilentPopen([config['aapt'], +- 'dump', 'xmltree', apkfile, 'AndroidManifest.xml']) ++ p = SdkToolsPopen(['aapt', 'dump', 'xmltree', apkfile, 'AndroidManifest.xml']) + if p.returncode != 0: + logging.critical("Failed to get apk manifest information") + sys.exit(1) +@@ -1628,6 +1658,14 @@ class PopenResult: + output = '' + + ++def SdkToolsPopen(commands, cwd=None, shell=False): ++ cmd = commands[0] ++ if cmd not in config: ++ config[cmd] = find_sdk_tools_cmd(commands[0]) ++ return FDroidPopen([config[cmd]] + commands[1:], ++ cwd=cwd, shell=shell, output=False) ++ ++ + def SilentPopen(commands, cwd=None, shell=False): + return FDroidPopen(commands, cwd=cwd, shell=shell, output=False) + +--- a/fdroidserver/init.py ++++ b/fdroidserver/init.py +@@ -160,28 +160,31 @@ def main(): + logging.info('Try running `fdroid init` in an empty directory.') + sys.exit() + +- # try to find a working aapt, in all the recent possible paths +- build_tools = os.path.join(test_config['sdk_path'], 'build-tools') +- aaptdirs = [] +- aaptdirs.append(os.path.join(build_tools, test_config['build_tools'])) +- aaptdirs.append(build_tools) +- for f in os.listdir(build_tools): +- if os.path.isdir(os.path.join(build_tools, f)): +- aaptdirs.append(os.path.join(build_tools, f)) +- for d in sorted(aaptdirs, reverse=True): +- if os.path.isfile(os.path.join(d, 'aapt')): +- aapt = os.path.join(d, 'aapt') +- break +- if os.path.isfile(aapt): +- dirname = os.path.basename(os.path.dirname(aapt)) +- if dirname == 'build-tools': +- # this is the old layout, before versioned build-tools +- test_config['build_tools'] = '' +- else: +- test_config['build_tools'] = dirname +- write_to_config('build_tools', test_config['build_tools']) +- if not common.test_build_tools_exists(test_config): +- sys.exit(3) ++ if os.path.exists('/usr/bin/aapt'): ++ # make sure at least aapt is found, since this can't do anything without it ++ config['aapt'] = common.find_sdk_tools_cmd('aapt') ++ else: ++ # try to find a working aapt, in all the recent possible paths ++ build_tools = os.path.join(test_config['sdk_path'], 'build-tools') ++ aaptdirs = [] ++ aaptdirs.append(os.path.join(build_tools, test_config['build_tools'])) ++ aaptdirs.append(build_tools) ++ for f in os.listdir(build_tools): ++ if os.path.isdir(os.path.join(build_tools, f)): ++ aaptdirs.append(os.path.join(build_tools, f)) ++ for d in sorted(aaptdirs, reverse=True): ++ if os.path.isfile(os.path.join(d, 'aapt')): ++ aapt = os.path.join(d, 'aapt') ++ break ++ if os.path.isfile(aapt): ++ dirname = os.path.basename(os.path.dirname(aapt)) ++ if dirname == 'build-tools': ++ # this is the old layout, before versioned build-tools ++ test_config['build_tools'] = '' ++ else: ++ test_config['build_tools'] = dirname ++ write_to_config('build_tools', test_config['build_tools']) ++ common.ensure_build_tools_exists(test_config) + + # now that we have a local config.py, read configuration... + config = common.read_config(options) +--- a/fdroidserver/update.py ++++ b/fdroidserver/update.py +@@ -34,7 +34,7 @@ import logging + + import common + import metadata +-from common import FDroidPopen, SilentPopen ++from common import FDroidPopen, SdkToolsPopen + from metadata import MetaDataException + + +@@ -374,7 +374,7 @@ def scan_apks(apps, apkcache, repodir, k + thisinfo['features'] = [] + thisinfo['icons_src'] = {} + thisinfo['icons'] = {} +- p = SilentPopen([config['aapt'], 'dump', 'badging', apkfile]) ++ p = SdkToolsPopen(['aapt', 'dump', 'badging', apkfile]) + if p.returncode != 0: + if options.delete_unknown: + if os.path.exists(apkfile): diff -Nru fdroidserver-0.2.1/debian/patches/remove-redundant-test_sdk_exists-call-its-called-by-.patch fdroidserver-0.2.1/debian/patches/remove-redundant-test_sdk_exists-call-its-called-by-.patch --- fdroidserver-0.2.1/debian/patches/remove-redundant-test_sdk_exists-call-its-called-by-.patch 1970-01-01 01:00:00.000000000 +0100 +++ fdroidserver-0.2.1/debian/patches/remove-redundant-test_sdk_exists-call-its-called-by-.patch 2014-12-14 22:23:11.000000000 +0100 @@ -0,0 +1,27 @@ +From 0f71929e71d5b57562d6a9c2f73851139e68b0bb Mon Sep 17 00:00:00 2001 +From: Hans-Christoph Steiner <h...@eds.org> +Date: Mon, 8 Dec 2014 22:02:17 +0100 +Forwarded: not-needed +Origin: upstream, https://gitlab.com/fdroid/fdroidserver/merge_requests/31 +Subject: [PATCH 2/7] remove redundant test_sdk_exists() call, its called by + test_build_tools_exists() + +No need to call test_sdk_exists() before test_build_tools_exists() since +test_build_tools_exists() calls test_sdk_exists() as the first thing it +does. +--- + fdroidserver/common.py | 3 --- + 1 file changed, 3 deletions(-) + +--- a/fdroidserver/common.py ++++ b/fdroidserver/common.py +@@ -122,9 +122,6 @@ def read_config(opts, config_file='confi + v = os.path.expanduser(v) + config[k] = os.path.expandvars(v) + +- if not test_sdk_exists(config): +- sys.exit(3) +- + if not test_build_tools_exists(config): + sys.exit(3) + diff -Nru fdroidserver-0.2.1/debian/patches/run-all-SDK-tools-commands-using-SdkToolsPopen.patch fdroidserver-0.2.1/debian/patches/run-all-SDK-tools-commands-using-SdkToolsPopen.patch --- fdroidserver-0.2.1/debian/patches/run-all-SDK-tools-commands-using-SdkToolsPopen.patch 1970-01-01 01:00:00.000000000 +0100 +++ fdroidserver-0.2.1/debian/patches/run-all-SDK-tools-commands-using-SdkToolsPopen.patch 2014-12-14 22:23:11.000000000 +0100 @@ -0,0 +1,117 @@ +From fa1cc48d57a3b9b4a46ec814df819dd8c4fc057a Mon Sep 17 00:00:00 2001 +From: Hans-Christoph Steiner <h...@eds.org> +Date: Tue, 9 Dec 2014 15:15:36 +0100 +Forwarded: not-needed +Origin: upstream, https://gitlab.com/fdroid/fdroidserver/merge_requests/31 +Subject: [PATCH 6/7] run all SDK tools commands using SdkToolsPopen + +--- + fdroidserver/common.py | 32 +++----------------------------- + fdroidserver/install.py | 6 +++--- + fdroidserver/publish.py | 6 +++--- + +--- a/fdroidserver/common.py ++++ b/fdroidserver/common.py +@@ -122,32 +122,6 @@ def read_config(opts, config_file='confi + v = os.path.expanduser(v) + config[k] = os.path.expandvars(v) + +- bin_paths = { +- 'aapt': [ +- os.path.join(config['sdk_path'], 'build-tools', config['build_tools'], 'aapt'), +- ], +- 'zipalign': [ +- os.path.join(config['sdk_path'], 'tools', 'zipalign'), +- os.path.join(config['sdk_path'], 'build-tools', config['build_tools'], 'zipalign'), +- ], +- 'android': [ +- os.path.join(config['sdk_path'], 'tools', 'android'), +- ], +- 'adb': [ +- os.path.join(config['sdk_path'], 'platform-tools', 'adb'), +- ], +- } +- +- for b, paths in bin_paths.items(): +- config[b] = None +- for path in paths: +- if os.path.isfile(path): +- config[b] = path +- break +- if config[b] is None: +- logging.warn("Could not find %s in any of the following paths:\n%s" % ( +- b, '\n'.join(paths))) +- + # There is no standard, so just set up the most common environment + # variables + env = os.environ +@@ -1367,8 +1341,8 @@ def prepare_source(vcs, app, build, buil + + # Generate (or update) the ant build file, build.xml... + if build['update'] and build['update'] != ['no'] and build['type'] == 'ant': +- parms = [config['android'], 'update', 'lib-project'] +- lparms = [config['android'], 'update', 'project'] ++ parms = ['android', 'update', 'lib-project'] ++ lparms = ['android', 'update', 'project'] + + if build['target']: + parms += ['-t', build['target']] +@@ -1386,7 +1360,7 @@ def prepare_source(vcs, app, build, buil + else: + logging.debug("Updating subproject %s" % d) + cmd = lparms + ['-p', d] +- p = FDroidPopen(cmd, cwd=root_dir) ++ p = SdkToolsPopen(cmd, cwd=root_dir) + # Check to see whether an error was returned without a proper exit + # code (this is the case for the 'no target set or target invalid' + # error) +--- a/fdroidserver/install.py ++++ b/fdroidserver/install.py +@@ -25,14 +25,14 @@ from optparse import OptionParser, Optio + import logging + + import common +-from common import FDroidPopen, FDroidException ++from common import SdkToolsPopen, FDroidException + + options = None + config = None + + + def devices(): +- p = FDroidPopen([config['adb'], "devices"]) ++ p = SdkToolsPopen(['adb', "devices"]) + if p.returncode != 0: + raise FDroidException("An error occured when finding devices: %s" % p.output) + lines = p.output.splitlines() +@@ -100,7 +100,7 @@ def main(): + logging.info("Installing %s..." % apk) + for dev in devs: + logging.info("Installing %s on %s..." % (apk, dev)) +- p = FDroidPopen([config['adb'], "-s", dev, "install", apk]) ++ p = SdkToolsPopen(['adb', "-s", dev, "install", apk]) + fail = "" + for line in p.output.splitlines(): + if line.startswith("Failure"): +--- a/fdroidserver/publish.py ++++ b/fdroidserver/publish.py +@@ -28,7 +28,7 @@ import logging + + import common + import metadata +-from common import FDroidPopen, BuildException ++from common import FDroidPopen, SdkToolsPopen, BuildException + + config = None + options = None +@@ -160,8 +160,8 @@ def main(): + raise BuildException("Failed to sign application") + + # Zipalign it... +- p = FDroidPopen([config['zipalign'], '-v', '4', apkfile, +- os.path.join(output_dir, apkfilename)]) ++ p = SdkToolsPopen(['zipalign', '-v', '4', apkfile, ++ os.path.join(output_dir, apkfilename)]) + if p.returncode != 0: + raise BuildException("Failed to align application") + os.remove(apkfile) diff -Nru fdroidserver-0.2.1/debian/patches/series fdroidserver-0.2.1/debian/patches/series --- fdroidserver-0.2.1/debian/patches/series 2014-10-10 04:24:29.000000000 +0200 +++ fdroidserver-0.2.1/debian/patches/series 2014-12-14 22:06:17.000000000 +0100 @@ -2,3 +2,8 @@ hard-code-path-to-openjdk-7.patch fix-local-sync-perms.patch do-not-include-timestamps-in-.gz-files-of-docs.patch +remove-redundant-test_sdk_exists-call-its-called-by-.patch +switched-last-aapt-call-to-use-central-config-aapt.patch +find-cmds-from-SDK-build-tools-in-a-more-flexible-wa.patch +run-all-SDK-tools-commands-using-SdkToolsPopen.patch +do-not-set-sdk_path-in-config.py-if-using-system-pro.patch diff -Nru fdroidserver-0.2.1/debian/patches/switched-last-aapt-call-to-use-central-config-aapt.patch fdroidserver-0.2.1/debian/patches/switched-last-aapt-call-to-use-central-config-aapt.patch --- fdroidserver-0.2.1/debian/patches/switched-last-aapt-call-to-use-central-config-aapt.patch 1970-01-01 01:00:00.000000000 +0100 +++ fdroidserver-0.2.1/debian/patches/switched-last-aapt-call-to-use-central-config-aapt.patch 2014-12-14 22:23:11.000000000 +0100 @@ -0,0 +1,23 @@ +From f7c9eccc1f44f149692d0c6aaa3eecb29661e197 Mon Sep 17 00:00:00 2001 +From: Hans-Christoph Steiner <h...@eds.org> +Date: Mon, 8 Dec 2014 22:53:25 +0100 +Forwarded: not-needed +Origin: upstream, https://gitlab.com/fdroid/fdroidserver/merge_requests/31 +Subject: [PATCH 3/7] switched last aapt call to use central config['aapt'] + +--- + fdroidserver/common.py | 3 +-- + 1 file changed, 1 insertion(+), 2 deletions(-) + +--- a/fdroidserver/common.py ++++ b/fdroidserver/common.py +@@ -1588,8 +1588,7 @@ def isApkDebuggable(apkfile, config): + + :param apkfile: full path to the apk to check""" + +- p = SilentPopen([os.path.join(config['sdk_path'], 'build-tools', +- config['build_tools'], 'aapt'), ++ p = SilentPopen([config['aapt'], + 'dump', 'xmltree', apkfile, 'AndroidManifest.xml']) + if p.returncode != 0: + logging.critical("Failed to get apk manifest information")
signature.asc
Description: OpenPGP digital signature