From 262be1880dd7068e933771d350b0bc360e256866 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Tue, 3 Jan 2012 21:39:30 +0000 Subject: [PATCH 01/75] Got rid of source preparation code duplication --- build.py | 228 ++------------------------------------------------- common.py | 235 +++++++++++++++++++++++++++++++++++++++++++++++++++++ scanner.py | 105 ++++++++---------------- 3 files changed, 277 insertions(+), 291 deletions(-) diff --git a/build.py b/build.py index a7b09139..d4ba7004 100755 --- a/build.py +++ b/build.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- # # build.py - part of the FDroid server tools -# Copyright (C) 2010-11, Ciaran Gultnieks, ciaran@ciarang.com +# Copyright (C) 2010-12, Ciaran Gultnieks, ciaran@ciarang.com # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by @@ -102,227 +102,11 @@ for app in apps: else: print "..building version " + thisbuild['version'] - if not refreshed_source: - vcs.refreshlocal() - refreshed_source = True - - # Optionally, the actual app source can be in a subdirectory... - if thisbuild.has_key('subdir'): - root_dir = os.path.join(build_dir, thisbuild['subdir']) - else: - root_dir = build_dir - - # Get a working copy of the right revision... - if options.verbose: - print "Resetting repository to " + thisbuild['commit'] - vcs.reset(thisbuild['commit']) - - # Initialise submodules if requred... - if thisbuild.get('submodules', 'no') == 'yes': - vcs.initsubmodules() - - # Generate (or update) the ant build file, build.xml... - if (thisbuild.get('update', 'yes') == 'yes' and - not thisbuild.has_key('maven')): - parms = [os.path.join(sdk_path, 'tools', 'android'), - 'update', 'project', '-p', '.'] - parms.append('--subprojects') - if thisbuild.has_key('target'): - parms.append('-t') - parms.append(thisbuild['target']) - if subprocess.call(parms, cwd=root_dir) != 0: - raise BuildException("Failed to update project") - - # If the app has ant set up to sign the release, we need to switch - # that off, because we want the unsigned apk... - for propfile in ('build.properties', 'default.properties'): - if os.path.exists(os.path.join(root_dir, propfile)): - if subprocess.call(['sed','-i','s/^key.store/#/', - propfile], cwd=root_dir) !=0: - raise BuildException("Failed to amend %s" % propfile) - - # Update the local.properties file... - locprops = os.path.join(root_dir, 'local.properties') - if os.path.exists(locprops): - f = open(locprops, 'r') - props = f.read() - f.close() - # Fix old-fashioned 'sdk-location' by copying - # from sdk.dir, if necessary... - if thisbuild.get('oldsdkloc', 'no') == "yes": - sdkloc = re.match(r".*^sdk.dir=(\S+)$.*", props, - re.S|re.M).group(1) - props += "\nsdk-location=" + sdkloc + "\n" - # Add ndk location... - props+= "\nndk.dir=" + ndk_path + "\n" - # Add java.encoding if necessary... - if thisbuild.has_key('encoding'): - props += "\njava.encoding=" + thisbuild['encoding'] + "\n" - f = open(locprops, 'w') - f.write(props) - f.close() - - # Insert version code and number into the manifest if necessary... - if thisbuild.has_key('insertversion'): - if subprocess.call(['sed','-i','s/' + thisbuild['insertversion'] + - '/' + thisbuild['version'] +'/g', - 'AndroidManifest.xml'], cwd=root_dir) !=0: - raise BuildException("Failed to amend manifest") - if thisbuild.has_key('insertvercode'): - if subprocess.call(['sed','-i','s/' + thisbuild['insertvercode'] + - '/' + thisbuild['vercode'] +'/g', - 'AndroidManifest.xml'], cwd=root_dir) !=0: - raise BuildException("Failed to amend manifest") - - # Delete unwanted file... - if thisbuild.has_key('rm'): - os.remove(os.path.join(build_dir, thisbuild['rm'])) - - # Fix apostrophes translation files if necessary... - if thisbuild.get('fixapos', 'no') == 'yes': - for root, dirs, files in os.walk(os.path.join(root_dir,'res')): - for filename in files: - if filename.endswith('.xml'): - if subprocess.call(['sed','-i','s@' + - r"\([^\\]\)'@\1\\'" + - '@g', - os.path.join(root, filename)]) != 0: - raise BuildException("Failed to amend " + filename) - - # Fix translation files if necessary... - if thisbuild.get('fixtrans', 'no') == 'yes': - for root, dirs, files in os.walk(os.path.join(root_dir,'res')): - for filename in files: - if filename.endswith('.xml'): - f = open(os.path.join(root, filename)) - changed = False - outlines = [] - for line in f: - num = 1 - index = 0 - oldline = line - while True: - index = line.find("%", index) - if index == -1: - break - next = line[index+1:index+2] - if next == "s" or next == "d": - line = (line[:index+1] + - str(num) + "$" + - line[index+1:]) - num += 1 - index += 3 - else: - index += 1 - # We only want to insert the positional arguments - # when there is more than one argument... - if oldline != line: - if num > 2: - changed = True - else: - line = oldline - outlines.append(line) - f.close() - if changed: - f = open(os.path.join(root, filename), 'w') - f.writelines(outlines) - f.close() - - # Run a pre-build command if one is required... - if thisbuild.has_key('prebuild'): - if subprocess.call(thisbuild['prebuild'], - cwd=root_dir, shell=True) != 0: - raise BuildException("Error running pre-build command") - - # Apply patches if any - if 'patch' in thisbuild: - for patch in thisbuild['patch'].split(';'): - print "Applying " + patch - patch_path = os.path.join('metadata', app['id'], patch) - if subprocess.call(['patch', '-p1', - '-i', os.path.abspath(patch_path)], cwd=build_dir) != 0: - raise BuildException("Failed to apply patch %s" % patch_path) - - # Special case init functions for funambol... - if thisbuild.get('initfun', 'no') == "yes": - - if subprocess.call(['sed','-i','s@' + - '' + - '@' + - '' + - '' + - '' + - '' + - '' + - '@g', - 'build.xml'], cwd=root_dir) !=0: - raise BuildException("Failed to amend build.xml") - - if subprocess.call(['sed','-i','s@' + - '\${user.home}/funambol/build/android/build.properties' + - '@' + - 'build.properties' + - '@g', - 'build.xml'], cwd=root_dir) !=0: - raise BuildException("Failed to amend build.xml") - - buildxml = os.path.join(root_dir, 'build.xml') - f = open(buildxml, 'r') - xml = f.read() - f.close() - xmlout = "" - mode = 0 - for line in xml.splitlines(): - if mode == 0: - if line.find("jarsigner") != -1: - mode = 1 - else: - xmlout += line + "\n" - else: - if line.find("/exec") != -1: - mode += 1 - if mode == 3: - mode =0 - f = open(buildxml, 'w') - f.write(xmlout) - f.close() - - if subprocess.call(['sed','-i','s@' + - 'platforms/android-2.0' + - '@' + - 'platforms/android-8' + - '@g', - 'build.xml'], cwd=root_dir) !=0: - raise BuildException("Failed to amend build.xml") - - shutil.copyfile( - os.path.join(root_dir, "build.properties.example"), - os.path.join(root_dir, "build.properties")) - - if subprocess.call(['sed','-i','s@' + - 'javacchome=.*'+ - '@' + - 'javacchome=' + javacc_path + - '@g', - 'build.properties'], cwd=root_dir) !=0: - raise BuildException("Failed to amend build.properties") - - if subprocess.call(['sed','-i','s@' + - 'sdk-folder=.*'+ - '@' + - 'sdk-folder=' + sdk_path + - '@g', - 'build.properties'], cwd=root_dir) !=0: - raise BuildException("Failed to amend build.properties") - - if subprocess.call(['sed','-i','s@' + - 'android.sdk.version.*'+ - '@' + - 'android.sdk.version=2.0' + - '@g', - 'build.properties'], cwd=root_dir) !=0: - raise BuildException("Failed to amend build.properties") - + # Prepare the source code... + root_dir = common.prepare_source(vcs, app, thisbuild, + build_dir, sdk_path, ndk_path, + not refreshed_source) + refreshed_source = True # Build the source tarball right before we build the release... tarname = app['id'] + '_' + thisbuild['vercode'] + '_src' diff --git a/common.py b/common.py index a7d4d613..a1abfeca 100644 --- a/common.py +++ b/common.py @@ -355,3 +355,238 @@ class MetaDataException(Exception): def __str__(self): return repr(self.value) + +# Prepare the source code for a particular build +# 'vcs' - the appropriate vcs object for the application +# 'app' - the application details from the metadata +# 'build' - the build details from the metadata +# 'build_dir' - the path to the build directory +# 'sdk_path' - the path to the Android SDK +# 'ndk_path' - the path to the Android NDK +# 'refresh' - True to refresh from the remote repo +# Returns the root directory, which may be the same as 'build_dir' or may +# be a subdirectory of it. +def prepare_source(vcs, app, build, build_dir, sdk_path, ndk_path, refresh): + + if refresh: + vcs.refreshlocal() + + # Optionally, the actual app source can be in a subdirectory... + if build.has_key('subdir'): + root_dir = os.path.join(build_dir, build['subdir']) + else: + root_dir = build_dir + + # Get a working copy of the right revision... + if options.verbose: + print "Resetting repository to " + build['commit'] + vcs.reset(build['commit']) + + # Initialise submodules if requred... + if build.get('submodules', 'no') == 'yes': + vcs.initsubmodules() + + # Generate (or update) the ant build file, build.xml... + if (build.get('update', 'yes') == 'yes' and + not build.has_key('maven')): + parms = [os.path.join(sdk_path, 'tools', 'android'), + 'update', 'project', '-p', '.'] + parms.append('--subprojects') + if build.has_key('target'): + parms.append('-t') + parms.append(build['target']) + if subprocess.call(parms, cwd=root_dir) != 0: + raise BuildException("Failed to update project") + + # If the app has ant set up to sign the release, we need to switch + # that off, because we want the unsigned apk... + for propfile in ('build.properties', 'default.properties'): + if os.path.exists(os.path.join(root_dir, propfile)): + if subprocess.call(['sed','-i','s/^key.store/#/', + propfile], cwd=root_dir) !=0: + raise BuildException("Failed to amend %s" % propfile) + + # Update the local.properties file... + locprops = os.path.join(root_dir, 'local.properties') + if os.path.exists(locprops): + f = open(locprops, 'r') + props = f.read() + f.close() + # Fix old-fashioned 'sdk-location' by copying + # from sdk.dir, if necessary... + if build.get('oldsdkloc', 'no') == "yes": + sdkloc = re.match(r".*^sdk.dir=(\S+)$.*", props, + re.S|re.M).group(1) + props += "\nsdk-location=" + sdkloc + "\n" + # Add ndk location... + props+= "\nndk.dir=" + ndk_path + "\n" + # Add java.encoding if necessary... + if build.has_key('encoding'): + props += "\njava.encoding=" + build['encoding'] + "\n" + f = open(locprops, 'w') + f.write(props) + f.close() + + # Insert version code and number into the manifest if necessary... + if build.has_key('insertversion'): + if subprocess.call(['sed','-i','s/' + build['insertversion'] + + '/' + build['version'] +'/g', + 'AndroidManifest.xml'], cwd=root_dir) !=0: + raise BuildException("Failed to amend manifest") + if build.has_key('insertvercode'): + if subprocess.call(['sed','-i','s/' + build['insertvercode'] + + '/' + build['vercode'] +'/g', + 'AndroidManifest.xml'], cwd=root_dir) !=0: + raise BuildException("Failed to amend manifest") + + # Delete unwanted file... + if build.has_key('rm'): + os.remove(os.path.join(build_dir, build['rm'])) + + # Fix apostrophes translation files if necessary... + if build.get('fixapos', 'no') == 'yes': + for root, dirs, files in os.walk(os.path.join(root_dir,'res')): + for filename in files: + if filename.endswith('.xml'): + if subprocess.call(['sed','-i','s@' + + r"\([^\\]\)'@\1\\'" + + '@g', + os.path.join(root, filename)]) != 0: + raise BuildException("Failed to amend " + filename) + + # Fix translation files if necessary... + if build.get('fixtrans', 'no') == 'yes': + for root, dirs, files in os.walk(os.path.join(root_dir,'res')): + for filename in files: + if filename.endswith('.xml'): + f = open(os.path.join(root, filename)) + changed = False + outlines = [] + for line in f: + num = 1 + index = 0 + oldline = line + while True: + index = line.find("%", index) + if index == -1: + break + next = line[index+1:index+2] + if next == "s" or next == "d": + line = (line[:index+1] + + str(num) + "$" + + line[index+1:]) + num += 1 + index += 3 + else: + index += 1 + # We only want to insert the positional arguments + # when there is more than one argument... + if oldline != line: + if num > 2: + changed = True + else: + line = oldline + outlines.append(line) + f.close() + if changed: + f = open(os.path.join(root, filename), 'w') + f.writelines(outlines) + f.close() + + # Run a pre-build command if one is required... + if build.has_key('prebuild'): + if subprocess.call(build['prebuild'], + cwd=root_dir, shell=True) != 0: + raise BuildException("Error running pre-build command") + + # Apply patches if any + if 'patch' in build: + for patch in build['patch'].split(';'): + print "Applying " + patch + patch_path = os.path.join('metadata', app['id'], patch) + if subprocess.call(['patch', '-p1', + '-i', os.path.abspath(patch_path)], cwd=build_dir) != 0: + raise BuildException("Failed to apply patch %s" % patch_path) + + # Special case init functions for funambol... + if build.get('initfun', 'no') == "yes": + + if subprocess.call(['sed','-i','s@' + + '' + + '@' + + '' + + '' + + '' + + '' + + '' + + '@g', + 'build.xml'], cwd=root_dir) !=0: + raise BuildException("Failed to amend build.xml") + + if subprocess.call(['sed','-i','s@' + + '\${user.home}/funambol/build/android/build.properties' + + '@' + + 'build.properties' + + '@g', + 'build.xml'], cwd=root_dir) !=0: + raise BuildException("Failed to amend build.xml") + + buildxml = os.path.join(root_dir, 'build.xml') + f = open(buildxml, 'r') + xml = f.read() + f.close() + xmlout = "" + mode = 0 + for line in xml.splitlines(): + if mode == 0: + if line.find("jarsigner") != -1: + mode = 1 + else: + xmlout += line + "\n" + else: + if line.find("/exec") != -1: + mode += 1 + if mode == 3: + mode =0 + f = open(buildxml, 'w') + f.write(xmlout) + f.close() + + if subprocess.call(['sed','-i','s@' + + 'platforms/android-2.0' + + '@' + + 'platforms/android-8' + + '@g', + 'build.xml'], cwd=root_dir) !=0: + raise BuildException("Failed to amend build.xml") + + shutil.copyfile( + os.path.join(root_dir, "build.properties.example"), + os.path.join(root_dir, "build.properties")) + + if subprocess.call(['sed','-i','s@' + + 'javacchome=.*'+ + '@' + + 'javacchome=' + javacc_path + + '@g', + 'build.properties'], cwd=root_dir) !=0: + raise BuildException("Failed to amend build.properties") + + if subprocess.call(['sed','-i','s@' + + 'sdk-folder=.*'+ + '@' + + 'sdk-folder=' + sdk_path + + '@g', + 'build.properties'], cwd=root_dir) !=0: + raise BuildException("Failed to amend build.properties") + + if subprocess.call(['sed','-i','s@' + + 'android.sdk.version.*'+ + '@' + + 'android.sdk.version=2.0' + + '@g', + 'build.properties'], cwd=root_dir) !=0: + raise BuildException("Failed to amend build.properties") + + return root_dir + diff --git a/scanner.py b/scanner.py index 843c287f..32fd0a38 100755 --- a/scanner.py +++ b/scanner.py @@ -1,4 +1,4 @@ -#!/usr/bin/env python2 +#!/usr/bin/env python # -*- coding: utf-8 -*- # # scanner.py - part of the FDroid server tools @@ -27,6 +27,8 @@ import subprocess from optparse import OptionParser import HTMLParser import common +from common import BuildException +from common import VCSException #Read configuration... execfile('config.py') @@ -57,83 +59,48 @@ for app in apps: print "Processing " + app['id'] - build_dir = 'build/' + app['id'] + try: - # Set up vcs interface and make sure we have the latest code... - vcs = common.getvcs(app['repotype'], app['repo'], build_dir) + build_dir = 'build/' + app['id'] - refreshed_source = False + # Set up vcs interface and make sure we have the latest code... + vcs = common.getvcs(app['repotype'], app['repo'], build_dir) + + refreshed_source = False - for thisbuild in app['builds']: + for thisbuild in app['builds']: - if thisbuild['commit'].startswith('!'): - print ("..skipping version " + thisbuild['version'] + " - " + - thisbuild['commit'][1:]) - else: - print "..scanning version " + thisbuild['version'] + if thisbuild['commit'].startswith('!'): + print ("..skipping version " + thisbuild['version'] + " - " + + thisbuild['commit'][1:]) + else: + print "..scanning version " + thisbuild['version'] - if not refreshed_source: - vcs.refreshlocal() + # Prepare the source code... + root_dir = common.prepare_source(vcs, app, thisbuild, + build_dir, sdk_path, ndk_path, + not refreshed_source) refreshed_source = True - # Optionally, the actual app source can be in a subdirectory... - if thisbuild.has_key('subdir'): - root_dir = os.path.join(build_dir, thisbuild['subdir']) - else: - root_dir = build_dir + # Scan for common known non-free blobs: + usual_suspects = ['flurryagent.jar', 'paypal_mpl.jar'] + for r,d,f in os.walk(build_dir): + for curfile in f: + if curfile.lower() in usual_suspects: + msg = 'Found probable non-free blob ' + os.path.join(r,file) + msg += ' in ' + app['id'] + ' ' + thisbuild['version'] + problems.append(msg) - # Get a working copy of the right revision... - if options.verbose: - print "Resetting repository to " + thisbuild['commit'] - vcs.reset(thisbuild['commit']) - - # Initialise submodules if requred... - if thisbuild.get('submodules', 'no') == 'yes': - vcs.initsubmodules() - - # Generate (or update) the ant build file, build.xml... - if (thisbuild.get('update', 'yes') == 'yes' and - not thisbuild.has_key('maven')): - parms = [os.path.join(sdk_path, 'tools', 'android'), - 'update', 'project', '-p', '.'] - parms.append('--subprojects') - if thisbuild.has_key('target'): - parms.append('-t') - parms.append(thisbuild['target']) - if subprocess.call(parms, cwd=root_dir) != 0: - print "Failed to update project" - sys.exit(1) - - # Delete unwanted file... - if thisbuild.has_key('rm'): - os.remove(os.path.join(build_dir, thisbuild['rm'])) - - # Run a pre-build command if one is required... - if thisbuild.has_key('prebuild'): - if subprocess.call(thisbuild['prebuild'], - cwd=root_dir, shell=True) != 0: - print "Error running pre-build command" - sys.exit(1) - - # Apply patches if any - if 'patch' in thisbuild: - for patch in thisbuild['patch'].split(';'): - print "Applying " + patch - patch_path = os.path.join('metadata', app['id'], patch) - if subprocess.call(['patch', '-p1', - '-i', os.path.abspath(patch_path)], cwd=build_dir) != 0: - print "Failed to apply patch %s" % patch_path - sys.exit(1) - - # Scan for common known non-free blobs: - usual_suspects = ['flurryagent.jar', 'paypal_mpl.jar'] - for r,d,f in os.walk(build_dir): - for curfile in f: - if curfile.lower() in usual_suspects: - msg = 'Found probable non-free blob ' + os.path.join(r,file) - msg += ' in ' + app['id'] + ' ' + thisbuild['version'] - problems.append(msg) + except BuildException as be: + msg = "Could not scan app %s due to BuildException: %s" % (app['id'], be) + problems.append(msg) + except VCSException as vcse: + msg = "VCS error while scanning app %s: %s" % (app['id'], vcse) + problems.append(msg) + except Exception as e: + msg = "Could not scan app %s due to unknown error: %s" % (app['id'], e) + problems.append(msg) print "Finished:" for problem in problems: From 79364ff60db67f4669445d908d777cde99aeddfa Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Wed, 4 Jan 2012 21:22:50 +0000 Subject: [PATCH 02/75] Whoops, that always had the non-free blob - disabled --- metadata/com.zegoggles.smssync.txt | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/metadata/com.zegoggles.smssync.txt b/metadata/com.zegoggles.smssync.txt index 3d0b5c65..7e5d9ea6 100644 --- a/metadata/com.zegoggles.smssync.txt +++ b/metadata/com.zegoggles.smssync.txt @@ -1,3 +1,4 @@ +Disabled:Non-free blob Use Built:Yes License:Apache2 Category:System @@ -8,10 +9,6 @@ Summary:Backup SMS and call logs to IMAP Description: Backups up SMS and call log data from the device to an IMAP server, or Gmail. - -There are newer versions of this application avaiable elsewhere, but -these include non-free software components and are not available via -F-Droid. . Repo Type:git @@ -19,7 +16,7 @@ Repo:https://github.com/jberkel/sms-backup-plus.git Build Version:1.4.3,1404,1.4.3 Build Version:1.4.4,1405,1.4.4,target=android-9,prebuild=mv lib libs -Build Version:1.4.5,1406,!Non-free blob now included +Build Version:1.4.5,1406,1.4.5,target=android-9,prebuild=mv lib libs Market Version:1.4.5 Market Version Code:1406 From 14bc39010b1c5631197e68fcc4f806ae05d468ec Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Wed, 4 Jan 2012 21:37:11 +0000 Subject: [PATCH 03/75] Various fixes and improvements, and git-svn support --- README | 12 ++-- build.py | 8 ++- common.py | 56 +++++++++++++++---- metadata/An.stop.txt | 2 +- metadata/android.androidVNC.txt | 2 +- metadata/com.agiro.scanner.android.txt | 2 +- .../com.android.inputmethod.norwegian.txt | 2 +- metadata/com.funambol.androidsync.txt | 2 +- metadata/org.jessies.mathdroid.txt | 4 +- scanner.py | 25 ++++++--- 10 files changed, 81 insertions(+), 34 deletions(-) diff --git a/README b/README index f10a9a3c..a76a34ad 100644 --- a/README +++ b/README @@ -91,7 +91,11 @@ The type of repository - for automatic building from source. If this is not specified, automatic building is disabled for this application. Possible values are: - git, svn, hg, bzr + git, git-svn, svn, hg, bzr + +The git-svn option connects to an SVN repository, and you specify the URL in +exactly the same way, but git is used as a back-end. This is preferable for +performance reasons. ==Repo== @@ -99,7 +103,7 @@ The repository location. Usually a git: or svn: URL. For a Subversion repo that requires authentication, you can precede the repo URL with username:password@ and those parameters will be passed as --username -and --password to the SVN checkout command. +and --password to the SVN checkout command. (Doesn't work for git-svn). ==Build Version== @@ -125,9 +129,7 @@ configuration to the build. These are: subdir= - Specifies to build from a subdirectory of the checked out source code. Normally this directory is changed to before - building, but there is a special case for SVN repositories - where the URL is specified with a * at the end. See the - documentation for the Repo field for more information. + building. bindir= - Normally the build output (apk) is expected to be in the bin subdirectory below the ant build files. If the project is configured to put it elsewhere, that can be specified diff --git a/build.py b/build.py index d4ba7004..be4fc3d0 100755 --- a/build.py +++ b/build.py @@ -104,7 +104,7 @@ for app in apps: # Prepare the source code... root_dir = common.prepare_source(vcs, app, thisbuild, - build_dir, sdk_path, ndk_path, + build_dir, sdk_path, ndk_path, javacc_path, not refreshed_source) refreshed_source = True @@ -112,7 +112,11 @@ for app in apps: tarname = app['id'] + '_' + thisbuild['vercode'] + '_src' tarball = tarfile.open(os.path.join(output_dir, tarname + '.tar.gz'), "w:gz") - tarball.add(build_dir, tarname) + def tarexc(f): + if f in ['.svn', '.git', '.hg', '.bzr']: + return True + return False + tarball.add(build_dir, tarname, exclude=tarexc) tarball.close() # Build native stuff if required... diff --git a/common.py b/common.py index a1abfeca..052122bf 100644 --- a/common.py +++ b/common.py @@ -17,6 +17,7 @@ # along with this program. If not, see . import glob, os, sys, re +import shutil import subprocess @@ -25,6 +26,8 @@ def getvcs(vcstype, remote, local): return vcs_git(remote, local) elif vcstype == 'svn': return vcs_svn(remote, local) + elif vcstype == 'git-svn': + return vcs_gitsvn(remote, local) elif vcstype == 'hg': return vcs_hg(remote,local) elif vcstype == 'bzr': @@ -114,6 +117,33 @@ class vcs_git(vcs): raise VCSException("Git submodule update failed") +class vcs_gitsvn(vcs): + + def clone(self): + if subprocess.call(['git', 'svn', 'clone', self.remote, self.local]) != 0: + raise VCSException("Git clone failed") + + def reset(self, rev=None): + if rev is None: + rev = 'HEAD' + else: + p = subprocess.Popen(['git', 'svn', 'find-rev', 'r' + rev], + cwd=self.local, stdout=subprocess.PIPE) + rev = p.communicate()[0].rstrip() + if p.returncode != 0: + raise VCSException("Failed to get git treeish from svn rev") + if subprocess.call(['git', 'reset', '--hard', rev], + cwd=self.local) != 0: + raise VCSException("Git reset failed") + if subprocess.call(['git', 'clean', '-dfx'], + cwd=self.local) != 0: + raise VCSException("Git clean failed") + + def pull(self): + if subprocess.call(['git', 'svn', 'rebase'], + cwd=self.local) != 0: + raise VCSException("Git svn rebase failed") + class vcs_svn(vcs): @@ -357,16 +387,17 @@ class MetaDataException(Exception): # Prepare the source code for a particular build -# 'vcs' - the appropriate vcs object for the application -# 'app' - the application details from the metadata -# 'build' - the build details from the metadata -# 'build_dir' - the path to the build directory -# 'sdk_path' - the path to the Android SDK -# 'ndk_path' - the path to the Android NDK -# 'refresh' - True to refresh from the remote repo +# 'vcs' - the appropriate vcs object for the application +# 'app' - the application details from the metadata +# 'build' - the build details from the metadata +# 'build_dir' - the path to the build directory +# 'sdk_path' - the path to the Android SDK +# 'ndk_path' - the path to the Android NDK +# 'javacc_path' - the path to javacc +# 'refresh' - True to refresh from the remote repo # Returns the root directory, which may be the same as 'build_dir' or may # be a subdirectory of it. -def prepare_source(vcs, app, build, build_dir, sdk_path, ndk_path, refresh): +def prepare_source(vcs, app, build, build_dir, sdk_path, ndk_path, javacc_path, refresh): if refresh: vcs.refreshlocal() @@ -374,12 +405,13 @@ def prepare_source(vcs, app, build, build_dir, sdk_path, ndk_path, refresh): # Optionally, the actual app source can be in a subdirectory... if build.has_key('subdir'): root_dir = os.path.join(build_dir, build['subdir']) + if not os.path.exists(root_dir): + raise BuildException('Missing subdir ' + root_dir) else: root_dir = build_dir # Get a working copy of the right revision... - if options.verbose: - print "Resetting repository to " + build['commit'] + print "Resetting repository to " + build['commit'] vcs.reset(build['commit']) # Initialise submodules if requred... @@ -445,7 +477,7 @@ def prepare_source(vcs, app, build, build_dir, sdk_path, ndk_path, refresh): # Fix apostrophes translation files if necessary... if build.get('fixapos', 'no') == 'yes': - for root, dirs, files in os.walk(os.path.join(root_dir,'res')): + for root, dirs, files in os.walk(os.path.join(root_dir, 'res')): for filename in files: if filename.endswith('.xml'): if subprocess.call(['sed','-i','s@' + @@ -456,7 +488,7 @@ def prepare_source(vcs, app, build, build_dir, sdk_path, ndk_path, refresh): # Fix translation files if necessary... if build.get('fixtrans', 'no') == 'yes': - for root, dirs, files in os.walk(os.path.join(root_dir,'res')): + for root, dirs, files in os.walk(os.path.join(root_dir, 'res')): for filename in files: if filename.endswith('.xml'): f = open(os.path.join(root, filename)) diff --git a/metadata/An.stop.txt b/metadata/An.stop.txt index e8c2e730..b2b7c43b 100644 --- a/metadata/An.stop.txt +++ b/metadata/An.stop.txt @@ -9,7 +9,7 @@ Description:A simple stopwatch, that also supports lap timing and a countdown timer. . -Repo Type:svn +Repo Type:git-svn Repo:http://anstop.googlecode.com/svn/trunk Build Version:1.4,9,34 diff --git a/metadata/android.androidVNC.txt b/metadata/android.androidVNC.txt index 9dd1cd7e..bf843730 100644 --- a/metadata/android.androidVNC.txt +++ b/metadata/android.androidVNC.txt @@ -8,7 +8,7 @@ Summary:VNC viewer Description: A VNC ('remote desktop') client. . -Repo Type:svn +Repo Type:git-svn Repo:http://android-vnc-viewer.googlecode.com/svn/branches/antlersoft Build Version:0.5.0,13,197,subdir=androidVNC diff --git a/metadata/com.agiro.scanner.android.txt b/metadata/com.agiro.scanner.android.txt index 6dc28ba4..c5ae6c9f 100644 --- a/metadata/com.agiro.scanner.android.txt +++ b/metadata/com.agiro.scanner.android.txt @@ -8,7 +8,7 @@ server. The server component is available separately: https://github.com/johannilsson/agiro-server . -Repo Type: +Repo Type:git Repo:https://github.com/pakerfeldt/aGiro.git Build Version:alpha 2,2,!repo moved and renamed 20bd0f021dd852afcc9aa9008ee713419ae8e05c diff --git a/metadata/com.android.inputmethod.norwegian.txt b/metadata/com.android.inputmethod.norwegian.txt index f702a0ac..a5d5489e 100644 --- a/metadata/com.android.inputmethod.norwegian.txt +++ b/metadata/com.android.inputmethod.norwegian.txt @@ -9,7 +9,7 @@ A modified version of the standard onscreen keyboard in Android with support for Norwegian, Swedish, Danish, Faroese, German, Icelandic and Northern Sámi keyboard layouts. . -Repo Type:svn +Repo Type:git-svn Repo:http://scandinavian-keyboard.googlecode.com/svn/trunk Build Version:1.4.4,13,15,target=android-4 Build Version:1.4.6,15,17,target=android-4 diff --git a/metadata/com.funambol.androidsync.txt b/metadata/com.funambol.androidsync.txt index f9d82274..7a31a9e8 100644 --- a/metadata/com.funambol.androidsync.txt +++ b/metadata/com.funambol.androidsync.txt @@ -13,7 +13,7 @@ Repo:guest:x@https://android-client.forge.funambol.org/svn/android-client/ Build Version:8.7.3,8,1032,subdir=tags/8.7.3,update=no,initfun=yes Build Version:9.0.1,9,1437,subdir=tags/9.0.1,update=no,initfun=yes -Build Version:9.0.3,10,1546,subdir=tags/9.0.3,update=no,initfun=yes +Build Version:9.0.3,10,1547,subdir=tags/9.0.3,update=no,initfun=yes Build Version:10.0.4,14,2162,subdir=tags/10.0.4,update=no,initfun=yes Build Version:10.0.5,15,2211,subdir=tags/10.0.5,update=no,initfun=yes Build Version:10.0.6,16,2337,subdir=tags/10.0.6,update=no,initfun=yes diff --git a/metadata/org.jessies.mathdroid.txt b/metadata/org.jessies.mathdroid.txt index e4e96053..631a1733 100644 --- a/metadata/org.jessies.mathdroid.txt +++ b/metadata/org.jessies.mathdroid.txt @@ -10,10 +10,10 @@ Description: A calculator with full on-screen history and many functions. . -Repo Type:svn +Repo Type:git-svn Repo:http://enh.googlecode.com/svn/trunk -Build Version:2.5,25,525,oldsdkloc=yes,target=android-9,subdir=mathdroid,prebuild=rm src/org/jessies/test && mkdir src/org/jessies/test && wget http://software.jessies.org/svn/salma-hayek/trunk/src/org/jessies/test/Assert.java -O src/org/jessies/test/Assert.java && wget http://software.jessies.org/svn/salma-hayek/trunk/src/org/jessies/test/Test.java -O src/org/jessies/test/Test.java && wget http://software.jessies.org/svn/salma-hayek/trunk/src/org/jessies/test/TestHelper.java -O src/org/jessies/test/TestHelper.java +Build Version:2.5,25,525,oldsdkloc=yes,target=android-9,subdir=mathdroid,prebuild=rm -rf src/org/jessies/test && mkdir src/org/jessies/test && wget http://software.jessies.org/svn/salma-hayek/trunk/src/org/jessies/test/Assert.java -O src/org/jessies/test/Assert.java && wget http://software.jessies.org/svn/salma-hayek/trunk/src/org/jessies/test/Test.java -O src/org/jessies/test/Test.java && wget http://software.jessies.org/svn/salma-hayek/trunk/src/org/jessies/test/TestHelper.java -O src/org/jessies/test/TestHelper.java Market Version:2.5 Market Version Code:25 diff --git a/scanner.py b/scanner.py index 32fd0a38..475cecdf 100755 --- a/scanner.py +++ b/scanner.py @@ -24,6 +24,7 @@ import re import urllib import time import subprocess +import traceback from optparse import OptionParser import HTMLParser import common @@ -38,6 +39,8 @@ execfile('config.py') parser = OptionParser() parser.add_option("-v", "--verbose", action="store_true", default=False, help="Spew out even more information than normal") +parser.add_option("-p", "--package", default=None, + help="Scan only the specified package") (options, args) = parser.parse_args() # Get all apps... @@ -49,13 +52,17 @@ problems = [] for app in apps: - if app['disabled']: + skip = False + if options.package and app['id'] != options.package: + skip = True + elif app['disabled']: print "Skipping %s: disabled" % app['id'] + skip = True elif not app['builds']: print "Skipping %s: no builds specified" % app['id'] + skip = True - if (app['disabled'] is None and app['repo'] != '' - and app['repotype'] != '' and len(app['builds']) > 0): + if not skip: print "Processing " + app['id'] @@ -79,16 +86,18 @@ for app in apps: # Prepare the source code... root_dir = common.prepare_source(vcs, app, thisbuild, - build_dir, sdk_path, ndk_path, + build_dir, sdk_path, ndk_path, javacc_path, not refreshed_source) refreshed_source = True # Scan for common known non-free blobs: - usual_suspects = ['flurryagent.jar', 'paypal_mpl.jar'] + usual_suspects = ['flurryagent.jar', + 'paypal_mpl.jar', + 'admob-sdk-android.jar'] for r,d,f in os.walk(build_dir): for curfile in f: if curfile.lower() in usual_suspects: - msg = 'Found probable non-free blob ' + os.path.join(r,file) + msg = 'Found probable non-free blob ' + os.path.join(r, curfile) msg += ' in ' + app['id'] + ' ' + thisbuild['version'] problems.append(msg) @@ -98,8 +107,8 @@ for app in apps: except VCSException as vcse: msg = "VCS error while scanning app %s: %s" % (app['id'], vcse) problems.append(msg) - except Exception as e: - msg = "Could not scan app %s due to unknown error: %s" % (app['id'], e) + except Exception: + msg = "Could not scan app %s due to unknown error: %s" % (app['id'], traceback.format_exc()) problems.append(msg) print "Finished:" From 775e1e245a0998de8b1fef9493f5abb83d76a730 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Wed, 4 Jan 2012 22:58:37 +0000 Subject: [PATCH 04/75] Maintiain android update project behaviour in new platform tools --- common.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/common.py b/common.py index 052122bf..326975b7 100644 --- a/common.py +++ b/common.py @@ -427,6 +427,13 @@ def prepare_source(vcs, app, build, build_dir, sdk_path, ndk_path, javacc_path, if build.has_key('target'): parms.append('-t') parms.append(build['target']) + # Newer versions of the platform tools don't replace the build.xml + # file as they always did previously, they spew out a nanny-like + # warning and tell you to do it manually. The following emulates + # the original behaviour... + buildxml = os.path.join(root_dir, 'build.xml') + if os.path.exists(buildxml): + os.remove(buildxml) if subprocess.call(parms, cwd=root_dir) != 0: raise BuildException("Failed to update project") From b8798886903b2a662fda2622fe10adbec4ab02d7 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Fri, 6 Jan 2012 12:21:06 +0000 Subject: [PATCH 05/75] Don't include skips in build successes --- build.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.py b/build.py index be4fc3d0..85db53bb 100755 --- a/build.py +++ b/build.py @@ -265,6 +265,7 @@ for app in apps: if p.returncode != 0: raise BuildException("Failed to align application") os.remove(dest_unsigned) + build_succeeded.append(app) except BuildException as be: print "Could not build app %s due to BuildException: %s" % (app['id'], be) failed_apps[app['id']] = be @@ -274,7 +275,6 @@ for app in apps: except Exception as e: print "Could not build app %s due to unknown error: %s" % (app['id'], e) failed_apps[app['id']] = e - build_succeeded.append(app) for app in build_succeeded: print "success: %s" % (app['id']) From 61b5c1f0d533a8365bafc7c7b73123d9520cc6cb Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Fri, 6 Jan 2012 12:22:00 +0000 Subject: [PATCH 06/75] Metadata: update fbreader --- metadata/org.geometerplus.zlibrary.ui.android.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/metadata/org.geometerplus.zlibrary.ui.android.txt b/metadata/org.geometerplus.zlibrary.ui.android.txt index 72bc7d5b..c3ccdda4 100644 --- a/metadata/org.geometerplus.zlibrary.ui.android.txt +++ b/metadata/org.geometerplus.zlibrary.ui.android.txt @@ -30,6 +30,7 @@ Build Version:1.1.10,101101,13ee5d79431815dd694e,antcommand=package Build Version:1.2.2,102021,e63c553aeb032da828b270a735f0171d8d22c54c,buildjni=yes,target=android-9,prebuild=mkdir res/drawable && find icons -iname "*.*" -exec cp {} res/drawable \; Build Version:1.2.3,102031,46d83bb4351c2f6ec51e0d9aa6202c86c1297e7f,buildjni=yes,target=android-9,prebuild=mkdir res/drawable && find icons -iname "*.*" -exec cp {} res/drawable \; Build Version:1.2.4,102041,6426bcf131d4,buildjni=yes,target=android-9,prebuild=mkdir res/drawable && find icons -iname "*.*" -exec cp {} res/drawable \; +Build Version:1.2.6,102061,1.2.6,buildjni=yes,target=android-9,prebuild=mkdir res/drawable && find icons -iname "*.*" -exec cp {} res/drawable \; Market Version:1.2.5 Market Version Code:102051 From 8bd4dbaf1a75e4d36117d92cfa4ba973f1c7f8a9 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Wed, 4 Jan 2012 01:50:57 +0100 Subject: [PATCH 07/75] updated README for openjdk and building apk files --- README | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/README b/README index a76a34ad..e3824d51 100644 --- a/README +++ b/README @@ -21,18 +21,27 @@ To be able to auto-build packages, you're going to need: *Linux *Python -*A fully functional Android SDK with all SDK platforms and tools -*The Android NDK +*Android SDK with all SDK platforms (for all API versions) and tools +*Android NDK *Ant *Ant Contrib Tasks (Debian package ant-contrib) *Maven (Debian package maven2) *JavaCC (Debian package javacc) +*JDK (Debian package openjdk-6-jdk and openjdk-7-jdk) *VCS clients: svn, git, hg, bzr *A keystore for holding release keys. (Safe, secure and well backed up!) You then need to create a config.py (copy config.sample.py and follow the instructions) to specify the locations of some of these things. +==Building Apps== + +Run + + ./build.py -p goo.TeaTimer + +to test building apk files. They will be put in the repo directory. + =MetaData= Information used by update.py to compile the public index comes from two From b25bd38ddcee67bceeec2a8104c2fd764af7ed50 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Wed, 4 Jan 2012 23:34:43 +0100 Subject: [PATCH 08/75] add non-working Car Cast metadata file --- metadata/com.jadn.cc.txt | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 metadata/com.jadn.cc.txt diff --git a/metadata/com.jadn.cc.txt b/metadata/com.jadn.cc.txt new file mode 100644 index 00000000..259215c0 --- /dev/null +++ b/metadata/com.jadn.cc.txt @@ -0,0 +1,20 @@ +License:MIT +Category: +Web Site:http://jadn.com/carcast/ +Source Code:http://github.com/bherrmann7/Car-Cast/ +Issue Tracker:https://github.com/bherrmann7/Car-Cast/issues +Donate:https://market.android.com/details?id=com.jadn.ccpro +Summary:A podcast downloader and player. +Description:Car Cast is a simple audio podcast downloader and player. +Optimized for use in a daily commute, it features big buttons, large text, remembers last played location. + +1. Subscribe to podcasts +2. Download podcasts (stored on flash card) +3. Playback in car/gym (no network needed) +. + +Repo Type:git +Repo:git://github.com/bherrmann7/Car-Cast.git + +Build Version:1.0.129,129,7a879c6bfa51b5d80401b84e031bf4ff2981bb8c,subdir=cc + From 3f7dde6634b00dfb1fff3c94d9d347afc515bc70 Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Thu, 5 Jan 2012 01:39:08 +0100 Subject: [PATCH 09/75] removed non-free(?) admob from Car Cast --- metadata/com.jadn.cc.txt | 2 +- metadata/com.jadn.cc/admob.patch | 105 +++++++++++++++++++++++++++++++ 2 files changed, 106 insertions(+), 1 deletion(-) create mode 100644 metadata/com.jadn.cc/admob.patch diff --git a/metadata/com.jadn.cc.txt b/metadata/com.jadn.cc.txt index 259215c0..708c03cc 100644 --- a/metadata/com.jadn.cc.txt +++ b/metadata/com.jadn.cc.txt @@ -16,5 +16,5 @@ Optimized for use in a daily commute, it features big buttons, large text, remem Repo Type:git Repo:git://github.com/bherrmann7/Car-Cast.git -Build Version:1.0.129,129,7a879c6bfa51b5d80401b84e031bf4ff2981bb8c,subdir=cc +Build Version:1.0.129,129,7a879c6bfa51b5d80401b84e031bf4ff2981bb8c,subdir=cc,target=android-8,rm=cc/libs/admob-sdk-android.jar,patch=admob.patch diff --git a/metadata/com.jadn.cc/admob.patch b/metadata/com.jadn.cc/admob.patch new file mode 100644 index 00000000..98b9311e --- /dev/null +++ b/metadata/com.jadn.cc/admob.patch @@ -0,0 +1,105 @@ +diff --git a/cc/AndroidManifest.xml b/cc/AndroidManifest.xml +index d2a8dc2..a81106b 100644 +--- a/cc/AndroidManifest.xml ++++ b/cc/AndroidManifest.xml +@@ -10,16 +10,6 @@ + + + +- +- +- +- +- +- +- + + + + +- +- + ++ android:layout_alignParentTop="true" android:layout_height="35dip" /> + + + +- +- + ++ android:layout_alignParentTop="true" android:layout_height="35dip" /> + + + +- +- +- +- +- +- +- + +diff --git a/cc/res/xml/settings.xml b/cc/res/xml/settings.xml +index 11e40e5..38be7a4 100644 +--- a/cc/res/xml/settings.xml ++++ b/cc/res/xml/settings.xml +@@ -34,10 +34,10 @@ + android:key="canCollectData" + android:title="Allow data collection" + android:summary="Data helps us improve" +- android:defaultValue="true" /> ++ android:defaultValue="false" /> + +- +\ No newline at end of file ++ android:defaultValue="true" /> ++ From b4d0c3e972387021845ba1a4f5a456171058380a Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Sat, 7 Jan 2012 01:23:21 +0100 Subject: [PATCH 10/75] added category for Car Cast --- metadata/com.jadn.cc.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata/com.jadn.cc.txt b/metadata/com.jadn.cc.txt index 708c03cc..fad0aa7e 100644 --- a/metadata/com.jadn.cc.txt +++ b/metadata/com.jadn.cc.txt @@ -1,5 +1,5 @@ License:MIT -Category: +Category:Multimedia Web Site:http://jadn.com/carcast/ Source Code:http://github.com/bherrmann7/Car-Cast/ Issue Tracker:https://github.com/bherrmann7/Car-Cast/issues From 6b78c2f24aa538aeea1c2d3beabde69eb659d49c Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Sun, 8 Jan 2012 09:01:53 +0000 Subject: [PATCH 11/75] Metadata: new mythdroid version --- metadata/org.mythdroid.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/metadata/org.mythdroid.txt b/metadata/org.mythdroid.txt index 3222abae..6f15464d 100644 --- a/metadata/org.mythdroid.txt +++ b/metadata/org.mythdroid.txt @@ -29,4 +29,5 @@ Repo Type:svn Repo:http://mythdroid.googlecode.com/svn/trunk/ Build Version:0.4.3,4,244,prebuild=mv lib libs +Build Version:0.5.3,53,572,prebuild=mv lib libs,target=android-11 From 856eab73930525df617e9508fc93179dcba12005 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Sun, 8 Jan 2012 09:08:17 +0000 Subject: [PATCH 12/75] Metadata: new Zirco version (and switched to git-svn) --- metadata/org.zirco.txt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/metadata/org.zirco.txt b/metadata/org.zirco.txt index 4dd34cba..c5c1e514 100644 --- a/metadata/org.zirco.txt +++ b/metadata/org.zirco.txt @@ -17,8 +17,8 @@ A web browser featuring: *Ad-blocker . -Repo Type:svn -Repo:http://zirco-browser.googlecode.com/svn/trunk/ +Repo Type:git-svn +Repo:http://zirco-browser.googlecode.com/svn/trunk Build Version:0.3.6,10,315 Build Version:0.3.7,11,329 @@ -26,6 +26,7 @@ Build Version:0.3.8,12,339 Build Version:0.3.9,13,367 Build Version:0.4.1,15,407 Build Version:0.4.2,16,438,target=android-9 +Build Version:0.4.3,17,443,target=android-9 -Market Version:0.4.2 -Market Version Code:16 +Market Version:0.4.3 +Market Version Code:17 From cabd2c552203c91518902975f6d7b185e2cd26aa Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Sun, 8 Jan 2012 13:43:59 +0000 Subject: [PATCH 13/75] Guard against git accidents --- common.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/common.py b/common.py index 326975b7..01d2114a 100644 --- a/common.py +++ b/common.py @@ -85,11 +85,19 @@ class vcs: class vcs_git(vcs): + def checkrepo(self): + p = subprocess.Popen('git', 'rev-parse', '--show-toplevel', + stdout=subprocess.PIPE) + result = p.communicate()[0].rstrip() + if not self.local.endswith(result): + raise VCSException('Repository mismatch') + def clone(self): if subprocess.call(['git', 'clone', self.remote, self.local]) != 0: raise VCSException("Git clone failed") def reset(self, rev=None): + self.checkrepo() if rev is None: rev = 'origin' if subprocess.call(['git', 'reset', '--hard', rev], @@ -100,6 +108,7 @@ class vcs_git(vcs): raise VCSException("Git clean failed") def pull(self): + self.checkrepo() if subprocess.call(['git', 'pull', 'origin'], cwd=self.local) != 0: raise VCSException("Git pull failed") @@ -109,6 +118,7 @@ class vcs_git(vcs): raise VCSException("Git fetch failed") def initsubmodules(self): + self.checkrepo() if subprocess.call(['git', 'submodule', 'init'], cwd=self.local) != 0: raise VCSException("Git submodule init failed") @@ -119,11 +129,19 @@ class vcs_git(vcs): class vcs_gitsvn(vcs): + def checkrepo(self): + p = subprocess.Popen('git', 'rev-parse', '--show-toplevel', + stdout=subprocess.PIPE) + result = p.communicate()[0].rstrip() + if not self.local.endswith(result): + raise VCSException('Repository mismatch') + def clone(self): if subprocess.call(['git', 'svn', 'clone', self.remote, self.local]) != 0: raise VCSException("Git clone failed") def reset(self, rev=None): + self.checkrepo() if rev is None: rev = 'HEAD' else: @@ -140,6 +158,7 @@ class vcs_gitsvn(vcs): raise VCSException("Git clean failed") def pull(self): + self.checkrepo() if subprocess.call(['git', 'svn', 'rebase'], cwd=self.local) != 0: raise VCSException("Git svn rebase failed") From 88322f583533e130f91ef295a7201b577bc01475 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Sun, 8 Jan 2012 14:13:41 +0000 Subject: [PATCH 14/75] Multiple corrections to previous commit --- common.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/common.py b/common.py index 01d2114a..a4bb8fbb 100644 --- a/common.py +++ b/common.py @@ -86,10 +86,10 @@ class vcs: class vcs_git(vcs): def checkrepo(self): - p = subprocess.Popen('git', 'rev-parse', '--show-toplevel', - stdout=subprocess.PIPE) + p = subprocess.Popen(['git', 'rev-parse', '--show-toplevel'], + stdout=subprocess.PIPE, cwd=self.local) result = p.communicate()[0].rstrip() - if not self.local.endswith(result): + if not result.endswith(self.local): raise VCSException('Repository mismatch') def clone(self): From 98263a429db5d48c5c3bf1772e4d8aa26e7b7a0d Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Sun, 8 Jan 2012 14:16:42 +0000 Subject: [PATCH 15/75] Another correction --- common.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/common.py b/common.py index a4bb8fbb..6d3e8e83 100644 --- a/common.py +++ b/common.py @@ -130,10 +130,10 @@ class vcs_git(vcs): class vcs_gitsvn(vcs): def checkrepo(self): - p = subprocess.Popen('git', 'rev-parse', '--show-toplevel', - stdout=subprocess.PIPE) + p = subprocess.Popen(['git', 'rev-parse', '--show-toplevel'], + stdout=subprocess.PIPE, cwd=self.local) result = p.communicate()[0].rstrip() - if not self.local.endswith(result): + if not result.endswith(self.local): raise VCSException('Repository mismatch') def clone(self): From 6bf07ade4f65220f14fbffa5612847cc3c178d11 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Sun, 8 Jan 2012 15:09:43 +0000 Subject: [PATCH 16/75] Minor formatting error in build.py --- build.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.py b/build.py index 85db53bb..8d06f877 100755 --- a/build.py +++ b/build.py @@ -284,5 +284,5 @@ for fa in failed_apps: print "Finished." if len(failed_apps) > 0: - print str(len(failed_apps)) + 'builds failed' + print str(len(failed_apps)) + ' builds failed' From 564fd2df79bfa725b9a16fa8e8091e2b6be2026e Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Sun, 8 Jan 2012 12:55:57 +0100 Subject: [PATCH 17/75] fixed exception string in build script --- build.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build.py b/build.py index 8d06f877..c30520b3 100755 --- a/build.py +++ b/build.py @@ -207,7 +207,8 @@ for app in apps: raise BuildException(("Unexpected version/version code in output" "APK: %s / %s" "Expected: %s / %s") - ) % (version, str(vercode), thisbuild['version'], str(thisbuild['vercode'])) + % (version, str(vercode), thisbuild['version'], str(thisbuild['vercode'])) + ) # Copy the unsigned apk to our temp directory for further # processing... From fa19a0681d18bc776e41122fcbd39b295f571c80 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Sun, 8 Jan 2012 15:11:47 +0000 Subject: [PATCH 18/75] Metadata: added shortyz --- metadata/com.totsp.crossword.shortyz.txt | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 metadata/com.totsp.crossword.shortyz.txt diff --git a/metadata/com.totsp.crossword.shortyz.txt b/metadata/com.totsp.crossword.shortyz.txt new file mode 100644 index 00000000..305855bc --- /dev/null +++ b/metadata/com.totsp.crossword.shortyz.txt @@ -0,0 +1,18 @@ +License:GPLv3 +Category:Games +Web Site:http://code.google.com/p/shortyz/ +Source Code:http://code.google.com/p/shortyz/source/checkout +Issue Tracker:http://code.google.com/p/shortyz/issues/list +Donate: +Summary:Crossword game +Description: +Crossword game that downloads puzzles from a variety of internet locations. +. + +Repo Type:hg +Repo:https://code.google.com/p/shortyz/ + +Build Version:3.1.0,30100,1ce970a00083,subdir=shortyz,target=android-11,prebuild=\ + cd ../puzlib && mvn package && mv target/*.jar ../shortyz/libs && rm -rf target &&\ + cd ../shortyz + From af56994149ffcd404f0ccbded989051505e005fb Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Sat, 7 Jan 2012 19:18:19 +0100 Subject: [PATCH 19/75] added four new apps --- .../com.appengine.paranoid_android.lost.txt | 14 ++++++++++++++ metadata/com.chessclock.android.txt | 19 +++++++++++++++++++ .../com.unitedcoders.android.gpodroid.txt | 14 ++++++++++++++ metadata/remuco.client.android.txt | 19 +++++++++++++++++++ 4 files changed, 66 insertions(+) create mode 100644 metadata/com.appengine.paranoid_android.lost.txt create mode 100644 metadata/com.chessclock.android.txt create mode 100644 metadata/com.unitedcoders.android.gpodroid.txt create mode 100644 metadata/remuco.client.android.txt diff --git a/metadata/com.appengine.paranoid_android.lost.txt b/metadata/com.appengine.paranoid_android.lost.txt new file mode 100644 index 00000000..2184c8a3 --- /dev/null +++ b/metadata/com.appengine.paranoid_android.lost.txt @@ -0,0 +1,14 @@ +License:LGPL +Category:System +Web Site:https://sites.google.com/site/paranoidandroidproject/ContactOwner +Source Code:https://code.google.com/p/contactowner/source/browse/ +Issue Tracker:https://code.google.com/p/contactowner/issues/list +Summary:displays contact information on the "lock screen", so that if you happen to lose it the finder knows how to contact you +Description:Contact Owner is an Android app that displays your (or a friend's) contact information on the "lock screen" of your Android device, so that if you happen to lose it the finder will know how to contact you. Select yourself (or your friend) from your list of contacts, then select which information you want shown and (optionally) customize your message. Contact Owner is a "fire and forget" tool: once you set it up, your contact information will keep being displayed even after restarting your device, as long as the application is installed. +. + +Repo Type:svn +Repo:http://contactowner.googlecode.com/svn/branches/v2next/ + +Build Version:2.2,12,44,target=4 + diff --git a/metadata/com.chessclock.android.txt b/metadata/com.chessclock.android.txt new file mode 100644 index 00000000..ebe24d38 --- /dev/null +++ b/metadata/com.chessclock.android.txt @@ -0,0 +1,19 @@ +License:GPLv3 +Category:Games +Web Site:https://code.google.com/p/simplechessclock/ +Source Code:https://code.google.com/p/simplechessclock/source/browse/ +Issue Tracker:https://code.google.com/p/simplechessclock/issues/list +Summary:a simple clock for chess +Description:Simple Chess Clock does what it says! It is designed for touchscreen Android devices, and provides a simple, clear interface and easy interaction. Planned features include: + + - Configurable player times + - Delays, Fischer Time + - Sound alerts + - ...and more! +. + +Repo Type:hg +Repo:https://code.google.com/p/simplechessclock/ + +Build Version:1.2.0,8,379155447bff,subdir=simplechessclock,target=android-8 + diff --git a/metadata/com.unitedcoders.android.gpodroid.txt b/metadata/com.unitedcoders.android.gpodroid.txt new file mode 100644 index 00000000..c89d8200 --- /dev/null +++ b/metadata/com.unitedcoders.android.gpodroid.txt @@ -0,0 +1,14 @@ +License:EPLv1 +Category:Multimedia +Web Site:http://united-coders.com/gpodroid +Source Code:https://github.com/gpodder/GpodRoid +Issue Tracker:https://github.com/gpodder/GpodRoid/issues +Summary:a gpodder.net podcasting client +Description:gpodder.net client +. + +Repo Type:git +Repo:git://github.com/gpodder/GpodRoid.git + +Build Version:0.4.7,12,0.4.7,target=android-7,prebuild=mv jars libs + diff --git a/metadata/remuco.client.android.txt b/metadata/remuco.client.android.txt new file mode 100644 index 00000000..d42da8ad --- /dev/null +++ b/metadata/remuco.client.android.txt @@ -0,0 +1,19 @@ +License:GPLv3 +Category:Multimedia +Web Site:https://code.google.com/p/remuco/ +Source Code:https://code.google.com/p/remuco/source/browse/ +Issue Tracker:https://code.google.com/p/remuco/wiki/Issues?tm=3 +Donate:http://flattr.com/thing/141543/Remuco +Summary:Wireless remote control for Linux media players +Description:Remuco is a duplex remote control system for Linux media players and mobile phones equipped with Bluetooth or WiFi. + +With Remuco, you can remotely control your favorite media player. You can switch to the next, previous, or any other media within the current playlist, browse your media library and activate other playlists, rate your media, adjust volume, and more. On the mobile phone it displays information about the current media, including cover art. + +Remuco can be used with Amarok, Audacious, Banshee, Clementine, Exaile, gmusicbrowser, MPD, MPlayer, Rhythmbox, Songbird, Totem, TVtime, VLC and XMMS2. +. + +Repo Type:hg +Repo:https://code.google.com/p/remuco/ + +Build Version:0.9.6,1,0.9.6,subdir=client/android,prebuild=cp -R ../common/src .,target=4 + From c36d1931ce6bccebceec43a33548f072852c14d7 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Sun, 8 Jan 2012 15:26:27 +0000 Subject: [PATCH 20/75] A few minor corrections to af5699 --- .../com.appengine.paranoid_android.lost.txt | 15 +++++++++++---- metadata/com.chessclock.android.txt | 11 ++++------- metadata/com.unitedcoders.android.gpodroid.txt | 5 +++-- metadata/remuco.client.android.txt | 18 +++++++++++++----- 4 files changed, 31 insertions(+), 18 deletions(-) diff --git a/metadata/com.appengine.paranoid_android.lost.txt b/metadata/com.appengine.paranoid_android.lost.txt index 2184c8a3..e08f16cd 100644 --- a/metadata/com.appengine.paranoid_android.lost.txt +++ b/metadata/com.appengine.paranoid_android.lost.txt @@ -3,12 +3,19 @@ Category:System Web Site:https://sites.google.com/site/paranoidandroidproject/ContactOwner Source Code:https://code.google.com/p/contactowner/source/browse/ Issue Tracker:https://code.google.com/p/contactowner/issues/list -Summary:displays contact information on the "lock screen", so that if you happen to lose it the finder knows how to contact you -Description:Contact Owner is an Android app that displays your (or a friend's) contact information on the "lock screen" of your Android device, so that if you happen to lose it the finder will know how to contact you. Select yourself (or your friend) from your list of contacts, then select which information you want shown and (optionally) customize your message. Contact Owner is a "fire and forget" tool: once you set it up, your contact information will keep being displayed even after restarting your device, as long as the application is installed. +Summary:Contact info on lock screen +Description: +Contact Owner is displays your (or a friend's) contact information on the "lock +screen" of your device, so that if you happen to lose it the finder will know +how to contact you. Select yourself (or your friend) from your list of contacts, +then select which information you want shown and (optionally) customize your +message. Contact Owner is a "fire and forget" tool: once you set it up, your +contact information will keep being displayed even after restarting your +device, as long as the application is installed. . -Repo Type:svn +Repo Type:git-svn Repo:http://contactowner.googlecode.com/svn/branches/v2next/ -Build Version:2.2,12,44,target=4 +Build Version:2.2,12,44,target=android-4 diff --git a/metadata/com.chessclock.android.txt b/metadata/com.chessclock.android.txt index ebe24d38..257f4b8c 100644 --- a/metadata/com.chessclock.android.txt +++ b/metadata/com.chessclock.android.txt @@ -3,13 +3,10 @@ Category:Games Web Site:https://code.google.com/p/simplechessclock/ Source Code:https://code.google.com/p/simplechessclock/source/browse/ Issue Tracker:https://code.google.com/p/simplechessclock/issues/list -Summary:a simple clock for chess -Description:Simple Chess Clock does what it says! It is designed for touchscreen Android devices, and provides a simple, clear interface and easy interaction. Planned features include: - - - Configurable player times - - Delays, Fischer Time - - Sound alerts - - ...and more! +Summary:Simple chess clock +Description: +Simple Chess Clock does what it says! It is designed for touchscreen Android +devices, and provides a simple, clear interface and easy interaction. . Repo Type:hg diff --git a/metadata/com.unitedcoders.android.gpodroid.txt b/metadata/com.unitedcoders.android.gpodroid.txt index c89d8200..8f836e98 100644 --- a/metadata/com.unitedcoders.android.gpodroid.txt +++ b/metadata/com.unitedcoders.android.gpodroid.txt @@ -3,8 +3,9 @@ Category:Multimedia Web Site:http://united-coders.com/gpodroid Source Code:https://github.com/gpodder/GpodRoid Issue Tracker:https://github.com/gpodder/GpodRoid/issues -Summary:a gpodder.net podcasting client -Description:gpodder.net client +Summary:gpodder.net client +Description: +A gpodder.net podcasting client. . Repo Type:git diff --git a/metadata/remuco.client.android.txt b/metadata/remuco.client.android.txt index d42da8ad..ff245658 100644 --- a/metadata/remuco.client.android.txt +++ b/metadata/remuco.client.android.txt @@ -4,16 +4,24 @@ Web Site:https://code.google.com/p/remuco/ Source Code:https://code.google.com/p/remuco/source/browse/ Issue Tracker:https://code.google.com/p/remuco/wiki/Issues?tm=3 Donate:http://flattr.com/thing/141543/Remuco -Summary:Wireless remote control for Linux media players -Description:Remuco is a duplex remote control system for Linux media players and mobile phones equipped with Bluetooth or WiFi. +Summary:Remote control for Linux media players +Description: +Remuco is a duplex remote control system for Linux media players and mobile +phones equipped with Bluetooth or WiFi. -With Remuco, you can remotely control your favorite media player. You can switch to the next, previous, or any other media within the current playlist, browse your media library and activate other playlists, rate your media, adjust volume, and more. On the mobile phone it displays information about the current media, including cover art. +With Remuco, you can remotely control your favorite media player. You can +switch to the next, previous, or any other media within the current playlist, +browse your media library and activate other playlists, rate your media, +adjust volume, and more. On the mobile phone it displays information about +the current media, including cover art. -Remuco can be used with Amarok, Audacious, Banshee, Clementine, Exaile, gmusicbrowser, MPD, MPlayer, Rhythmbox, Songbird, Totem, TVtime, VLC and XMMS2. +Remuco can be used with Amarok, Audacious, Banshee, Clementine, Exaile, +gmusicbrowser, MPD, MPlayer, Rhythmbox, Songbird, Totem, TVtime, VLC and +XMMS2. . Repo Type:hg Repo:https://code.google.com/p/remuco/ -Build Version:0.9.6,1,0.9.6,subdir=client/android,prebuild=cp -R ../common/src .,target=4 +Build Version:0.9.6,1,0.9.6,subdir=client/android,prebuild=cp -R ../common/src .,target=android-10 From 83c6915d1be1b62f3455107a4d7ec302ad749f61 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Sun, 8 Jan 2012 15:32:53 +0000 Subject: [PATCH 21/75] Underscore is valid in package id --- update.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/update.py b/update.py index e6758d12..a943bb7e 100755 --- a/update.py +++ b/update.py @@ -101,7 +101,7 @@ for apkfile in glob.glob(os.path.join('repo','*.apk')): sys.exit(1) for line in output.splitlines(): if line.startswith("package:"): - pat = re.compile(".*name='([a-zA-Z0-9.]*)'.*") + pat = re.compile(".*name='([a-zA-Z0-9._]*)'.*") thisinfo['id'] = re.match(pat, line).group(1) pat = re.compile(".*versionCode='([0-9]*)'.*") thisinfo['versioncode'] = int(re.match(pat, line).group(1)) From b05668023277db14ad40a1742f5eafafa88e5406 Mon Sep 17 00:00:00 2001 From: prcrst Date: Sun, 8 Jan 2012 16:57:42 +0100 Subject: [PATCH 22/75] Fix key.* properties for keyless builds --- metadata/com.commonsware.android.arXiv.txt | 2 +- metadata/com.ichi2.anki.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/metadata/com.commonsware.android.arXiv.txt b/metadata/com.commonsware.android.arXiv.txt index 48b1dc6f..37feb7d9 100644 --- a/metadata/com.commonsware.android.arXiv.txt +++ b/metadata/com.commonsware.android.arXiv.txt @@ -13,7 +13,7 @@ Repo Type:bzr Repo:lp:arxivdroid Build Version:2.0.4,90,!94 but doesn't compile due to apparently missing resource,target=android-11 -Build Version:2.0.6,92,95,target=android-11 +Build Version:2.0.6,92,95,target=android-11,prebuild=sed -i -e "/key\.alias.*/d" -e "/key\.store.*/d" *.properties Build Version:2.0.10,96,!No source in repo,target=android-11 Build Version:2.0.14,100,!No source in repo,target=android-11 Build Version:2.0.16,102,!No source in repo,target=android-11 diff --git a/metadata/com.ichi2.anki.txt b/metadata/com.ichi2.anki.txt index 5e688e07..cea1f952 100644 --- a/metadata/com.ichi2.anki.txt +++ b/metadata/com.ichi2.anki.txt @@ -19,7 +19,7 @@ Repo:git://github.com/nicolas-raoul/Anki-Android.git #Build Version:0.5.1,19,!There is a v0.5.1 tag but the version code is not right Build Version:0.6,20,f26b7662ae9db9a92d21 Build Version:0.7,21,v0.7 -Build Version:1.0,22,v1.0 +Build Version:1.0,22,v1.0,prebuild=sed -i -e "/key\.alias.*/d" -e "/key\.store.*/d" *.properties Market Version:1.0 Market Version Code:23 From f3a11c0002609f2d27315e1a3011a01803ff3a37 Mon Sep 17 00:00:00 2001 From: prcrst Date: Sun, 8 Jan 2012 16:58:15 +0100 Subject: [PATCH 23/75] Move android-9 dependencies to android-10 as android-9 is not easily available anymore. --- metadata/at.aichbauer.ical.txt | 2 +- metadata/com.andrewshu.android.reddit.txt | 4 ++-- metadata/com.eleybourn.bookcatalogue.txt | 12 ++++++------ metadata/com.google.android.maps.mytracks.txt | 2 +- metadata/com.google.code.appsorganizer.txt | 2 +- metadata/com.googlecode.androidcells.txt | 2 +- metadata/com.liato.bankdroid.txt | 2 +- metadata/com.voidcode.diasporawebclient.txt | 2 +- metadata/com.zegoggles.smssync.txt | 4 ++-- metadata/de.shandschuh.slightbackup.txt | 6 +++--- metadata/de.shandschuh.sparserss.txt | 2 +- metadata/dk.andsen.asqlitemanager.txt | 2 +- metadata/mixedbit.speechtrainer.txt | 2 +- metadata/net.bytten.xkcdviewer.txt | 2 +- metadata/org.geometerplus.zlibrary.ui.android.txt | 8 ++++---- metadata/org.jessies.mathdroid.txt | 2 +- metadata/org.scoutant.blokish.txt | 8 ++++---- metadata/org.sixgun.ponyexpress.txt | 2 +- metadata/org.thoughtcrime.securesms.txt | 2 +- metadata/org.zirco.txt | 4 ++-- metadata/vu.de.urpool.quickdroid.txt | 4 ++-- 21 files changed, 38 insertions(+), 38 deletions(-) diff --git a/metadata/at.aichbauer.ical.txt b/metadata/at.aichbauer.ical.txt index 51e36970..cd8ad5d9 100644 --- a/metadata/at.aichbauer.ical.txt +++ b/metadata/at.aichbauer.ical.txt @@ -13,7 +13,7 @@ synchronization services. Repo Type:svn Repo:http://ical-import-export.googlecode.com/svn/trunk/ -Build Version:1.5,51,!11 but needs AndroidTools compiling too,subdir=iCalImportExport,target=android-9 +Build Version:1.5,51,!11 but needs AndroidTools compiling too,subdir=iCalImportExport,target=android-10 Market Version:1.5 Market Version Code:51 diff --git a/metadata/com.andrewshu.android.reddit.txt b/metadata/com.andrewshu.android.reddit.txt index a729fdd3..ccf46512 100644 --- a/metadata/com.andrewshu.android.reddit.txt +++ b/metadata/com.andrewshu.android.reddit.txt @@ -19,8 +19,8 @@ Build Version:1.1.4,69,9372d0ab3a16125e9045,prebuild=rsync -r lib/ libs Build Version:1.2.0,70,442e604760506e25e6c9,prebuild=rsync -r lib/ libs Build Version:1.2.0a,71,e37439e12d11ff17a841,prebuild=rsync -r lib/ libs Build Version:1.2.1,73,e35fd128c954d41e24abf91b71f301740f6ca483,prebuild=rsync -r lib/ libs -Build Version:1.2.1.2,75,28c98a7,prebuild=rsync -r lib/ libs,target=android-9 -Build Version:1.2.1.3,76,143892b558,prebuild=rsync -r lib/ libs,target=android-9 +Build Version:1.2.1.2,75,28c98a7,prebuild=rsync -r lib/ libs,target=android-10 +Build Version:1.2.1.3,76,143892b558,prebuild=rsync -r lib/ libs,target=android-10 Build Version:1.2.1.5,78,!more dependency shuffling required and watch out for the proguard config Market Version:1.2.1.5 diff --git a/metadata/com.eleybourn.bookcatalogue.txt b/metadata/com.eleybourn.bookcatalogue.txt index 1405ce75..0f30c20e 100644 --- a/metadata/com.eleybourn.bookcatalogue.txt +++ b/metadata/com.eleybourn.bookcatalogue.txt @@ -20,12 +20,12 @@ Build Version:3.4,49,ef03c165bdc34e6be1f6 Build Version:3.4.2,51,f802cfb067684b78f195 Build Version:3.5.1,53,52ba5015693ae0b2696e Build Version:3.5.6,57,!version code incorrect in source repo - 57 does not exist -Build Version:3.6,59,0f22f87a308190d74fab,target=android-9 -Build Version:3.6.1,61,75e2f8328ff9a2602fe1,target=android-9 -Build Version:3.6.2,62,da37baecb2c90aa2b306,target=android-9 -Build Version:3.7,68,514799b45d18cf6dbc42065adf08abbdc9e2f16f,target=android-9 -Build Version:3.8,69,bb85065cb6045df773cd681ac8bad55a6818d48a,target=android-9 -Build Version:3.8.1,70,890b6affe8a64,target=android-9 +Build Version:3.6,59,0f22f87a308190d74fab,target=android-10 +Build Version:3.6.1,61,75e2f8328ff9a2602fe1,target=android-10 +Build Version:3.6.2,62,da37baecb2c90aa2b306,target=android-10 +Build Version:3.7,68,514799b45d18cf6dbc42065adf08abbdc9e2f16f,target=android-10 +Build Version:3.8,69,bb85065cb6045df773cd681ac8bad55a6818d48a,target=android-10 +Build Version:3.8.1,70,890b6affe8a64,target=android-10 Market Version:3.8.1 Market Version Code:70 diff --git a/metadata/com.google.android.maps.mytracks.txt b/metadata/com.google.android.maps.mytracks.txt index 5a6f181a..be75e2c9 100644 --- a/metadata/com.google.android.maps.mytracks.txt +++ b/metadata/com.google.android.maps.mytracks.txt @@ -17,7 +17,7 @@ Repo:https://mytracks.googlecode.com/hg/ Build Version:1.1.0,23,a86a640f2d,subdir=MyTracks Build Version:1.1.3,26,!Doesn't build - needs dependencies building now I think -#Build Version:1.1.3,26,62821d45032d,subdir=MyTracks,target=android-9,encoding=utf-8 +#Build Version:1.1.3,26,62821d45032d,subdir=MyTracks,target=android-10,encoding=utf-8 #Still doesn't build... #Build Version:1.1.9,22,v1.1.9,subdir=MyTracks,encoding=utf-8,target=android-13 diff --git a/metadata/com.google.code.appsorganizer.txt b/metadata/com.google.code.appsorganizer.txt index 845ff244..722a370b 100644 --- a/metadata/com.google.code.appsorganizer.txt +++ b/metadata/com.google.code.appsorganizer.txt @@ -18,7 +18,7 @@ Build Version:1.5.14,162,184,subdir=AppsOrganizer Build Version:1.5.15,163,185,subdir=AppsOrganizer Build Version:1.5.16,164,187,subdir=AppsOrganizer Build Version:1.5.18,166,190,subdir=AppsOrganizer -Build Version:1.5.19,167,191,subdir=AppsOrganizer,target=android-9 +Build Version:1.5.19,167,191,subdir=AppsOrganizer,target=android-10 Market Version:1.5.19 Market Version Code:167 diff --git a/metadata/com.googlecode.androidcells.txt b/metadata/com.googlecode.androidcells.txt index 77170f67..51ce1c5c 100644 --- a/metadata/com.googlecode.androidcells.txt +++ b/metadata/com.googlecode.androidcells.txt @@ -15,7 +15,7 @@ to the OpenBMap database. See http://openbmap.org. Repo Type:git Repo:git://myposition.git.sourceforge.net/gitroot/myposition/AndroidClient -Build Version:0.4.96,9,bc15ce80024d7f53897fd10e6ea0cc914d0ba226,prebuild=mv lib libs,target=android-9 +Build Version:0.4.96,9,bc15ce80024d7f53897fd10e6ea0cc914d0ba226,prebuild=mv lib libs,target=android-10 Build Version:0.4.991,13,!Source is not there - see https://sourceforge.net/tracker/?func=detail&aid=3374951&group_id=218065&atid=1043257 Market Version:0.4.991 diff --git a/metadata/com.liato.bankdroid.txt b/metadata/com.liato.bankdroid.txt index 2e0d0dd8..5a82cbe8 100644 --- a/metadata/com.liato.bankdroid.txt +++ b/metadata/com.liato.bankdroid.txt @@ -54,7 +54,7 @@ Build Version:1.8.0,120,899e4b957e512bf55254,encoding=utf-8,prebuild=mkdir libs #Build fails on this version, same as previous version: # res/values/styles.xml:62: error: Error retrieving parent for item: No resource found that matches the given name 'android:WindowTitleBackground' -#Build Version:1.8.1,121,9f626b0dedb01cb90a16fb127a041c5f3dd1c579,target=android-9,encoding=utf-8,prebuild=mkdir libs && \ +#Build Version:1.8.1,121,9f626b0dedb01cb90a16fb127a041c5f3dd1c579,target=android-10,encoding=utf-8,prebuild=mkdir libs && \ # cd libs && \ # wget http://archive.apache.org/dist/commons/io/binaries/commons-io-2.0.1-bin.zip && \ # unzip -j commons-io-2.0.1-bin.zip commons-io-2.0.1/commons-io-2.0.1.jar && \ diff --git a/metadata/com.voidcode.diasporawebclient.txt b/metadata/com.voidcode.diasporawebclient.txt index f8beb7f6..26d3c032 100644 --- a/metadata/com.voidcode.diasporawebclient.txt +++ b/metadata/com.voidcode.diasporawebclient.txt @@ -13,5 +13,5 @@ Client for the Diaspora social network. Repo Type:git Repo:https://github.com/voidcode/Diaspora-Webclient.git -Build Version:1.3,3,26d7120fea1af5835a17537bebeef6df523d57e6,prebuild=rm -rf gen/ && rm -rf bin/,target=android-9 +Build Version:1.3,3,26d7120fea1af5835a17537bebeef6df523d57e6,prebuild=rm -rf gen/ && rm -rf bin/,target=android-10 diff --git a/metadata/com.zegoggles.smssync.txt b/metadata/com.zegoggles.smssync.txt index 7e5d9ea6..82fe9746 100644 --- a/metadata/com.zegoggles.smssync.txt +++ b/metadata/com.zegoggles.smssync.txt @@ -15,8 +15,8 @@ Repo Type:git Repo:https://github.com/jberkel/sms-backup-plus.git Build Version:1.4.3,1404,1.4.3 -Build Version:1.4.4,1405,1.4.4,target=android-9,prebuild=mv lib libs -Build Version:1.4.5,1406,1.4.5,target=android-9,prebuild=mv lib libs +Build Version:1.4.4,1405,1.4.4,target=android-10,prebuild=mv lib libs +Build Version:1.4.5,1406,1.4.5,target=android-10,prebuild=mv lib libs Market Version:1.4.5 Market Version Code:1406 diff --git a/metadata/de.shandschuh.slightbackup.txt b/metadata/de.shandschuh.slightbackup.txt index c7f929cd..60855536 100644 --- a/metadata/de.shandschuh.slightbackup.txt +++ b/metadata/de.shandschuh.slightbackup.txt @@ -16,9 +16,9 @@ unscheduled. Repo Type:git Repo:https://github.com/handschuh/Slight-backup.git -Build Version:0.2,6,94715551ab863b20df3d,target=android-9 -Build Version:0.4.2,12,843c7eecef6ac3602728,target=android-9 -Build Version:0.4.3,13,093cf46438b95cc379139792f7093739dcdfc2a7,target=android-9 +Build Version:0.2,6,94715551ab863b20df3d,target=android-10 +Build Version:0.4.2,12,843c7eecef6ac3602728,target=android-10 +Build Version:0.4.3,13,093cf46438b95cc379139792f7093739dcdfc2a7,target=android-10 Market Version:0.4.3 Market Version Code:13 diff --git a/metadata/de.shandschuh.sparserss.txt b/metadata/de.shandschuh.sparserss.txt index 1870a7bf..1472a955 100644 --- a/metadata/de.shandschuh.sparserss.txt +++ b/metadata/de.shandschuh.sparserss.txt @@ -21,7 +21,7 @@ Build Version:0.9.2,57,136,target=android-8 Build Version:1.1.1,65,177,target=android-8 Build Version:1.2.2,68,183,target=android-8 Build Version:1.3,69,197,target=android-8 -Build Version:1.3.1,70,210,target=android-9 +Build Version:1.3.1,70,210,target=android-10 Market Version:1.3.1 diff --git a/metadata/dk.andsen.asqlitemanager.txt b/metadata/dk.andsen.asqlitemanager.txt index 4adbefb6..d7fad887 100644 --- a/metadata/dk.andsen.asqlitemanager.txt +++ b/metadata/dk.andsen.asqlitemanager.txt @@ -14,7 +14,7 @@ Repo Type:svn Repo:https://asqlitemanager.svn.sourceforge.net/svnroot/asqlitemanager Build Version:2.6,7,190,subdir=aSQLiteManager -Build Version:2.7,9,204,subdir=aSQLiteManager,target=android-9 +Build Version:2.7,9,204,subdir=aSQLiteManager,target=android-10 Market Version:2.7 Market Version Code:9 diff --git a/metadata/mixedbit.speechtrainer.txt b/metadata/mixedbit.speechtrainer.txt index 6436975e..8ef3a577 100644 --- a/metadata/mixedbit.speechtrainer.txt +++ b/metadata/mixedbit.speechtrainer.txt @@ -14,7 +14,7 @@ treating speech disorders. Repo Type:git Repo:git://github.com/wrr/speech_trainer.git -Build Version:1.01,2,109eba6da3eac93c6e0d445f488433452387f815,subdir=app,target=android-9 +Build Version:1.01,2,109eba6da3eac93c6e0d445f488433452387f815,subdir=app,target=android-10 Market Version:1.01 Market Version Code:2 diff --git a/metadata/net.bytten.xkcdviewer.txt b/metadata/net.bytten.xkcdviewer.txt index 0624cc4b..c1875f9d 100644 --- a/metadata/net.bytten.xkcdviewer.txt +++ b/metadata/net.bytten.xkcdviewer.txt @@ -14,7 +14,7 @@ Repo:https://github.com/tcoxon/XkcdViewer.git Build Version:2.1.2,15,20ceb28d4360b11d2bfd Build Version:2.2.1,17,8ee6381d565db4d1b6a4 -Build Version:3.0.2,21,v3.0.2,target=android-9 +Build Version:3.0.2,21,v3.0.2,target=android-10 Market Version:3.0.2 Market Version Code:21 diff --git a/metadata/org.geometerplus.zlibrary.ui.android.txt b/metadata/org.geometerplus.zlibrary.ui.android.txt index c3ccdda4..dcbfe3b7 100644 --- a/metadata/org.geometerplus.zlibrary.ui.android.txt +++ b/metadata/org.geometerplus.zlibrary.ui.android.txt @@ -27,10 +27,10 @@ Build Version:1.1.8,101081,1.1.8,antcommand=package Build Version:1.1.9,101091,1.1.9,antcommand=package Build Version:1.1.10,101101,13ee5d79431815dd694e,antcommand=package -Build Version:1.2.2,102021,e63c553aeb032da828b270a735f0171d8d22c54c,buildjni=yes,target=android-9,prebuild=mkdir res/drawable && find icons -iname "*.*" -exec cp {} res/drawable \; -Build Version:1.2.3,102031,46d83bb4351c2f6ec51e0d9aa6202c86c1297e7f,buildjni=yes,target=android-9,prebuild=mkdir res/drawable && find icons -iname "*.*" -exec cp {} res/drawable \; -Build Version:1.2.4,102041,6426bcf131d4,buildjni=yes,target=android-9,prebuild=mkdir res/drawable && find icons -iname "*.*" -exec cp {} res/drawable \; -Build Version:1.2.6,102061,1.2.6,buildjni=yes,target=android-9,prebuild=mkdir res/drawable && find icons -iname "*.*" -exec cp {} res/drawable \; +Build Version:1.2.2,102021,e63c553aeb032da828b270a735f0171d8d22c54c,buildjni=yes,target=android-10,prebuild=mkdir res/drawable && find icons -iname "*.*" -exec cp {} res/drawable \; +Build Version:1.2.3,102031,46d83bb4351c2f6ec51e0d9aa6202c86c1297e7f,buildjni=yes,target=android-10,prebuild=mkdir res/drawable && find icons -iname "*.*" -exec cp {} res/drawable \; +Build Version:1.2.4,102041,6426bcf131d4,buildjni=yes,target=android-10,prebuild=mkdir res/drawable && find icons -iname "*.*" -exec cp {} res/drawable \; +Build Version:1.2.6,102061,1.2.6,buildjni=yes,target=android-10,prebuild=mkdir res/drawable && find icons -iname "*.*" -exec cp {} res/drawable \; Market Version:1.2.5 Market Version Code:102051 diff --git a/metadata/org.jessies.mathdroid.txt b/metadata/org.jessies.mathdroid.txt index 631a1733..1afc2a8f 100644 --- a/metadata/org.jessies.mathdroid.txt +++ b/metadata/org.jessies.mathdroid.txt @@ -13,7 +13,7 @@ A calculator with full on-screen history and many functions. Repo Type:git-svn Repo:http://enh.googlecode.com/svn/trunk -Build Version:2.5,25,525,oldsdkloc=yes,target=android-9,subdir=mathdroid,prebuild=rm -rf src/org/jessies/test && mkdir src/org/jessies/test && wget http://software.jessies.org/svn/salma-hayek/trunk/src/org/jessies/test/Assert.java -O src/org/jessies/test/Assert.java && wget http://software.jessies.org/svn/salma-hayek/trunk/src/org/jessies/test/Test.java -O src/org/jessies/test/Test.java && wget http://software.jessies.org/svn/salma-hayek/trunk/src/org/jessies/test/TestHelper.java -O src/org/jessies/test/TestHelper.java +Build Version:2.5,25,525,oldsdkloc=yes,target=android-10,subdir=mathdroid,prebuild=rm -rf src/org/jessies/test && mkdir src/org/jessies/test && wget http://software.jessies.org/svn/salma-hayek/trunk/src/org/jessies/test/Assert.java -O src/org/jessies/test/Assert.java && wget http://software.jessies.org/svn/salma-hayek/trunk/src/org/jessies/test/Test.java -O src/org/jessies/test/Test.java && wget http://software.jessies.org/svn/salma-hayek/trunk/src/org/jessies/test/TestHelper.java -O src/org/jessies/test/TestHelper.java Market Version:2.5 Market Version Code:25 diff --git a/metadata/org.scoutant.blokish.txt b/metadata/org.scoutant.blokish.txt index b8b88b1d..73667f0d 100644 --- a/metadata/org.scoutant.blokish.txt +++ b/metadata/org.scoutant.blokish.txt @@ -12,10 +12,10 @@ A strategy board game. Repo Type:git Repo:git://github.com/scoutant/blokish.git -Build Version:0.5,1,ca2e9096c6d5140c14e7,target=android-9 -Build Version:1.4,7,82ca58cdd26797f9ba9519e79c54031282d066af,target=android-9 -Build Version:1.5,8,e6ab83e8832f03d78bf3f8deae33acb22a7ba520,target=android-9 -Build Version:1.6,9,ebd1b966b70e,target=android-9 +Build Version:0.5,1,ca2e9096c6d5140c14e7,target=android-10 +Build Version:1.4,7,82ca58cdd26797f9ba9519e79c54031282d066af,target=android-10 +Build Version:1.5,8,e6ab83e8832f03d78bf3f8deae33acb22a7ba520,target=android-10 +Build Version:1.6,9,ebd1b966b70e,target=android-10 Market Version:1.6 Market Version Code:9 diff --git a/metadata/org.sixgun.ponyexpress.txt b/metadata/org.sixgun.ponyexpress.txt index dea9c33d..70fc89dc 100644 --- a/metadata/org.sixgun.ponyexpress.txt +++ b/metadata/org.sixgun.ponyexpress.txt @@ -17,7 +17,7 @@ Build Version:0.4.1,5,d64eace51a0c053fc8356ddd6b54a1372617a470 Build Version:0.4.2,8,38eb1f2141225a95c8a96fedfbdfcf34beeeeb9b Build Version:0.4.3,9,0.4.3 Build Version:1.0,11,efc427322038febb25d6ca909bf8c4157f685839 -Build Version:1.1,12,1.1,target=android-9 +Build Version:1.1,12,1.1,target=android-10 Market Version:1.1 Market Version Code:12 diff --git a/metadata/org.thoughtcrime.securesms.txt b/metadata/org.thoughtcrime.securesms.txt index 00ca9444..a74db453 100644 --- a/metadata/org.thoughtcrime.securesms.txt +++ b/metadata/org.thoughtcrime.securesms.txt @@ -16,5 +16,5 @@ with someone else also using TextSecure. Repo Type:git Repo:https://github.com/WhisperSystems/TextSecure.git -Build Version:0.5.7,21,6a30867fd481474e8634b508d524863bc8a6b565,target=android-9 +Build Version:0.5.7,21,6a30867fd481474e8634b508d524863bc8a6b565,target=android-10 diff --git a/metadata/org.zirco.txt b/metadata/org.zirco.txt index c5c1e514..dd33baa9 100644 --- a/metadata/org.zirco.txt +++ b/metadata/org.zirco.txt @@ -25,8 +25,8 @@ Build Version:0.3.7,11,329 Build Version:0.3.8,12,339 Build Version:0.3.9,13,367 Build Version:0.4.1,15,407 -Build Version:0.4.2,16,438,target=android-9 -Build Version:0.4.3,17,443,target=android-9 +Build Version:0.4.2,16,438,target=android-10 +Build Version:0.4.3,17,443,target=android-10 Market Version:0.4.3 Market Version Code:17 diff --git a/metadata/vu.de.urpool.quickdroid.txt b/metadata/vu.de.urpool.quickdroid.txt index afacccd5..e095db85 100644 --- a/metadata/vu.de.urpool.quickdroid.txt +++ b/metadata/vu.de.urpool.quickdroid.txt @@ -16,8 +16,8 @@ Repo Type:svn Repo:http://quickdroid.googlecode.com/svn/trunk Build Version:2.9.4,31,65,subdir=Quickdroid,target=android-7 -Build Version:3.0,37,75,subdir=Quickdroid,target=android-9 -Build Version:3.0.1,38,76,subdir=Quickdroid,target=android-9 +Build Version:3.0,37,75,subdir=Quickdroid,target=android-10 +Build Version:3.0.1,38,76,subdir=Quickdroid,target=android-10 Market Version:4.0.1 Market Version Code:41 From 5150c22470cc202b630fa39852487b2205f8218a Mon Sep 17 00:00:00 2001 From: prcrst Date: Sun, 8 Jan 2012 17:21:51 +0100 Subject: [PATCH 24/75] Put the output of the failing command in the exception. --- build.py | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/build.py b/build.py index c30520b3..0e4902bd 100755 --- a/build.py +++ b/build.py @@ -145,8 +145,7 @@ for app in apps: stdout=subprocess.PIPE) output = p.communicate()[0] if p.returncode != 0: - print output - raise BuildException("Build failed for %s:%s" % (app['id'], thisbuild['version'])) + raise BuildException("Build failed for %s:%s (%s)" % (app['id'], thisbuild['version'], output.strip())) elif options.verbose: print output print "Build successful" From db9b1cf0670253c2104d90db844498df1bf1e108 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Mon, 9 Jan 2012 09:15:24 +0000 Subject: [PATCH 25/75] Metadata: new aCal version --- metadata/com.morphoss.acal.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/metadata/com.morphoss.acal.txt b/metadata/com.morphoss.acal.txt index 3527acfd..81b42fa9 100644 --- a/metadata/com.morphoss.acal.txt +++ b/metadata/com.morphoss.acal.txt @@ -25,6 +25,7 @@ Build Version:1.3),32,r1.3,target=android-8 Build Version:1.31,33,r1.31,target=android-8 Build Version:1.32,34,r1.32,target=android-8 Build Version:1.33,35,r1.33,target=android-8 +Build Version:1.34,36,r1.34,target=android-8 Market Version:1.33 Market Version Code:35 From a9fd9c7e21feea45d683a63cec3206937c7d6666 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Mon, 9 Jan 2012 13:19:27 +0000 Subject: [PATCH 26/75] Scan for another common binary blob --- scanner.py | 1 + 1 file changed, 1 insertion(+) diff --git a/scanner.py b/scanner.py index 475cecdf..3291a2dc 100755 --- a/scanner.py +++ b/scanner.py @@ -93,6 +93,7 @@ for app in apps: # Scan for common known non-free blobs: usual_suspects = ['flurryagent.jar', 'paypal_mpl.jar', + 'libGoogleAnalytics.jar', 'admob-sdk-android.jar'] for r,d,f in os.walk(build_dir): for curfile in f: From c30dc5825e4e652b226b1c18cbfbeab6e2b3bd1d Mon Sep 17 00:00:00 2001 From: prcrst Date: Sun, 8 Jan 2012 19:12:01 +0100 Subject: [PATCH 27/75] Another key.* offender --- metadata/edu.rit.poe.atomix.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata/edu.rit.poe.atomix.txt b/metadata/edu.rit.poe.atomix.txt index c770ce0e..4e127de8 100644 --- a/metadata/edu.rit.poe.atomix.txt +++ b/metadata/edu.rit.poe.atomix.txt @@ -12,4 +12,4 @@ obstacle. Repo Type:hg Repo:https://droid-atomix.googlecode.com/hg/ Use Built:Yes -Build Version:1.0.1,2,ea2086d1f9fe759866008f6fe5187fc1cc97bd1d,target=android-4 +Build Version:1.0.1,2,ea2086d1f9fe759866008f6fe5187fc1cc97bd1d,target=android-4,prebuild=sed -i -e "/key\.alias.*/d" -e "/key\.store.*/d" *.properties From 4cd621f9398c8749bcf774acb693ebc6e4f29cf6 Mon Sep 17 00:00:00 2001 From: prcrst Date: Sun, 8 Jan 2012 19:13:15 +0100 Subject: [PATCH 28/75] Enhance BuildExceptions --- common.py | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/common.py b/common.py index 6d3e8e83..d54ed432 100644 --- a/common.py +++ b/common.py @@ -54,7 +54,7 @@ class vcs: self.remote = remote self.local = local - + # Refresh the local repository - i.e. get the latest code. This # works either by updating if a local copy already exists, or by # cloning from scratch if it doesn't. @@ -384,11 +384,18 @@ def read_metadata(verbose=False): return apps class BuildException(Exception): - def __init__(self, value): + def __init__(self, value, stdout = None, stderr = None): self.value = value + self.stdout = stdout + self.stderr = stderr def __str__(self): - return repr(self.value) + ret = repr(self.value) + if self.stdout: + ret = ret + "\n==== stdout begin ====\n" + str(self.stdout) + "\n==== stdout end ====" + if self.stderr: + ret = ret + "\n==== stderr begin ====\n" + str(self.stderr) + "\n==== stderr end ====" + return ret class VCSException(Exception): def __init__(self, value): From 200073b0f981835dd77fbbb960dc7fe842276bf3 Mon Sep 17 00:00:00 2001 From: prcrst Date: Sun, 8 Jan 2012 19:27:54 +0100 Subject: [PATCH 29/75] - Make use of enhanced BuildExceptions - Add logfiles - Add --stop mode to break on exceptions --- build.py | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/build.py b/build.py index 0e4902bd..90299f2e 100755 --- a/build.py +++ b/build.py @@ -36,13 +36,14 @@ from common import VCSException #Read configuration... execfile('config.py') - # Parse command line... parser = OptionParser() parser.add_option("-v", "--verbose", action="store_true", default=False, help="Spew out even more information than normal") parser.add_option("-p", "--package", default=None, help="Build only the specified package") +parser.add_option("-s", "--stop", action="store_true", default=False, + help="Make the build stop on exceptions") (options, args) = parser.parse_args() # Get all apps... @@ -51,6 +52,11 @@ apps = common.read_metadata(options.verbose) failed_apps = {} build_succeeded = [] +log_dir = 'logs' +if not os.path.isdir(log_dir): + print "Creating log directory" + os.makedirs(log_dir) + output_dir = 'repo' if not os.path.isdir(output_dir): print "Creating output directory" @@ -135,17 +141,17 @@ for app in apps: if thisbuild.has_key('maven'): p = subprocess.Popen(['mvn', 'clean', 'install', '-Dandroid.sdk.path=' + sdk_path], - cwd=root_dir, stdout=subprocess.PIPE) + cwd=root_dir, stdout=subprocess.PIPE, stderr=subprocess.PIPE) else: if thisbuild.has_key('antcommand'): antcommand = thisbuild['antcommand'] else: antcommand = 'release' p = subprocess.Popen(['ant', antcommand], cwd=root_dir, - stdout=subprocess.PIPE) - output = p.communicate()[0] + stdout=subprocess.PIPE, stderr=subprocess.PIPE) + output, error = p.communicate() if p.returncode != 0: - raise BuildException("Build failed for %s:%s (%s)" % (app['id'], thisbuild['version'], output.strip())) + raise BuildException("Build failed for %s:%s" % (app['id'], thisbuild['version']), output.strip(), error.strip()) elif options.verbose: print output print "Build successful" @@ -267,12 +273,21 @@ for app in apps: os.remove(dest_unsigned) build_succeeded.append(app) except BuildException as be: + if options.stop: + raise print "Could not build app %s due to BuildException: %s" % (app['id'], be) + logfile = open(os.path.join(log_dir, app['id'] + '.log'), 'a+') + logfile.write(str(be)) + logfile.close failed_apps[app['id']] = be except VCSException as vcse: + if options.stop: + raise print "VCS error while building app %s: %s" % (app['id'], vcse) failed_apps[app['id']] = vcse except Exception as e: + if options.stop: + raise print "Could not build app %s due to unknown error: %s" % (app['id'], e) failed_apps[app['id']] = e @@ -280,9 +295,11 @@ for app in build_succeeded: print "success: %s" % (app['id']) for fa in failed_apps: - print "Build for app %s failed: %s" % (fa, failed_apps[fa]) + print "Build for app %s failed:\n%s" % (fa, failed_apps[fa]) print "Finished." +if len(build_succeeded) > 0: + print str(len(failed_apps)) + ' builds succeeded' if len(failed_apps) > 0: print str(len(failed_apps)) + ' builds failed' From 1df2a0dd120c64da1145a182d1185fd88e6cfacc Mon Sep 17 00:00:00 2001 From: Torsten Grote Date: Sun, 8 Jan 2012 17:48:04 +0100 Subject: [PATCH 30/75] added three apps that do not build, yet --- metadata/com.bottleworks.dailymoney.txt | 25 +++++++++++++++++++++++ metadata/org.hermit.dazzle.txt | 19 +++++++++++++++++ metadata/ru.orangesoftware.financisto.txt | 24 ++++++++++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 metadata/com.bottleworks.dailymoney.txt create mode 100644 metadata/org.hermit.dazzle.txt create mode 100644 metadata/ru.orangesoftware.financisto.txt diff --git a/metadata/com.bottleworks.dailymoney.txt b/metadata/com.bottleworks.dailymoney.txt new file mode 100644 index 00000000..9a359b78 --- /dev/null +++ b/metadata/com.bottleworks.dailymoney.txt @@ -0,0 +1,25 @@ +License:GPLv2 +Category:Office +Web Site:https://code.google.com/p/daily-money/ +Source Code:https://code.google.com/p/daily-money/source/browse/ +Issue Tracker:https://code.google.com/p/daily-money/issues/list +Summary:A simple & easy financial android application +Description: +Features: +* Record your daily expense, income, asset and liability +* Show and count the details +* Export/Import to CSV +* Pie and time chart of balance +. + +AntiFeatures:Tracking + +Repo Type:svn +Repo:https://daily-money.googlecode.com/svn/trunk/ + +# Does not build yet +#Build Version:0.9.7-0702-freshly,2011070200,218,subdir=dailymoney-surface/,target=android-7,prebuild=\ +# cp build.xml local.properties ../dailymoney/ && \ +# cd ../dailymoney/ && \ +# cp default.properties project.properties + diff --git a/metadata/org.hermit.dazzle.txt b/metadata/org.hermit.dazzle.txt new file mode 100644 index 00000000..cb4d87b4 --- /dev/null +++ b/metadata/org.hermit.dazzle.txt @@ -0,0 +1,19 @@ +License:GPLv2 +Category:System +Web Site:https://code.google.com/p/moonblink/wiki/Dazzle +Source Code:https://moonblink.googlecode.com/svn/trunk/Dazzle/ +Issue Tracker:https://code.google.com/p/moonblink/issues/list +Summary:configurable switcher widget for WiFi, Bluetooth, GPS, airplane mode, and brightness controls +Description: +Dazzle is a configurable switcher widget for Android devices; it allows you to create one or more switcher widgets, in four sizes, with your choice of controls. You can choose from WiFi, Bluetooth, GPS, airplane mode, and brightness controls; on supported devices, brightness lets you toggle between auto and manual modes. +. + +Repo Type:svn +Repo:http://moonblink.googlecode.com/svn/trunk + +# Build fails, probably also needs to build ../HermitLibrary +#Build Version:2.9,12,907,subdir=Dazzle,target=android-4,prebuild=\ +# cp build.xml local.properties ../HermitAndroid/ && \ +# cd ../HermitAndroid/ && \ +# cp default.properties project.properties + diff --git a/metadata/ru.orangesoftware.financisto.txt b/metadata/ru.orangesoftware.financisto.txt new file mode 100644 index 00000000..7f346a2b --- /dev/null +++ b/metadata/ru.orangesoftware.financisto.txt @@ -0,0 +1,24 @@ +License:GPLv2 +Category:Office +Web Site:http://financisto.com/ +Source Code:http://bazaar.launchpad.net/~financisto-dev/financisto/trunk/files +Issue Tracker:https://bugs.launchpad.net/financisto +Summary:Personal finance manager +Description: +Personal finance manager +- Multiple accounts with multiple currencies +- Scheduled and recurring transactions +- Transfers with downloadable currency rates +- Location based transactions +- Hierarchial categories with custom attributes +- Projects to organize transactions +- Recurring budgets based on categories and projects +- Advanced reporting and filtering +. + +Repo Type:bzr +Repo:lp:financisto + +# Build fails, wrong path to GreenDroid library +#Build Version:1.5.4,57,303,target=android-4 + From 06bb00c7cf3e2535ab8ea1d945552af27fafed11 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Mon, 9 Jan 2012 13:28:09 +0000 Subject: [PATCH 31/75] Minor corrects to 1df2a0dd1 --- metadata/com.bottleworks.dailymoney.txt | 3 ++- metadata/org.hermit.dazzle.txt | 7 +++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/metadata/com.bottleworks.dailymoney.txt b/metadata/com.bottleworks.dailymoney.txt index 9a359b78..77724e11 100644 --- a/metadata/com.bottleworks.dailymoney.txt +++ b/metadata/com.bottleworks.dailymoney.txt @@ -1,9 +1,10 @@ +Disabled:Non-free blob License:GPLv2 Category:Office Web Site:https://code.google.com/p/daily-money/ Source Code:https://code.google.com/p/daily-money/source/browse/ Issue Tracker:https://code.google.com/p/daily-money/issues/list -Summary:A simple & easy financial android application +Summary:Simple Finance Manager Description: Features: * Record your daily expense, income, asset and liability diff --git a/metadata/org.hermit.dazzle.txt b/metadata/org.hermit.dazzle.txt index cb4d87b4..704de91d 100644 --- a/metadata/org.hermit.dazzle.txt +++ b/metadata/org.hermit.dazzle.txt @@ -3,9 +3,12 @@ Category:System Web Site:https://code.google.com/p/moonblink/wiki/Dazzle Source Code:https://moonblink.googlecode.com/svn/trunk/Dazzle/ Issue Tracker:https://code.google.com/p/moonblink/issues/list -Summary:configurable switcher widget for WiFi, Bluetooth, GPS, airplane mode, and brightness controls +Summary:Configurable switcher widget Description: -Dazzle is a configurable switcher widget for Android devices; it allows you to create one or more switcher widgets, in four sizes, with your choice of controls. You can choose from WiFi, Bluetooth, GPS, airplane mode, and brightness controls; on supported devices, brightness lets you toggle between auto and manual modes. +Dazzle is a configurable switcher widget; it allows you to create one or more +switcher widgets, in four sizes, with your choice of controls. You can choose +from WiFi, Bluetooth, GPS, airplane mode, and brightness controls; on +supported devices, brightness lets you toggle between auto and manual modes. . Repo Type:svn From 655676c5040409dc493be18b9942fc986f72c042 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Mon, 9 Jan 2012 13:30:26 +0000 Subject: [PATCH 32/75] Metadata: version updates --- metadata/com.andrewshu.android.reddit.txt | 4 ++-- metadata/com.ghostsq.commander.txt | 4 ++-- metadata/com.matburt.mobileorg.txt | 4 ++-- metadata/de.shandschuh.sparserss.txt | 4 ++-- metadata/net.sourceforge.servestream.txt | 4 ++-- metadata/net.sylvek.sharemyposition.txt | 4 ++-- metadata/net.tedstein.AndroSS.txt | 4 ++-- metadata/org.coolreader.txt | 4 ++-- metadata/org.jfedor.frozenbubble.txt | 4 ++-- metadata/org.wordpress.android.txt | 4 ++-- metadata/org.xbmc.android.remote.txt | 4 ++-- metadata/org.yaxim.androidclient.txt | 4 ++-- 12 files changed, 24 insertions(+), 24 deletions(-) diff --git a/metadata/com.andrewshu.android.reddit.txt b/metadata/com.andrewshu.android.reddit.txt index ccf46512..6d100564 100644 --- a/metadata/com.andrewshu.android.reddit.txt +++ b/metadata/com.andrewshu.android.reddit.txt @@ -23,5 +23,5 @@ Build Version:1.2.1.2,75,28c98a7,prebuild=rsync -r lib/ libs,target=android-10 Build Version:1.2.1.3,76,143892b558,prebuild=rsync -r lib/ libs,target=android-10 Build Version:1.2.1.5,78,!more dependency shuffling required and watch out for the proguard config -Market Version:1.2.1.5 -Market Version Code:78 +Market Version:1.2.2a +Market Version Code:81 diff --git a/metadata/com.ghostsq.commander.txt b/metadata/com.ghostsq.commander.txt index b4becd21..2e78dcc2 100644 --- a/metadata/com.ghostsq.commander.txt +++ b/metadata/com.ghostsq.commander.txt @@ -27,5 +27,5 @@ prebuild=sed -ri 's/(debuggable)="true"/\1="false"/' AndroidManifest.xml Build Version:1.36.4,110,161,\ prebuild=sed -ri 's/(debuggable)="true"/\1="false"/' AndroidManifest.xml -Market Version:1.39.2 -Market Version Code:152 +Market Version:1.39.3 +Market Version Code:154 diff --git a/metadata/com.matburt.mobileorg.txt b/metadata/com.matburt.mobileorg.txt index 17f04615..27fb6140 100644 --- a/metadata/com.matburt.mobileorg.txt +++ b/metadata/com.matburt.mobileorg.txt @@ -14,5 +14,5 @@ Repo:https://github.com/matburt/mobileorg-android.git #Needs dropbox consumer key #Build Version:0.5.2,51,38dfe967ee99c71b12b8 -Market Version:0.6.2 -Market Version Code:62 +Market Version:0.7.1 +Market Version Code:71 diff --git a/metadata/de.shandschuh.sparserss.txt b/metadata/de.shandschuh.sparserss.txt index 1472a955..9b17fa57 100644 --- a/metadata/de.shandschuh.sparserss.txt +++ b/metadata/de.shandschuh.sparserss.txt @@ -24,5 +24,5 @@ Build Version:1.3,69,197,target=android-8 Build Version:1.3.1,70,210,target=android-10 -Market Version:1.3.1 -Market Version Code:70 +Market Version:1.3.2 +Market Version Code:71 diff --git a/metadata/net.sourceforge.servestream.txt b/metadata/net.sourceforge.servestream.txt index a58594b1..125b4435 100644 --- a/metadata/net.sourceforge.servestream.txt +++ b/metadata/net.sourceforge.servestream.txt @@ -22,5 +22,5 @@ Build Version:0.2.11,46,614,prebuild=mv lib/ libs/ #Still guessing, see previous comment Build Version:0.3.1,48,659,prebuild=mv lib/ libs/ -Market Version:0.4.1 -Market Version Code:51 +Market Version:0.4.3 +Market Version Code:53 diff --git a/metadata/net.sylvek.sharemyposition.txt b/metadata/net.sylvek.sharemyposition.txt index f463af21..01a010b9 100644 --- a/metadata/net.sylvek.sharemyposition.txt +++ b/metadata/net.sylvek.sharemyposition.txt @@ -22,5 +22,5 @@ Repo:http://sharemyposition.googlecode.com/svn/trunk/ Build Version:1.0.11,16,64,subdir=ShareMyPosition-android -Market Version:1.0.11 -Market Version Code:16 +Market Version:1.1.0-beta1 +Market Version Code:18 diff --git a/metadata/net.tedstein.AndroSS.txt b/metadata/net.tedstein.AndroSS.txt index c9f77597..8e2b8411 100644 --- a/metadata/net.tedstein.AndroSS.txt +++ b/metadata/net.tedstein.AndroSS.txt @@ -20,5 +20,5 @@ Build Version:0.2.2,8,v0.2.2,buildjni=yes,target=android-8 Build Version:0.3.-1,10,v0.3.-1,buildjni=yes,target=android-8 Build Version:0.3.2,13,v0.3.2,buildjni=yes,target=android-8 -Market Version:0.4.1 -Market Version Code:15 +Market Version:0.4.2 +Market Version Code:16 diff --git a/metadata/org.coolreader.txt b/metadata/org.coolreader.txt index f515884e..9a623c2a 100644 --- a/metadata/org.coolreader.txt +++ b/metadata/org.coolreader.txt @@ -49,5 +49,5 @@ Build Version:3.0.54-5,275,cr3.0.54-5,subdir=android,rm=android/build.properties Build Version:3.0.54-9,279,cr3.0.54-9,subdir=android,rm=android/build.properties,buildjni=yes Build Version:3.0.54-33,303,cr3.0.54-33,subdir=android,rm=android/build.properties,buildjni=yes -Market Version:3.0.54-33 -Market Version Code:303 +Market Version:3.0.54-38 +Market Version Code:308 diff --git a/metadata/org.jfedor.frozenbubble.txt b/metadata/org.jfedor.frozenbubble.txt index a1f5a8ca..b0470372 100644 --- a/metadata/org.jfedor.frozenbubble.txt +++ b/metadata/org.jfedor.frozenbubble.txt @@ -9,8 +9,8 @@ Description: A bubble shooting game. Knock the bubbles down by forming clusters of three or more bubbles. . -Market Version:1.11 -Market Version Code:12 +Market Version:1.12 +Market Version Code:13 Repo Type:svn Repo:http://frozenbubbleandroid.googlecode.com/svn/ diff --git a/metadata/org.wordpress.android.txt b/metadata/org.wordpress.android.txt index 0c9540fd..47471fe8 100644 --- a/metadata/org.wordpress.android.txt +++ b/metadata/org.wordpress.android.txt @@ -21,5 +21,5 @@ Repo:http://android.svn.wordpress.org/trunk/ Build Version:1.3.9,31,202,prebuild=mkdir libs && mv *.jar libs && sed -i "s@checkStats(accounts.size());@// MY PRIVACY > YOUR STATS@" src/org/wordpress/android/wpAndroid.java,encoding=utf-8 Build Version:1.4.1,33,228,prebuild=mkdir libs && mv *.jar libs && sed -i "s@checkStats(accounts.size());@// MY PRIVACY > YOUR STATS@" src/org/wordpress/android/wpAndroid.java,encoding=utf-8 -Market Version:2.0.1 -Market Version Code:39 +Market Version:2.0.2 +Market Version Code:40 diff --git a/metadata/org.xbmc.android.remote.txt b/metadata/org.xbmc.android.remote.txt index e178818e..16b4d901 100644 --- a/metadata/org.xbmc.android.remote.txt +++ b/metadata/org.xbmc.android.remote.txt @@ -17,5 +17,5 @@ Repo:http://android-xbmcremote.googlecode.com/svn/trunk/XBMC%20Remote Build Version:0.8.5-beta1,730,730,encoding=utf-8,prebuild=mv lib libs && mv lib-src/org/codehaus src/org/ Build Version:0.8.6-beta1,768,768,encoding=utf-8,prebuild=mv lib libs && mv lib-src/org/codehaus src/org/ -Market Version:0.8.7-beta1 -Market Version Code:807 +Market Version:0.8.8-beta1 +Market Version Code:808 diff --git a/metadata/org.yaxim.androidclient.txt b/metadata/org.yaxim.androidclient.txt index e74f65fb..3d1f78c6 100644 --- a/metadata/org.yaxim.androidclient.txt +++ b/metadata/org.yaxim.androidclient.txt @@ -19,5 +19,5 @@ Build Version:0.8.0,9,0.8.0,oldsdkloc=yes,submodules=yes,fixtrans=yes,target=and Build Version:0.8.1,10,0.8.1,oldsdkloc=yes,submodules=yes,fixtrans=yes,target=android-10 Build Version:0.8.2,11,0.8.2,oldsdkloc=yes,submodules=yes,fixtrans=yes,target=android-10 -Market Version:0.8.2 -Market Version Code:11 +Market Version:0.8.3 +Market Version Code:12 From 8b53c4a50302f06989d1dba1c9c5f2a1f8bc6d49 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Mon, 9 Jan 2012 13:51:03 +0000 Subject: [PATCH 33/75] Correct number of builds succeeded --- build.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.py b/build.py index 90299f2e..76acf0f7 100755 --- a/build.py +++ b/build.py @@ -299,7 +299,7 @@ for fa in failed_apps: print "Finished." if len(build_succeeded) > 0: - print str(len(failed_apps)) + ' builds succeeded' + print str(len(failed_succeeded)) + ' builds succeeded' if len(failed_apps) > 0: print str(len(failed_apps)) + ' builds failed' From 0966ca73a805fa690d790a8d11163d17f003a936 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Mon, 9 Jan 2012 22:22:11 +0000 Subject: [PATCH 34/75] Corrected DuckDuckGo spelling --- metadata/se.johanhil.duckduckgo.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/metadata/se.johanhil.duckduckgo.txt b/metadata/se.johanhil.duckduckgo.txt index ca215c56..9abbcea0 100644 --- a/metadata/se.johanhil.duckduckgo.txt +++ b/metadata/se.johanhil.duckduckgo.txt @@ -5,9 +5,9 @@ Web Site:https://github.com/johanhil/ddg-android Source Code:https://github.com/johanhil/ddg-android Issue Tracker:https://github.com/johanhil/ddg-android/issues Donate: -Summary:Duck Duck Go search provider +Summary:DuckDuckGo search provider Description: -Integrates the search engine Duck Duck Go with the Android OS. It adds +Integrates the search engine DuckDuckGo with the Android OS. It adds another web search provider to the system and some neat suggestions for the user. . From db18a8994e6bb7806ecc3f48e024553bb2335c43 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Mon, 9 Jan 2012 22:22:30 +0000 Subject: [PATCH 35/75] Metadata: updated coolreader version --- metadata/org.coolreader.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/metadata/org.coolreader.txt b/metadata/org.coolreader.txt index 9a623c2a..4797284f 100644 --- a/metadata/org.coolreader.txt +++ b/metadata/org.coolreader.txt @@ -48,6 +48,7 @@ Build Version:3.0.53-19,264,cr3.0.53-19,subdir=android,rm=android/build.properti Build Version:3.0.54-5,275,cr3.0.54-5,subdir=android,rm=android/build.properties,buildjni=yes Build Version:3.0.54-9,279,cr3.0.54-9,subdir=android,rm=android/build.properties,buildjni=yes Build Version:3.0.54-33,303,cr3.0.54-33,subdir=android,rm=android/build.properties,buildjni=yes +Build Version:3.0.54-38,308,cr3.0.54-38,subdir=android,rm=android/build.properties,buildjni=yes Market Version:3.0.54-38 Market Version Code:308 From 2e78de40950f383062ac2482560e3ccd95247005 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Mon, 9 Jan 2012 23:36:03 +0000 Subject: [PATCH 36/75] Fix inexplicable error in 8b53c4 --- build.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.py b/build.py index 76acf0f7..fadb7a54 100755 --- a/build.py +++ b/build.py @@ -299,7 +299,7 @@ for fa in failed_apps: print "Finished." if len(build_succeeded) > 0: - print str(len(failed_succeeded)) + ' builds succeeded' + print str(len(build_succeeded)) + ' builds succeeded' if len(failed_apps) > 0: print str(len(failed_apps)) + ' builds failed' From 99c39602ef29466441ef9bd6a1e0955de239f108 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Tue, 10 Jan 2012 13:20:27 +0000 Subject: [PATCH 37/75] Metadata: new ShareMyPosition, and aCal current version update --- metadata/com.morphoss.acal.txt | 4 ++-- metadata/net.sylvek.sharemyposition.txt | 9 +++++---- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/metadata/com.morphoss.acal.txt b/metadata/com.morphoss.acal.txt index 81b42fa9..0ded171e 100644 --- a/metadata/com.morphoss.acal.txt +++ b/metadata/com.morphoss.acal.txt @@ -27,5 +27,5 @@ Build Version:1.32,34,r1.32,target=android-8 Build Version:1.33,35,r1.33,target=android-8 Build Version:1.34,36,r1.34,target=android-8 -Market Version:1.33 -Market Version Code:35 +Market Version:1.34 +Market Version Code:36 diff --git a/metadata/net.sylvek.sharemyposition.txt b/metadata/net.sylvek.sharemyposition.txt index 01a010b9..fcb8cc34 100644 --- a/metadata/net.sylvek.sharemyposition.txt +++ b/metadata/net.sylvek.sharemyposition.txt @@ -14,13 +14,14 @@ The recipient is sent a link to a web service. (The source for the web service is in the same repository as the client). . -Repo Type:svn -Repo:http://sharemyposition.googlecode.com/svn/trunk/ +Repo Type:git-svn #Note - deliberately pulling from trunk, not trunk/ShareMyPosition-android, #even though that would be more efficient, in order to preserve the #corresponding source for the web service in our source tarball. +Repo:http://sharemyposition.googlecode.com/svn/trunk/ Build Version:1.0.11,16,64,subdir=ShareMyPosition-android +Build Version:1.1.0-beta3,20,70,subdir=ShareMyPosition-android,target=android-11,prebuild=mv lib libs -Market Version:1.1.0-beta1 -Market Version Code:18 +Market Version:1.1.0-beta3 +Market Version Code:20 From 1458cfb04f078aaa338f965a921a767c046fe050 Mon Sep 17 00:00:00 2001 From: Nicolas Raoul Date: Tue, 10 Jan 2012 21:59:09 +0900 Subject: [PATCH 38/75] Ignore logs directory --- .gitignore | 1 + 1 file changed, 1 insertion(+) diff --git a/.gitignore b/.gitignore index ccbb9b7d..c8ac9607 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,6 @@ config.py repo/ +logs/ built/ build/ build_*/ From 596b602655a1e1306aabf79ce3c1ade225641437 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Tue, 10 Jan 2012 15:24:02 +0000 Subject: [PATCH 39/75] Metadata: some formatting fixes --- metadata/An.stop.txt | 3 ++- metadata/com.funambol.androidsync.txt | 2 +- metadata/com.jadn.cc.txt | 3 ++- metadata/goo.TeaTimer.txt | 5 +++-- metadata/ru.gelin.android.weather.notification.txt | 7 ++++--- 5 files changed, 12 insertions(+), 8 deletions(-) diff --git a/metadata/An.stop.txt b/metadata/An.stop.txt index b2b7c43b..5d17306f 100644 --- a/metadata/An.stop.txt +++ b/metadata/An.stop.txt @@ -5,7 +5,8 @@ Web Site:http://code.google.com/p/anstop/ Source Code:http://code.google.com/p/anstop/source/checkout Issue Tracker:http://code.google.com/p/anstop/issues/list Summary:A simple stopwatch -Description:A simple stopwatch, that also supports lap timing and a countdown +Description: +A simple stopwatch, that also supports lap timing and a countdown timer. . diff --git a/metadata/com.funambol.androidsync.txt b/metadata/com.funambol.androidsync.txt index 7a31a9e8..c66e7893 100644 --- a/metadata/com.funambol.androidsync.txt +++ b/metadata/com.funambol.androidsync.txt @@ -5,7 +5,7 @@ Web Site:http://www.funambol.com Source Code:https://android-client.forge.funambol.org/source/browse/android-client/ Issue Tracker: Summary:Funambol sync client -Description:Sync Client +Description: Funambol sync client. . Repo Type:svn diff --git a/metadata/com.jadn.cc.txt b/metadata/com.jadn.cc.txt index fad0aa7e..d78ff2b0 100644 --- a/metadata/com.jadn.cc.txt +++ b/metadata/com.jadn.cc.txt @@ -5,7 +5,8 @@ Source Code:http://github.com/bherrmann7/Car-Cast/ Issue Tracker:https://github.com/bherrmann7/Car-Cast/issues Donate:https://market.android.com/details?id=com.jadn.ccpro Summary:A podcast downloader and player. -Description:Car Cast is a simple audio podcast downloader and player. +Description: +Car Cast is a simple audio podcast downloader and player. Optimized for use in a daily commute, it features big buttons, large text, remembers last played location. 1. Subscribe to podcasts diff --git a/metadata/goo.TeaTimer.txt b/metadata/goo.TeaTimer.txt index 5f704e2e..1dd09158 100644 --- a/metadata/goo.TeaTimer.txt +++ b/metadata/goo.TeaTimer.txt @@ -4,8 +4,9 @@ Category:Office Web Site:http://solidsushi.com/lab/teatimer Source Code:http://github.com/ralphleon/TeaTimer Issue Tracker:https://github.com/ralphleon/TeaTimer/issues -Summary:A Simple Tea Timer for Android -Description:A straight-forward tea timer +Summary:Simple Tea Timer +Description: +A straight-forward tea timer . Repo Type:git diff --git a/metadata/ru.gelin.android.weather.notification.txt b/metadata/ru.gelin.android.weather.notification.txt index b7689b37..326f9c63 100644 --- a/metadata/ru.gelin.android.weather.notification.txt +++ b/metadata/ru.gelin.android.weather.notification.txt @@ -3,9 +3,10 @@ Category:Internet Web Site:https://code.google.com/p/weather-notification-android/ Source Code:https://code.google.com/p/weather-notification-android/source/browse/ Issue Tracker:https://code.google.com/p/weather-notification-android/issues/list -Summary: Displays the air temperature and other weather conditions in the Android notification bar. -Description:Simple application which displays the air temperature -and other weather conditions in the Android notification bar. +Summary:Weather info in notification bar +Description: +Simple application which displays the air temperature +and other weather conditions in the notification bar. The air temperature is always visible like a system clock. . From 9453071e882bc55ff1d58ac4cd8136ebcb3d8b5b Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Tue, 10 Jan 2012 15:24:21 +0000 Subject: [PATCH 40/75] Metadata: updated Wordpress version info --- metadata/org.wordpress.android.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/metadata/org.wordpress.android.txt b/metadata/org.wordpress.android.txt index 47471fe8..0e181087 100644 --- a/metadata/org.wordpress.android.txt +++ b/metadata/org.wordpress.android.txt @@ -21,5 +21,5 @@ Repo:http://android.svn.wordpress.org/trunk/ Build Version:1.3.9,31,202,prebuild=mkdir libs && mv *.jar libs && sed -i "s@checkStats(accounts.size());@// MY PRIVACY > YOUR STATS@" src/org/wordpress/android/wpAndroid.java,encoding=utf-8 Build Version:1.4.1,33,228,prebuild=mkdir libs && mv *.jar libs && sed -i "s@checkStats(accounts.size());@// MY PRIVACY > YOUR STATS@" src/org/wordpress/android/wpAndroid.java,encoding=utf-8 -Market Version:2.0.2 -Market Version Code:40 +Market Version:2.0.3 +Market Version Code:42 From a1a1d63519433eb036f626bbf74e090431b1169b Mon Sep 17 00:00:00 2001 From: Dominik Date: Tue, 10 Jan 2012 18:55:18 +0100 Subject: [PATCH 41/75] AdAway version 1.19 --- metadata/org.adaway.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/metadata/org.adaway.txt b/metadata/org.adaway.txt index 16037a47..bf5763e2 100644 --- a/metadata/org.adaway.txt +++ b/metadata/org.adaway.txt @@ -18,6 +18,7 @@ Requires Root:yes Build Version:1.12,13,ea5378a94ee0dc1d99d2cec95fae7e6d81afb2b9,subdir=org_adaway/,buildjni=yes Build Version:1.15,16,4128e59da2eac5c2904c7c7568d298ca51e79540,subdir=org_adaway/,buildjni=yes,patch=defprop.patch Build Version:1.18,19,0b9985398b9eef7baf6aadd0dbb12002bc199d2e,subdir=org_adaway/,buildjni=yes,patch=defprop.patch +Build Version:1.19,20,ab27f4dab5f3ea5e228cfb4a6b0e1fbf53695f22,subdir=org_adaway/,buildjni=yes -Market Version:1.18 -Market Version Code:19 +Market Version:1.19 +Market Version Code:20 From 7645cc1af6b939257a46b0a4f9a2f9179f6635d7 Mon Sep 17 00:00:00 2001 From: Dominik Date: Tue, 10 Jan 2012 18:55:18 +0100 Subject: [PATCH 42/75] AdAway version 1.19 --- metadata/org.adaway.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/metadata/org.adaway.txt b/metadata/org.adaway.txt index 16037a47..bf5763e2 100644 --- a/metadata/org.adaway.txt +++ b/metadata/org.adaway.txt @@ -18,6 +18,7 @@ Requires Root:yes Build Version:1.12,13,ea5378a94ee0dc1d99d2cec95fae7e6d81afb2b9,subdir=org_adaway/,buildjni=yes Build Version:1.15,16,4128e59da2eac5c2904c7c7568d298ca51e79540,subdir=org_adaway/,buildjni=yes,patch=defprop.patch Build Version:1.18,19,0b9985398b9eef7baf6aadd0dbb12002bc199d2e,subdir=org_adaway/,buildjni=yes,patch=defprop.patch +Build Version:1.19,20,ab27f4dab5f3ea5e228cfb4a6b0e1fbf53695f22,subdir=org_adaway/,buildjni=yes -Market Version:1.18 -Market Version Code:19 +Market Version:1.19 +Market Version Code:20 From c4614c7bf2d1f2a89c3c7cf34b167563644e0147 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Tue, 10 Jan 2012 18:07:59 +0000 Subject: [PATCH 43/75] Metadata: syntax correction --- metadata/org.adaway.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata/org.adaway.txt b/metadata/org.adaway.txt index bf5763e2..27327b56 100644 --- a/metadata/org.adaway.txt +++ b/metadata/org.adaway.txt @@ -13,7 +13,7 @@ Blocks advertisements via the /etc/hosts file. Supports automatic updates. Repo Type:git Repo:git://gitorious.org/adaway/adaway.git -Requires Root:yes +Requires Root:Yes Build Version:1.12,13,ea5378a94ee0dc1d99d2cec95fae7e6d81afb2b9,subdir=org_adaway/,buildjni=yes Build Version:1.15,16,4128e59da2eac5c2904c7c7568d298ca51e79540,subdir=org_adaway/,buildjni=yes,patch=defprop.patch From c9c824f57ddf643e399b9328b290b0b972489b56 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Tue, 10 Jan 2012 18:11:20 +0000 Subject: [PATCH 44/75] Metadata: adaway needs default properties patch --- metadata/org.adaway.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata/org.adaway.txt b/metadata/org.adaway.txt index 27327b56..67392449 100644 --- a/metadata/org.adaway.txt +++ b/metadata/org.adaway.txt @@ -18,7 +18,7 @@ Requires Root:Yes Build Version:1.12,13,ea5378a94ee0dc1d99d2cec95fae7e6d81afb2b9,subdir=org_adaway/,buildjni=yes Build Version:1.15,16,4128e59da2eac5c2904c7c7568d298ca51e79540,subdir=org_adaway/,buildjni=yes,patch=defprop.patch Build Version:1.18,19,0b9985398b9eef7baf6aadd0dbb12002bc199d2e,subdir=org_adaway/,buildjni=yes,patch=defprop.patch -Build Version:1.19,20,ab27f4dab5f3ea5e228cfb4a6b0e1fbf53695f22,subdir=org_adaway/,buildjni=yes +Build Version:1.19,20,ab27f4dab5f3ea5e228cfb4a6b0e1fbf53695f22,subdir=org_adaway/,buildjni=yes,patch=defprop.patch Market Version:1.19 Market Version Code:20 From c469f0feed29fa0237ef24247f7c7d0454d93c78 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Tue, 10 Jan 2012 18:57:07 +0000 Subject: [PATCH 45/75] Improved metadata handling Two main points: Firstly, there is no longer a random mapping between app['key'] and a corresponding field in the metadata file - the key and field are now the same. Secondly, more information (including comments) is retrieved from the metadata, to facilitate being able to re-write it which is necessary for various support utilities. --- build.py | 8 +- checkmarket2.py | 2 +- common.py | 200 +++++++++++++++++++++++++++++------------------- scanner.py | 4 +- update.py | 60 +++++++-------- 5 files changed, 157 insertions(+), 117 deletions(-) diff --git a/build.py b/build.py index fadb7a54..b69020b5 100755 --- a/build.py +++ b/build.py @@ -74,13 +74,13 @@ if not os.path.isdir(build_dir): for app in apps: - if app['disabled']: + if app['Disabled']: print "Skipping %s: disabled" % app['id'] elif not app['builds']: print "Skipping %s: no builds specified" % app['id'] - if (app['disabled'] is None and app['repo'] != '' - and app['repotype'] != '' and (options.package is None or + if (app['Disabled'] is None and app['Repo'] != '' + and app['Repo Type'] != '' and (options.package is None or options.package == app['id']) and len(app['builds']) > 0): print "Processing " + app['id'] @@ -88,7 +88,7 @@ for app in apps: build_dir = 'build/' + app['id'] # Set up vcs interface and make sure we have the latest code... - vcs = common.getvcs(app['repotype'], app['repo'], build_dir) + vcs = common.getvcs(app['Repo Type'], app['Repo'], build_dir) refreshed_source = False diff --git a/checkmarket2.py b/checkmarket2.py index 193a63fa..f1a7d805 100755 --- a/checkmarket2.py +++ b/checkmarket2.py @@ -63,7 +63,7 @@ for app in apps: print "...couldn't find version code" elif not version: print "...couldn't find version" - elif vercode == app['marketvercode'] and version == app['marketversion']: + elif vercode == app['Market Version Code'] and version == app['Market Version']: print "...up to date" else: print '...updating to version:' + version + ' vercode:' + vercode diff --git a/common.py b/common.py index d54ed432..d1bd6170 100644 --- a/common.py +++ b/common.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- # # common.py - part of the FDroid server tools -# Copyright (C) 2010-11, Ciaran Gultnieks, ciaran@ciarang.com +# Copyright (C) 2010-12, Ciaran Gultnieks, ciaran@ciarang.com # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by @@ -245,15 +245,53 @@ class vcs_bzr(vcs): raise VCSException("Bzr update failed") +# Get the type expected for a given metadata field. +def metafieldtype(name): + if name == 'Description': + return 'multiline' + if name == 'Requires Root': + return 'flag' + if name == 'Build Version': + return 'build' + if name == 'Use Built': + return 'obsolete' + return 'string' + +# Parse metadata for a single application. +# +# 'metafile' - the filename to read. The package id for the application comes +# from this filename. +# +# Returns a dictionary containing all the details of the application. There are +# two major kinds of information in the dictionary. Keys beginning with capital +# letters correspond directory to identically named keys in the metadata file. +# Keys beginning with lower case letters are generated in one way or another, +# and are not found verbatim in the metadata. +# +# Known keys not originating from the metadata are: +# +# 'id' - the application's package ID +# 'builds' - a list of dictionaries containing build information +# for each defined build +# 'comments' - a list of comments from the metadata file. Each is +# a tuple of the form (field, comment) where field is +# the name of the field it preceded in the metadata +# file +# 'name' - the application's name, as displayed. This will +# always be None on return from this parser. The name +# is discovered from built APK files. +# def parse_metadata(metafile, **kw): - def parse_buildline(value): + def parse_buildline(lines): + value = "".join(lines) parts = [p.replace("\\,", ",") for p in re.split(r"(? 0: + raise MetaDataException("Unexpected text on same line as " + field + " in " + metafile.name) + elif fieldtype == 'string': + thisinfo[field] = value + elif fieldtype == 'flag': + if value == 'Yes': + thisinfo[field] = True + elif value == 'No': + thisinfo[field] = False + else: + raise MetaDataException("Expected Yes or No for " + field + " in " + metafile.name) + elif fieldtype == 'build': if value.endswith("\\"): mode = 2 - buildline = [value[:-1]] + buildlines = [value[:-1]] else: - thisinfo['builds'].append(parse_buildline(value)) - elif field == "Requires Root": - if value == "Yes": - thisinfo['requiresroot'] = True + thisinfo['builds'].append(parse_buildline([value])) + elif fieldtype == 'obsolete': + pass # Just throw it away! else: - raise MetaDataException("Unrecognised field " + field + " in " + metafile.name) - elif mode == 1: # multi-line description + raise MetaDataException("Unrecognised field type for " + field + " in " + metafile.name) + elif mode == 1: # Multiline field if line == '.': mode = 0 else: if len(line) == 0: - thisinfo['description'] += '\n\n' + thisinfo[field] += '\n\n' else: - if (not thisinfo['description'].endswith('\n') and - len(thisinfo['description']) > 0): - thisinfo['description'] += ' ' - thisinfo['description'] += line - elif mode == 2: # line continuation + if (not thisinfo[field].endswith('\n') and + len(thisinfo[field]) > 0): + thisinfo[field] += ' ' + thisinfo[field] += line + elif mode == 2: # Line continuation mode in Build Version if line.endswith("\\"): - buildline.append(line[:-1]) + buildlines.append(line[:-1]) else: - buildline.append(line) + buildlines.append(line) thisinfo['builds'].append( - parse_buildline("".join(buildline))) + parse_buildline(buildlines)) mode = 0 + if mode == 1: - raise MetaDataException("Description not terminated in " + metafile.name) - if len(thisinfo['description']) == 0: - thisinfo['description'] = 'No description available' + raise MetaDataException(field + " not terminated in " + metafile.name) + elif mode == 2: + raise MetaDataException("Unterminated continuation in " + metafile.name) + + if len(thisinfo['Description']) == 0: + thisinfo['Description'] = 'No description available' + + # Ensure all AntiFeatures are recognised... + if thisinfo['AntiFeatures']: + parts = thisinfo['AntiFeatures'].split(",") + for part in parts: + if (part != "Ads" and + part != "Tracking" and + part != "NonFreeNet" and + part != "NonFreeDep" and + part != "NonFreeAdd"): + raise MetaDataException("Unrecognised antifeature '" + part + "' in " \ + + metafile.name) + return thisinfo + def read_metadata(verbose=False): apps = [] for metafile in sorted(glob.glob(os.path.join('metadata', '*.txt'))): diff --git a/scanner.py b/scanner.py index 3291a2dc..f4d63e35 100755 --- a/scanner.py +++ b/scanner.py @@ -55,7 +55,7 @@ for app in apps: skip = False if options.package and app['id'] != options.package: skip = True - elif app['disabled']: + elif app['Disabled']: print "Skipping %s: disabled" % app['id'] skip = True elif not app['builds']: @@ -71,7 +71,7 @@ for app in apps: build_dir = 'build/' + app['id'] # Set up vcs interface and make sure we have the latest code... - vcs = common.getvcs(app['repotype'], app['repo'], build_dir) + vcs = common.getvcs(app['Repo Type'], app['Repo'], build_dir) refreshed_source = False diff --git a/update.py b/update.py index a943bb7e..b9740992 100755 --- a/update.py +++ b/update.py @@ -2,7 +2,7 @@ # -*- coding: utf-8 -*- # # update.py - part of the FDroid server tools -# Copyright (C) 2010-11, Ciaran Gultnieks, ciaran@ciarang.com +# Copyright (C) 2010-12, Ciaran Gultnieks, ciaran@ciarang.com # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by @@ -196,7 +196,7 @@ for app in apps: if app['name'] is None: app['name'] = app['id'] app['icon'] = '' - if app['disabled'] is None: + if app['Disabled'] is None: print "WARNING: Application " + app['id'] + " has no packages" else: if app['name'] is None: @@ -283,14 +283,14 @@ apps_nopkg = 0 for app in apps: - if app['disabled'] is None: + if app['Disabled'] is None: # Get a list of the apks for this app... gotmarketver = False apklist = [] for apk in apks: if apk['id'] == app['id']: - if str(apk['versioncode']) == app['marketvercode']: + if str(apk['versioncode']) == app['Market Version Code']: gotmarketver = True apklist.append(apk) @@ -304,22 +304,22 @@ for app in apps: addElement('id', app['id'], doc, apel) addElement('name', app['name'], doc, apel) - addElement('summary', app['summary'], doc, apel) + addElement('summary', app['Summary'], doc, apel) addElement('icon', app['icon'], doc, apel) - addElement('description', app['description'], doc, apel) - addElement('license', app['license'], doc, apel) - if 'category' in app: - addElement('category', app['category'], doc, apel) - addElement('web', app['web'], doc, apel) - addElement('source', app['source'], doc, apel) - addElement('tracker', app['tracker'], doc, apel) - if app['donate'] != None: - addElement('donate', app['donate'], doc, apel) - addElement('marketversion', app['marketversion'], doc, apel) - addElement('marketvercode', app['marketvercode'], doc, apel) - if not (app['antifeatures'] is None): - addElement('antifeatures', app['antifeatures'], doc, apel) - if app['requiresroot']: + addElement('description', app['Description'], doc, apel) + addElement('license', app['License'], doc, apel) + if 'Category' in app: + addElement('category', app['Category'], doc, apel) + addElement('web', app['Web Site'], doc, apel) + addElement('source', app['Source Code'], doc, apel) + addElement('tracker', app['Issue Tracker'], doc, apel) + if app['Donate'] != None: + addElement('donate', app['Donate'], doc, apel) + addElement('marketversion', app['Market Version'], doc, apel) + addElement('marketvercode', app['Market Version Code'], doc, apel) + if not (app['AntiFeatures'] is None): + addElement('antifeatures', app['AntiFeatures'], doc, apel) + if app['Requires Root']: addElement('requirements', 'root', doc, apel) # Sort the apk list into version order, just so the web site @@ -370,38 +370,38 @@ for app in apps: if options.buildreport: if len(app['builds']) == 0: print ("WARNING: No builds defined for " + app['id'] + - " Source: " + app['source']) + " Source: " + app['Source Code']) warnings += 1 else: - if app['marketvercode'] != '0': + if app['Market Version Code'] != '0': gotbuild = False for build in app['builds']: - if build['vercode'] == app['marketvercode']: + if build['vercode'] == app['Market Version Code']: gotbuild = True if not gotbuild: print ("WARNING: No build data for market version of " - + app['id'] + " (" + app['marketversion'] - + ") " + app['source']) + + app['id'] + " (" + app['Market Version'] + + ") " + app['Source Code']) warnings += 1 # If we don't have the market version, check if there is a build # with a commit ID starting with '!' - this means we can't build it # for some reason, and don't want hassling about it... - if not gotmarketver and app['marketvercode'] != '0': + if not gotmarketver and app['Market Version Code'] != '0': for build in app['builds']: - if build['vercode'] == app['marketvercode']: + if build['vercode'] == app['Market Version Code']: gotmarketver = True # Output a message of harassment if we don't have the market version: - if not gotmarketver and app['marketvercode'] != '0': - addr = app['source'] - print "WARNING: Don't have market version (" + app['marketversion'] + ") of " + app['name'] + if not gotmarketver and app['Market Version Code'] != '0': + addr = app['Source Code'] + print "WARNING: Don't have market version (" + app['Market Version'] + ") of " + app['name'] print " (" + app['id'] + ") " + addr warnings += 1 if options.verbose: # A bit of extra debug info, basically for diagnosing # app developer mistakes: - print " Market vercode:" + app['marketvercode'] + print " Market vercode:" + app['Market Version Code'] print " Got:" for apk in apks: if apk['id'] == app['id']: From ecd3bae855762204d6897e8ed9f6baafe6a2948c Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Tue, 10 Jan 2012 23:24:28 +0000 Subject: [PATCH 46/75] Metadata is now re-writable --- common.py | 120 +++++++++++++++++++++++++++++++++++++++++-------- rewritemeta.py | 48 ++++++++++++++++++++ update.py | 17 +++---- 3 files changed, 158 insertions(+), 27 deletions(-) create mode 100755 rewritemeta.py diff --git a/common.py b/common.py index d1bd6170..cac6a345 100644 --- a/common.py +++ b/common.py @@ -277,10 +277,11 @@ def metafieldtype(name): # 'comments' - a list of comments from the metadata file. Each is # a tuple of the form (field, comment) where field is # the name of the field it preceded in the metadata -# file -# 'name' - the application's name, as displayed. This will -# always be None on return from this parser. The name -# is discovered from built APK files. +# file. Where field is None, the comment goes at the +# end of the file. Alternatively, 'build:version' is +# for a comment before a particular build version. +# 'descriptionlines' - original lines of description as formatted in the +# metadata file. # def parse_metadata(metafile, **kw): @@ -300,6 +301,11 @@ def parse_metadata(metafile, **kw): thisbuild[pk] = pv return thisbuild + def add_comments(key): + for comment in curcomments: + thisinfo['comments'].append((key, comment)) + del curcomments[:] + if not isinstance(metafile, file): metafile = open(metafile, "r") thisinfo = {} @@ -308,7 +314,9 @@ def parse_metadata(metafile, **kw): print "Reading metadata for " + thisinfo['id'] # Defaults for fields that come from metadata... - thisinfo['Description'] = '' + thisinfo['Name'] = None + thisinfo['Category'] = 'None' + thisinfo['Description'] = [] thisinfo['Summary'] = '' thisinfo['License'] = 'Unknown' thisinfo['Web Site'] = '' @@ -325,7 +333,6 @@ def parse_metadata(metafile, **kw): # General defaults... thisinfo['builds'] = [] - thisinfo['name'] = None thisinfo['comments'] = [] mode = 0 @@ -334,23 +341,25 @@ def parse_metadata(metafile, **kw): for line in metafile: line = line.rstrip('\r\n') - if line.startswith("#"): - curcomments.append(line) - elif mode == 0: + if mode == 0: if len(line) == 0: continue + if line.startswith("#"): + curcomments.append(line) + continue index = line.find(':') if index == -1: raise MetaDataException("Invalid metadata in " + metafile.name + " at: " + line) field = line[:index] value = line[index+1:] - for comment in curcomments: - thisinfo['comments'].append((field,comment)) fieldtype = metafieldtype(field) + if fieldtype != 'build': + add_comments(field) if fieldtype == 'multiline': mode = 1 + thisinfo[field] = [] if len(value) > 0: raise MetaDataException("Unexpected text on same line as " + field + " in " + metafile.name) elif fieldtype == 'string': @@ -368,6 +377,7 @@ def parse_metadata(metafile, **kw): buildlines = [value[:-1]] else: thisinfo['builds'].append(parse_buildline([value])) + add_comments('build:' + thisinfo['builds'][-1]['version']) elif fieldtype == 'obsolete': pass # Just throw it away! else: @@ -376,13 +386,7 @@ def parse_metadata(metafile, **kw): if line == '.': mode = 0 else: - if len(line) == 0: - thisinfo[field] += '\n\n' - else: - if (not thisinfo[field].endswith('\n') and - len(thisinfo[field]) > 0): - thisinfo[field] += ' ' - thisinfo[field] += line + thisinfo[field].append(line) elif mode == 2: # Line continuation mode in Build Version if line.endswith("\\"): buildlines.append(line[:-1]) @@ -390,15 +394,18 @@ def parse_metadata(metafile, **kw): buildlines.append(line) thisinfo['builds'].append( parse_buildline(buildlines)) + add_comments('build:' + thisinfo['builds'][-1]['version']) mode = 0 + add_comments(None) + # Mode at end of file should always be 0... if mode == 1: raise MetaDataException(field + " not terminated in " + metafile.name) elif mode == 2: raise MetaDataException("Unterminated continuation in " + metafile.name) if len(thisinfo['Description']) == 0: - thisinfo['Description'] = 'No description available' + thisinfo['Description'].append('No description available') # Ensure all AntiFeatures are recognised... if thisinfo['AntiFeatures']: @@ -414,7 +421,67 @@ def parse_metadata(metafile, **kw): return thisinfo +# Write a metadata file. +# +# 'dest' - The path to the output file +# 'app' - The app data +def write_metadata(dest, app): + def writecomments(key): + for pf, comment in app['comments']: + if pf == key: + mf.write(comment + '\n') + + def writefield(field, value=None): + writecomments(field) + if value is None: + value = app[field] + mf.write(field + ':' + value + '\n') + + mf = open(dest, 'w') + if app['Disabled']: + writefield('Disabled') + if app['AntiFeatures']: + writefield('AntiFeatures') + writefield('Category') + writefield('License') + writefield('Web Site') + writefield('Source Code') + writefield('Issue Tracker') + if app['Donate']: + writefield('Donate') + mf.write('\n') + if app['Name']: + writefield('Name') + writefield('Summary') + writefield('Description', '') + for line in app['Description']: + mf.write(line + '\n') + mf.write('.\n') + mf.write('\n') + if app['Requires Root']: + writefield('Requires Root', 'Yes') + mf.write('\n') + if len(app['Repo Type']) > 0: + writefield('Repo Type') + writefield('Repo') + mf.write('\n') + for build in app['builds']: + writecomments('build:' + build['version']) + mf.write('Build Version:') + mf.write('\\\n'.join(build['origlines']) + '\n') + if len(app['builds']) > 0: + mf.write('\n') + if len(app['Market Version']) > 0: + writefield('Market Version') + writefield('Market Version Code') + mf.write('\n') + writecomments(None) + mf.close() + + +# Read all metadata. Returns a list of 'app' objects (which are dictionaries as +# returned by the parse_metadata function. def read_metadata(verbose=False): apps = [] for metafile in sorted(glob.glob(os.path.join('metadata', '*.txt'))): @@ -423,6 +490,21 @@ def read_metadata(verbose=False): apps.append(parse_metadata(metafile, verbose=verbose)) return apps + +# Parse multiple lines of description as written in a metadata file, returning +# a single string. +def parse_description(lines): + text = '' + for line in lines: + if len(line) == 0: + text += '\n\n' + else: + if not text.endswith('\n') and len(text) > 0: + text += ' ' + text += line + return '' + + class BuildException(Exception): def __init__(self, value, stdout = None, stderr = None): self.value = value diff --git a/rewritemeta.py b/rewritemeta.py new file mode 100755 index 00000000..e3535da2 --- /dev/null +++ b/rewritemeta.py @@ -0,0 +1,48 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# +# rewritemeta.py - part of the FDroid server tools +# Copyright (C) 2010-12, Ciaran Gultnieks, ciaran@ciarang.com +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +import sys +import os +import shutil +import re +import urllib +import time +from optparse import OptionParser +import HTMLParser +import common + +#Read configuration... +execfile('config.py') + + +# Parse command line... +parser = OptionParser() +parser.add_option("-v", "--verbose", action="store_true", default=False, + help="Spew out even more information than normal") +(options, args) = parser.parse_args() + +# Get all apps... +apps = common.read_metadata(options.verbose) + +for app in apps: + print "Writing " + app['id'] + common.write_metadata(os.path.join('metadata', app['id']) + '.txt', app) + +print "Finished." + diff --git a/update.py b/update.py index b9740992..738eb528 100755 --- a/update.py +++ b/update.py @@ -193,14 +193,14 @@ for app in apps: bestapk = apk if bestver == 0: - if app['name'] is None: - app['name'] = app['id'] + if app['Name'] is None: + app['Name'] = app['id'] app['icon'] = '' if app['Disabled'] is None: print "WARNING: Application " + app['id'] + " has no packages" else: - if app['name'] is None: - app['name'] = bestapk['name'] + if app['Name'] is None: + app['Name'] = bestapk['name'] app['icon'] = bestapk['icon'] # Generate warnings for apk's with no metadata (or create skeleton @@ -229,7 +229,7 @@ for apk in apks: print " " + apk['name'] + " - " + apk['version'] #Sort the app list by name, then the web site doesn't have to by default: -apps = sorted(apps, key=lambda app: app['name'].upper()) +apps = sorted(apps, key=lambda app: app['Name'].upper()) # Create the index doc = Document() @@ -303,10 +303,11 @@ for app in apps: root.appendChild(apel) addElement('id', app['id'], doc, apel) - addElement('name', app['name'], doc, apel) + addElement('name', app['Name'], doc, apel) addElement('summary', app['Summary'], doc, apel) addElement('icon', app['icon'], doc, apel) - addElement('description', app['Description'], doc, apel) + addElement('description', + common.parse_description(app['Description']), doc, apel) addElement('license', app['License'], doc, apel) if 'Category' in app: addElement('category', app['Category'], doc, apel) @@ -395,7 +396,7 @@ for app in apps: # Output a message of harassment if we don't have the market version: if not gotmarketver and app['Market Version Code'] != '0': addr = app['Source Code'] - print "WARNING: Don't have market version (" + app['Market Version'] + ") of " + app['name'] + print "WARNING: Don't have market version (" + app['Market Version'] + ") of " + app['Name'] print " (" + app['id'] + ") " + addr warnings += 1 if options.verbose: From 160fe22eddf9f98d8353625917808b2fd4d86f84 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Tue, 10 Jan 2012 23:25:28 +0000 Subject: [PATCH 47/75] Metadata: all rewritten - should be the same except formatting --- metadata/An.stop.txt | 5 +++-- metadata/android.androidVNC.txt | 6 ++++-- metadata/as.adamsmith.iteration.txt | 5 ++++- metadata/at.aichbauer.ical.txt | 5 +++-- metadata/at.tomtasche.reader.txt | 5 ++++- metadata/caldwell.ben.trolly.txt | 6 ++++-- metadata/cm.aptoide.pt.txt | 8 +++++--- metadata/cmupdaterapp.ui.txt | 6 ++++-- metadata/com.FireFart.Permissions.txt | 8 ++++++-- metadata/com.agiro.scanner.android.txt | 7 +++++-- metadata/com.alfray.mandelbrot2.txt | 5 ++++- metadata/com.alfray.timeriffic.txt | 7 +++---- metadata/com.andrewshu.android.reddit.txt | 4 ++-- metadata/com.android.inputmethod.norwegian.txt | 8 ++++++-- metadata/com.android.keepass.txt | 4 ++-- metadata/com.angrydoughnuts.android.alarmclock.txt | 5 +++-- metadata/com.appengine.paranoid_android.lost.txt | 3 ++- metadata/com.beem.project.beem.txt | 5 +++-- metadata/com.boardgamegeek.txt | 5 +++-- metadata/com.bottleworks.dailymoney.txt | 7 +++---- metadata/com.bwx.bequick.txt | 7 +++++-- metadata/com.bwx.qs.battery.txt | 6 ++++-- metadata/com.chessclock.android.txt | 3 ++- metadata/com.commonsware.android.arXiv.txt | 5 +++-- metadata/com.csipsimple.txt | 5 +++-- metadata/com.danga.squeezer.txt | 6 ++++-- metadata/com.determinato.feeddroid.txt | 6 +++--- metadata/com.dozingcatsoftware.bouncy.txt | 8 +++++--- metadata/com.drodin.tuxrider.txt | 7 ++++--- metadata/com.droidwave.offlinecalendar.txt | 6 ++++-- metadata/com.eddyspace.networkmonitor.txt | 5 +++-- metadata/com.eleybourn.bookcatalogue.txt | 6 +++--- metadata/com.evancharlton.mileage.txt | 7 ++++--- metadata/com.example.android.maxpapers.txt | 6 ++++-- metadata/com.example.weightchart.txt | 9 +++++---- metadata/com.fsck.k9.txt | 5 +++-- metadata/com.funambol.androidsync.txt | 8 ++++---- metadata/com.ghostsq.commander.txt | 7 ++++--- metadata/com.gluegadget.hndroid.txt | 10 +++++++++- metadata/com.google.android.diskusage.txt | 6 ++++-- metadata/com.google.android.maps.mytracks.txt | 9 ++++----- metadata/com.google.code.appsorganizer.txt | 4 +++- metadata/com.google.zxing.client.android.txt | 4 +++- metadata/com.googlecode.androidcells.txt | 7 +++---- metadata/com.googlecode.chartdroid.txt | 8 ++++++-- metadata/com.googlecode.droidwall.txt | 5 ++--- metadata/com.googlecode.talkmyphone.txt | 5 ++++- metadata/com.gpl.rpg.AndorsTrail.txt | 6 ++++-- metadata/com.ichi2.anki.txt | 1 + metadata/com.integralblue.callerid.txt | 5 ++--- metadata/com.jadn.cc.txt | 3 ++- metadata/com.kirit.android.mintercept.txt | 5 ++++- metadata/com.kmagic.solitaire.txt | 4 +++- metadata/com.lecz.android.tiltmazes.txt | 5 ++++- metadata/com.liato.bankdroid.txt | 8 ++------ metadata/com.madgag.agit.txt | 6 +++--- metadata/com.martynhaigh.violin.txt | 5 ++++- metadata/com.matburt.mobileorg.txt | 7 ++++--- metadata/com.mobilepearls.sokoban.txt | 7 +++++-- metadata/com.morphoss.acal.txt | 5 +++-- metadata/com.mp3tunes.android.player.txt | 8 ++++---- metadata/com.namelessdev.mpdroid.txt | 8 ++++---- metadata/com.nephoapp.anarxiv.txt | 5 ++++- metadata/com.nexes.manager.txt | 5 +++-- metadata/com.proch.practicehub.txt | 5 +++-- metadata/com.replica.replicaisland.txt | 5 +++-- metadata/com.ringdroid.txt | 5 +++-- metadata/com.roozen.SoundManager.txt | 5 +++-- metadata/com.ryanm.minedroid.txt | 6 ++---- metadata/com.serone.desktoplabel.txt | 5 ++++- metadata/com.smorgasbork.hotdeath.txt | 5 +++-- metadata/com.teleca.jamendo.txt | 5 +++-- metadata/com.textuality.lifesaver2.txt | 5 ++++- metadata/com.tj.qotd.txt | 5 ++++- metadata/com.totsp.bookworm.txt | 5 +++-- metadata/com.totsp.crossword.shortyz.txt | 4 ++-- metadata/com.unitedcoders.android.gpodroid.txt | 3 ++- metadata/com.voidcode.diasporawebclient.txt | 5 ++--- metadata/com.volosyukivan.txt | 3 ++- metadata/com.wanghaus.remembeer.txt | 8 ++++---- metadata/com.webworxshop.swallowcatcher.txt | 5 ++--- metadata/com.zegoggles.gist.txt | 6 ++++-- metadata/com.zegoggles.smssync.txt | 5 +++-- metadata/cz.romario.opensudoku.txt | 6 ++++-- metadata/de.blau.android.Application.txt | 6 ++---- metadata/de.joergjahnke.c64.android.txt | 7 +++++-- metadata/de.shandschuh.slightbackup.txt | 6 ++++-- metadata/de.shandschuh.sparserss.txt | 8 ++++---- metadata/de.ub0r.android.adBlock.txt | 5 +++-- metadata/de.ub0r.android.callmeter.txt | 7 ++++--- metadata/dk.andsen.asqlitemanager.txt | 6 +++--- metadata/edu.nyu.cs.omnidroid.app.txt | 5 +++-- metadata/edu.rit.poe.atomix.txt | 7 +++++-- metadata/es.prodevelop.gvsig.mini.txt | 5 ++++- metadata/fm.libre.droid.txt | 9 +++++---- metadata/fr.seeks.txt | 5 +++-- metadata/goo.TeaTimer.txt | 5 +++-- metadata/info.guardianproject.browser.txt | 6 +++--- metadata/info.guardianproject.cacert.txt | 5 +++-- metadata/info.guardianproject.otr.app.im.txt | 8 +++++--- metadata/info.lamatricexiste.network.txt | 6 +++--- metadata/info.staticfree.android.units.txt | 8 +++++--- metadata/me.guillaumin.android.osmtracker.txt | 6 +++--- metadata/mixedbit.speechtrainer.txt | 5 +++-- metadata/name.bagi.levente.pedometer.txt | 6 ++++-- metadata/net.avs234.txt | 5 ++++- metadata/net.bytten.xkcdviewer.txt | 6 ++++-- metadata/net.cactii.mathdoku.txt | 5 +++-- metadata/net.dahanne.android.regalandroid.txt | 5 ++++- metadata/net.fercanet.LNM.txt | 7 ++++--- metadata/net.gaast.giggity.txt | 8 +++++--- metadata/net.gorry.aicia.txt | 6 +++++- metadata/net.jaqpot.netcounter.txt | 5 ++++- metadata/net.mafro.android.wakeonlan.txt | 5 +++-- metadata/net.osmand.plus.txt | 5 +++-- metadata/net.osmand.txt | 6 +++--- metadata/net.pierrox.mcompass.txt | 5 ++++- metadata/net.rocrail.androc.txt | 6 ++++-- metadata/net.sf.andbatdog.batterydog.txt | 8 +++++--- metadata/net.sourceforge.servestream.txt | 7 +++---- metadata/net.status.client.mobile.txt | 5 ++++- metadata/net.sylvek.sharemyposition.txt | 5 +++-- metadata/net.tapi.handynotes.txt | 6 +++--- metadata/net.tedstein.AndroSS.txt | 7 ++++--- metadata/net.tevp.postcode.txt | 5 ++++- metadata/nl.sogeti.android.gpstracker.txt | 5 ++++- metadata/nu.firetech.android.pactrack.txt | 8 ++++++-- metadata/org.abrantix.rockon.rockonnggl.txt | 5 ++--- metadata/org.adaway.txt | 9 +++++---- metadata/org.adw.launcher.txt | 6 +++--- metadata/org.andnav.osm.txt | 5 ++++- metadata/org.androidsoft.games.memory.kids.txt | 6 +++--- metadata/org.connectbot.txt | 9 +++++---- metadata/org.coolreader.txt | 5 ++++- metadata/org.crocodile.sbautologin.txt | 7 +++---- metadata/org.curiouscreature.android.shelves.txt | 8 ++++++-- metadata/org.damazio.notifier.txt | 6 ++++-- metadata/org.droidseries.txt | 3 ++- metadata/org.eehouse.android.xw4.txt | 6 ++++-- metadata/org.example.pushupbuddy.txt | 7 +++++-- metadata/org.fdroid.fdroid.txt | 7 +++---- metadata/org.fdroid.taskstrid.txt | 5 ++++- metadata/org.fosdem.txt | 6 ++++-- metadata/org.geometerplus.zlibrary.ui.android.txt | 6 ++---- metadata/org.helllabs.android.xmp.txt | 7 +++++-- metadata/org.hermit.audalyzer.txt | 4 ++-- metadata/org.hermit.dazzle.txt | 4 ++-- metadata/org.hermit.netscramble.txt | 5 ++++- metadata/org.hermit.tricorder.txt | 5 ++++- metadata/org.jessies.mathdroid.txt | 6 +++--- metadata/org.jfedor.frozenbubble.txt | 9 +++++---- metadata/org.johanhil.flygtider.txt | 6 ++++-- metadata/org.jtb.alogcat.txt | 4 ++-- metadata/org.jtb.droidlife.txt | 4 +++- metadata/org.jtb.httpmon.txt | 5 ++++- metadata/org.kost.externalip.txt | 4 +++- metadata/org.kreed.vanilla.txt | 8 ++++++-- metadata/org.linphone.txt | 6 +++++- metadata/org.mailboxer.saymyname.txt | 5 ++++- metadata/org.marcus905.wifi.ace.txt | 8 ++++++-- metadata/org.mixare.txt | 5 +++-- metadata/org.moparisthebest.appbak.txt | 5 ++++- metadata/org.mozilla.firefox.txt | 3 ++- metadata/org.mult.daap.txt | 6 ++++-- metadata/org.mustard.android.txt | 4 +++- metadata/org.mythdroid.txt | 5 ++--- metadata/org.navitproject.navit.txt | 5 ++++- metadata/org.openintents.notepad.txt | 5 ++++- metadata/org.opensatnav.txt | 4 +++- metadata/org.paulmach.textedit.txt | 6 ++++-- metadata/org.piwik.mobile.txt | 5 ++++- metadata/org.pocketworkstation.pckeyboard.txt | 9 ++++----- metadata/org.scoutant.blokish.txt | 5 +++-- metadata/org.sipdroid.sipua.txt | 5 ++++- metadata/org.sixgun.ponyexpress.txt | 6 ++++-- metadata/org.sparkleshare.android.txt | 4 +++- metadata/org.swiftp.txt | 10 +++++----- metadata/org.thialfihar.android.apg.txt | 5 ++++- metadata/org.thoughtcrime.securesms.txt | 4 ++-- metadata/org.tomdroid.txt | 7 +++++-- metadata/org.torproject.android.txt | 5 ++++- metadata/org.transdroid.txt | 5 ++++- metadata/org.ttrssreader.txt | 12 ++++-------- metadata/org.vudroid.txt | 6 ++++-- metadata/org.wahtod.wififixer.txt | 6 ++++-- metadata/org.wordpress.android.txt | 5 +++-- metadata/org.xbmc.android.remote.txt | 5 +++-- metadata/org.yaaic.txt | 6 ++---- metadata/org.yaxim.androidclient.txt | 6 ++++-- metadata/org.zirco.txt | 6 +++--- metadata/pl.magot.vetch.ancal.txt | 6 ++++-- metadata/remuco.client.android.txt | 3 ++- metadata/ru.gelin.android.weather.notification.txt | 4 +++- metadata/ru.orangesoftware.financisto.txt | 4 ++-- metadata/se.johanhil.clipboard.txt | 9 ++++++--- metadata/se.johanhil.duckduckgo.txt | 7 ++++--- metadata/se.peterbjorkman.android.trafikinfo.txt | 8 ++++++-- metadata/seanfoy.wherering.txt | 5 ++++- metadata/template | 3 ++- metadata/tkj.android.homecontrol.mythmote.txt | 8 +++++--- metadata/to.networld.android.divedroid.txt | 9 +++------ metadata/to.networld.android.foafviewer.txt | 8 ++++---- metadata/tuioDroid.impl.txt | 5 +++-- metadata/urbanstew.RehearsalAssistant.txt | 6 ++++-- metadata/vu.de.urpool.quickdroid.txt | 5 +++-- 205 files changed, 743 insertions(+), 452 deletions(-) diff --git a/metadata/An.stop.txt b/metadata/An.stop.txt index 5d17306f..43d7a191 100644 --- a/metadata/An.stop.txt +++ b/metadata/An.stop.txt @@ -1,9 +1,9 @@ -Use Built:Yes -License:GPLv2 Category:Office +License:GPLv2 Web Site:http://code.google.com/p/anstop/ Source Code:http://code.google.com/p/anstop/source/checkout Issue Tracker:http://code.google.com/p/anstop/issues/list + Summary:A simple stopwatch Description: A simple stopwatch, that also supports lap timing and a countdown @@ -14,3 +14,4 @@ Repo Type:git-svn Repo:http://anstop.googlecode.com/svn/trunk Build Version:1.4,9,34 + diff --git a/metadata/android.androidVNC.txt b/metadata/android.androidVNC.txt index bf843730..31b00ab0 100644 --- a/metadata/android.androidVNC.txt +++ b/metadata/android.androidVNC.txt @@ -1,13 +1,14 @@ -Use Built:Yes -License:GPLv2+ Category:System +License:GPLv2+ Web Site:http://code.google.com/p/android-vnc-viewer/ Source Code:http://code.google.com/p/android-vnc-viewer/source/checkout Issue Tracker:http://code.google.com/p/android-vnc-viewer/issues/list + Summary:VNC viewer Description: A VNC ('remote desktop') client. . + Repo Type:git-svn Repo:http://android-vnc-viewer.googlecode.com/svn/branches/antlersoft @@ -15,3 +16,4 @@ Build Version:0.5.0,13,197,subdir=androidVNC Market Version:0.5.0 Market Version Code:13 + diff --git a/metadata/as.adamsmith.iteration.txt b/metadata/as.adamsmith.iteration.txt index fce6085e..cc327de8 100644 --- a/metadata/as.adamsmith.iteration.txt +++ b/metadata/as.adamsmith.iteration.txt @@ -1,12 +1,15 @@ Disabled:See license -License:Unknown Category:Games +License:Unknown Web Site:http://github.com/rndmcnlly/iteration Source Code:http://github.com/rndmcnlly/iteration Issue Tracker: + Summary:Generative art Description: Generative art (pretty pictures of mathematical origin). . + Market Version:3.15 Market Version Code:25 + diff --git a/metadata/at.aichbauer.ical.txt b/metadata/at.aichbauer.ical.txt index cd8ad5d9..00d1102f 100644 --- a/metadata/at.aichbauer.ical.txt +++ b/metadata/at.aichbauer.ical.txt @@ -1,9 +1,9 @@ -Use Built:Yes -License:GPLv3 Category:Office +License:GPLv3 Web Site:https://code.google.com/p/ical-import-export/ Source Code:https://code.google.com/p/ical-import-export/source/checkout Issue Tracker:https://code.google.com/p/ical-import-export/issues/list + Summary:iCal (.ics) file importer Description: Allows you to import iCalendar files to your calendar without using Google @@ -17,3 +17,4 @@ Build Version:1.5,51,!11 but needs AndroidTools compiling too,subdir=iCalImportE Market Version:1.5 Market Version Code:51 + diff --git a/metadata/at.tomtasche.reader.txt b/metadata/at.tomtasche.reader.txt index 2c79edb6..681f9d7e 100644 --- a/metadata/at.tomtasche.reader.txt +++ b/metadata/at.tomtasche.reader.txt @@ -1,15 +1,18 @@ Disabled:Sends device info and other data to a web server without permission -Use Built:Yes +Category:None License:GPLv3+ Web Site:http://tomtasche.at/p/OpenOffice%20Document%20Reader Source Code:https://github.com/TomTasche/OpenOffice-Document-Reader Issue Tracker:https://github.com/TomTasche/OpenOffice-Document-Reader/issues + Summary:Open Office document reader. Description: Open Office document reader. . + Repo Type:git Repo:https://github.com/TomTasche/OpenOffice-Document-Reader.git + Build Version:1.1.9,11,243eba4f441b3601de96 Build Version:1.2,12,d174bed05a6026ddb5db Build Version:1.2.3,15,8fe022fd67e5bb62c6d8 diff --git a/metadata/caldwell.ben.trolly.txt b/metadata/caldwell.ben.trolly.txt index 82295c35..cbc34799 100644 --- a/metadata/caldwell.ben.trolly.txt +++ b/metadata/caldwell.ben.trolly.txt @@ -1,20 +1,22 @@ -License:GPLv3 Category:Office +License:GPLv3 Web Site:http://sites.google.com/site/caldwellcode/ Source Code:http://code.google.com/p/trolly/source/checkout Issue Tracker:http://code.google.com/p/trolly/issues/list + Summary:Shopping list application Description: Trolly is a shopping list application with the aim of being a very simple app with no annoying or complicated features. It exposes intent filters to allow other apps to automatically add items to the shopping list. . + Repo Type:svn Repo:http://trolly.googlecode.com/svn/trunk # It needs a file from OpenIntents, so let's get it from Subversion... Build Version:1.4,6,40,target=android-4,prebuild=mkdir -p src/org/openintents/intents && svn cat -r 3070 http://openintents.googlecode.com/svn/trunk/shoppinglist/ShoppingList/src/org/openintents/intents/ShoppingListIntents.java >src/org/openintents/intents/ShoppingListIntents.java -Use Built:Yes Market Version:1.4 Market Version Code:6 + diff --git a/metadata/cm.aptoide.pt.txt b/metadata/cm.aptoide.pt.txt index d8e7e1e9..c9dfc9b2 100644 --- a/metadata/cm.aptoide.pt.txt +++ b/metadata/cm.aptoide.pt.txt @@ -1,18 +1,20 @@ Disabled:Source incomplete +Category:None License:GPLv2+ Web Site:http://www.aptoide.com/ Source Code:http://aptoide.org/trac Issue Tracker:http://aptoide.org/trac + Summary:A package installer. Description: Aptoide is a simple repository and package installer. F-Droid was originally based on Aptoide! . -Market Version:2.0.1 -Market Version Code:145 Repo Type:svn Repo:http://aptoide.org/repo -#Build Version:2.0,126,45,subdir=aptoide-client/v2.0 +Market Version:2.0.1 +Market Version Code:145 +#Build Version:2.0,126,45,subdir=aptoide-client/v2.0 diff --git a/metadata/cmupdaterapp.ui.txt b/metadata/cmupdaterapp.ui.txt index f3a87409..50563d3f 100644 --- a/metadata/cmupdaterapp.ui.txt +++ b/metadata/cmupdaterapp.ui.txt @@ -1,9 +1,9 @@ -Use Built:Yes -License:GPLv2 Category:System +License:GPLv2 Web Site:http://code.google.com/p/cyanogen-updater/ Source Code:http://code.google.com/p/cyanogen-updater/source/checkout Issue Tracker:http://code.google.com/p/cyanogen-updater/issues/list + Summary:Updater for CyanogenMod Description: An over-the-air updater for the CyanogenMod series of custom ROMs. Root @@ -14,7 +14,9 @@ Requires Root:Yes Repo Type:svn Repo:http://cyanogen-updater.googlecode.com/svn/trunk/ + Build Version:5.0.1,501,626 Market Version:5.0.1 Market Version Code:501 + diff --git a/metadata/com.FireFart.Permissions.txt b/metadata/com.FireFart.Permissions.txt index 7e2468b8..70de69ba 100644 --- a/metadata/com.FireFart.Permissions.txt +++ b/metadata/com.FireFart.Permissions.txt @@ -1,8 +1,9 @@ -License:Apache2 Category:System +License:Apache2 Web Site:http://code.google.com/p/androidpermissions/ Source Code:http://code.google.com/p/androidpermissions/source/checkout Issue Tracker:http://code.google.com/p/androidpermissions/issues/list + Summary:Lists application permissions Description: This application shows all the available permissions on your phone in a big @@ -10,9 +11,12 @@ list, highlighting those it considers dangerous. You can expand any of the entries in the list to see what applications are using that particular permission. . + Repo Type:svn Repo:http://androidpermissions.googlecode.com/svn/trunk + Build Version:1.1,2,16 -Use Built:Yes + Market Version:1.1 Market Version Code:2 + diff --git a/metadata/com.agiro.scanner.android.txt b/metadata/com.agiro.scanner.android.txt index c5ae6c9f..337535f0 100644 --- a/metadata/com.agiro.scanner.android.txt +++ b/metadata/com.agiro.scanner.android.txt @@ -1,6 +1,9 @@ -License:Apache2 Category:Office +License:Apache2 +Web Site: Source Code:https://github.com/pakerfeldt/aGiro +Issue Tracker: + Summary:OCR scanner for Swedish bills Description: Scans bills sent through Bankgiro or Plusgiro and send the result to a @@ -12,8 +15,8 @@ Repo Type:git Repo:https://github.com/pakerfeldt/aGiro.git Build Version:alpha 2,2,!repo moved and renamed 20bd0f021dd852afcc9aa9008ee713419ae8e05c -#Use Built:Yes +#Use Built:Yes # The closest thing to a web site or issue tracker is this thread: # http://www.swedroid.se/forum/showthread.php?t=16305 #Web Site: diff --git a/metadata/com.alfray.mandelbrot2.txt b/metadata/com.alfray.mandelbrot2.txt index edf8843c..f421aaab 100644 --- a/metadata/com.alfray.mandelbrot2.txt +++ b/metadata/com.alfray.mandelbrot2.txt @@ -1,12 +1,15 @@ -License:GPLv3 Category:Games +License:GPLv3 Web Site:http://code.google.com/p/mandelbrot/ Source Code:http://code.google.com/p/mandelbrot/source/checkout Issue Tracker: + Summary:Mandelbrot set viewer Description: Mandelbrot set viewer that works in the style of a map viewer - i.e. scroll around and zoom in/out. . + Market Version:0.13 Market Version Code:13 + diff --git a/metadata/com.alfray.timeriffic.txt b/metadata/com.alfray.timeriffic.txt index fd71694e..9562dab5 100644 --- a/metadata/com.alfray.timeriffic.txt +++ b/metadata/com.alfray.timeriffic.txt @@ -1,8 +1,9 @@ -Use Built:Yes Category:Office License:GPLv3 Web Site:http://code.google.com/p/timeriffic/ Source Code:http://code.google.com/p/timeriffic/source/checkout +Issue Tracker: + Summary:Auto-control settings on a schedule Description: Allows you to set multiple schedules to control mute, vibrate, brightness, @@ -14,15 +15,13 @@ Repo:https://timeriffic.googlecode.com/hg/ #This previous version was svn from http://timeriffic.googlecode.com/svn/trunk/ #Build Version:1.09.03,10903,45,subdir=Timeriffic,oldsdkloc=yes - Build Version:1.09.05,10905,fc40dccbb9,subdir=Timeriffic,oldsdkloc=yes,novcheck=yes,bindir=Timeriffic/bin2 - #NOTE: Far from obvious which commit corresponds to version 1.09.09. Also #note the source tree re-org, which means some of the settings above need #to change, and also the switch to android-11 as a target. Build Version:1.09.11,10911,!Can't find correct commit. See metadata notes too. - Build Version:1.09.12,10912,!No source for this in the repo Market Version:1.09.12 Market Version Code:10912 + diff --git a/metadata/com.andrewshu.android.reddit.txt b/metadata/com.andrewshu.android.reddit.txt index 6d100564..4d1cc15c 100644 --- a/metadata/com.andrewshu.android.reddit.txt +++ b/metadata/com.andrewshu.android.reddit.txt @@ -1,15 +1,14 @@ -Use Built:Yes Category:Internet License:GPLv3+ Web Site:https://github.com/talklittle/reddit-is-fun Source Code:https://github.com/talklittle/reddit-is-fun Issue Tracker:https://github.com/talklittle/reddit-is-fun/issues + Summary:Reddit app Description: An app for the social news website Reddit. . - Repo Type:git Repo:https://github.com/talklittle/reddit-is-fun.git @@ -25,3 +24,4 @@ Build Version:1.2.1.5,78,!more dependency shuffling required and watch out for t Market Version:1.2.2a Market Version Code:81 + diff --git a/metadata/com.android.inputmethod.norwegian.txt b/metadata/com.android.inputmethod.norwegian.txt index a5d5489e..c0569467 100644 --- a/metadata/com.android.inputmethod.norwegian.txt +++ b/metadata/com.android.inputmethod.norwegian.txt @@ -1,18 +1,22 @@ -License:Apache2 Category:System +License:Apache2 Web Site:http://code.google.com/p/scandinavian-keyboard/ Source Code:http://code.google.com/p/scandinavian-keyboard/source/checkout Issue Tracker:http://code.google.com/p/scandinavian-keyboard/issues/list + Summary:Keyboard for Scandinavian languages Description: A modified version of the standard onscreen keyboard in Android with support for Norwegian, Swedish, Danish, Faroese, German, Icelandic and Northern Sámi keyboard layouts. . + Repo Type:git-svn Repo:http://scandinavian-keyboard.googlecode.com/svn/trunk + Build Version:1.4.4,13,15,target=android-4 Build Version:1.4.6,15,17,target=android-4 -Use Built:Yes + Market Version:1.4.6 Market Version Code:15 + diff --git a/metadata/com.android.keepass.txt b/metadata/com.android.keepass.txt index 207b8232..2582295d 100644 --- a/metadata/com.android.keepass.txt +++ b/metadata/com.android.keepass.txt @@ -1,9 +1,9 @@ -Use Built:Yes -License:GPLv2 Category:Office +License:GPLv2 Web Site:http://www.keepassdroid.com/ Source Code:http://github.com/bpellin/keepassdroid Issue Tracker:http://code.google.com/p/keepassdroid/issues/list + Summary:KeePass-compatible password safe Description: A password safe, compatible with KeePass. diff --git a/metadata/com.angrydoughnuts.android.alarmclock.txt b/metadata/com.angrydoughnuts.android.alarmclock.txt index 730af83b..5fd4d84e 100644 --- a/metadata/com.angrydoughnuts.android.alarmclock.txt +++ b/metadata/com.angrydoughnuts.android.alarmclock.txt @@ -1,9 +1,9 @@ -Use Built:Yes -License:Apache2 Category:Office +License:Apache2 Web Site:https://code.google.com/p/kraigsandroid/ Source Code:https://code.google.com/p/kraigsandroid/source/checkout Issue Tracker:https://code.google.com/p/kraigsandroid/issues/list + Summary:An alarm clock Description: An alarm clock. @@ -16,3 +16,4 @@ Build Version:1.7,8,378 Market Version:1.7 Market Version Code:8 + diff --git a/metadata/com.appengine.paranoid_android.lost.txt b/metadata/com.appengine.paranoid_android.lost.txt index e08f16cd..da8369c9 100644 --- a/metadata/com.appengine.paranoid_android.lost.txt +++ b/metadata/com.appengine.paranoid_android.lost.txt @@ -1,8 +1,9 @@ -License:LGPL Category:System +License:LGPL Web Site:https://sites.google.com/site/paranoidandroidproject/ContactOwner Source Code:https://code.google.com/p/contactowner/source/browse/ Issue Tracker:https://code.google.com/p/contactowner/issues/list + Summary:Contact info on lock screen Description: Contact Owner is displays your (or a friend's) contact information on the "lock diff --git a/metadata/com.beem.project.beem.txt b/metadata/com.beem.project.beem.txt index 5f998862..baa5ddcc 100644 --- a/metadata/com.beem.project.beem.txt +++ b/metadata/com.beem.project.beem.txt @@ -1,9 +1,9 @@ -Use Built:Yes -License:GPLv3+ Category:Internet +License:GPLv3+ Web Site:http://www.beem-project.com/ Source Code:http://www.beem-project.com/projects/beem/repository Issue Tracker:http://www.beem-project.com/projects/beem/issues + Summary:XMPP client Description: Beem is an XMPP (Jabber) client. @@ -17,3 +17,4 @@ Build Version:0.1.6,9,0.1.6 Market Version:0.1.6 Market Version Code:9 + diff --git a/metadata/com.boardgamegeek.txt b/metadata/com.boardgamegeek.txt index 8f0b2484..21dee90e 100644 --- a/metadata/com.boardgamegeek.txt +++ b/metadata/com.boardgamegeek.txt @@ -1,9 +1,9 @@ -License:GPLv3 Category:Games +License:GPLv3 Web Site:https://code.google.com/p/boardgamegeek/ Source Code:https://code.google.com/p/boardgamegeek/source/checkout Issue Tracker:https://code.google.com/p/boardgamegeek/issues/list -Donate: + Summary:BoardGameGeek application Description: This app searches the board game data from boardgamegeek.com. It's not a game @@ -18,3 +18,4 @@ Build Version:3.4,21,r525,subdir=BoardGameGeek,target=android-8 Market Version:3.4 Market Version Code:21 + diff --git a/metadata/com.bottleworks.dailymoney.txt b/metadata/com.bottleworks.dailymoney.txt index 77724e11..cc4e0351 100644 --- a/metadata/com.bottleworks.dailymoney.txt +++ b/metadata/com.bottleworks.dailymoney.txt @@ -1,9 +1,11 @@ Disabled:Non-free blob -License:GPLv2 +AntiFeatures:Tracking Category:Office +License:GPLv2 Web Site:https://code.google.com/p/daily-money/ Source Code:https://code.google.com/p/daily-money/source/browse/ Issue Tracker:https://code.google.com/p/daily-money/issues/list + Summary:Simple Finance Manager Description: Features: @@ -13,8 +15,6 @@ Features: * Pie and time chart of balance . -AntiFeatures:Tracking - Repo Type:svn Repo:https://daily-money.googlecode.com/svn/trunk/ @@ -23,4 +23,3 @@ Repo:https://daily-money.googlecode.com/svn/trunk/ # cp build.xml local.properties ../dailymoney/ && \ # cd ../dailymoney/ && \ # cp default.properties project.properties - diff --git a/metadata/com.bwx.bequick.txt b/metadata/com.bwx.bequick.txt index 5d307609..e08b20d1 100644 --- a/metadata/com.bwx.bequick.txt +++ b/metadata/com.bwx.bequick.txt @@ -1,23 +1,26 @@ -Use Built:Yes -License:Apache2 Category:System +License:Apache2 Web Site:http://code.google.com/p/quick-settings/ Source Code:http://code.google.com/p/quick-settings/source/checkout Issue Tracker:http://code.google.com/p/quick-settings/issues/list + Summary:System settings tool Description: Quick Settings provides quick access to various Android system settings, such as WiFi, GPS, brightness and all the various volume controls. . + Repo Type:svn Repo:http://quick-settings.googlecode.com/svn/trunk/quick-settings/ #Don't know why the market version has a slightly different version code... Build Version:1.9.8 p2,201012061,!Different market code +#Don't know why the market version has a slightly different version code... Build Version:1.9.8 p2,201012060,184,target=android-8 Build Version:1.9.9.2,201106160,213,target=android-8 Build Version:1.9.9.3,201107260,220,target=android-8 Market Version:1.9.9.5 Market Version Code:201110061 + diff --git a/metadata/com.bwx.qs.battery.txt b/metadata/com.bwx.qs.battery.txt index ebb59f86..7ff8337c 100644 --- a/metadata/com.bwx.qs.battery.txt +++ b/metadata/com.bwx.qs.battery.txt @@ -1,13 +1,14 @@ -Use Built:Yes -License:Apache2 Category:System +License:Apache2 Web Site:http://code.google.com/p/quick-settings/ Source Code:http://code.google.com/p/quick-settings/source/checkout Issue Tracker:http://code.google.com/p/quick-settings/issues/list + Summary:Battery widget Description: A tiny widget that displays battery level both numerically and graphically. . + Repo Type:svn Repo:http://quick-settings.googlecode.com/svn/trunk/quick-battery/ @@ -15,3 +16,4 @@ Build Version:0.8.2,201010020,153,target=android-8 Market Version:0.8.2 Market Version Code:201010020 + diff --git a/metadata/com.chessclock.android.txt b/metadata/com.chessclock.android.txt index 257f4b8c..73c90a21 100644 --- a/metadata/com.chessclock.android.txt +++ b/metadata/com.chessclock.android.txt @@ -1,8 +1,9 @@ -License:GPLv3 Category:Games +License:GPLv3 Web Site:https://code.google.com/p/simplechessclock/ Source Code:https://code.google.com/p/simplechessclock/source/browse/ Issue Tracker:https://code.google.com/p/simplechessclock/issues/list + Summary:Simple chess clock Description: Simple Chess Clock does what it says! It is designed for touchscreen Android diff --git a/metadata/com.commonsware.android.arXiv.txt b/metadata/com.commonsware.android.arXiv.txt index 37feb7d9..7f233533 100644 --- a/metadata/com.commonsware.android.arXiv.txt +++ b/metadata/com.commonsware.android.arXiv.txt @@ -1,9 +1,9 @@ -Use Built:Yes -License:GPLv2 Category:Internet +License:GPLv2 Web Site:https://launchpad.net/arxivdroid Source Code:http://bazaar.launchpad.net/~jdeslip/arxivdroid/trunk/files Issue Tracker: + Summary:arxiv.org client Description: Official arxiv.org client with widget @@ -23,3 +23,4 @@ Build Version:2.0.20,106,!No source in repo Market Version:2.0.20 Market Version Code:106 + diff --git a/metadata/com.csipsimple.txt b/metadata/com.csipsimple.txt index d70108e7..f1593cb4 100644 --- a/metadata/com.csipsimple.txt +++ b/metadata/com.csipsimple.txt @@ -1,9 +1,10 @@ -License:GPLv3 Category:Internet +License:GPLv3 Web Site:http://code.google.com/p/csipsimple/ Source Code:http://code.google.com/p/csipsimple/source/checkout Issue Tracker:http://code.google.com/p/csipsimple/issues/list Donate:http://code.google.com/p/csipsimple/wiki/Donate + Summary:SIP (VOIP) client Description: A SIP (VOIP) client. @@ -11,6 +12,6 @@ A SIP (VOIP) client. #Note : build needs a customised ndk, as described at: # http://code.google.com/p/csipsimple/wiki/HowToBuild - Market Version:0.03-01 Market Version Code:1108 + diff --git a/metadata/com.danga.squeezer.txt b/metadata/com.danga.squeezer.txt index c78bac0b..bb3d934b 100644 --- a/metadata/com.danga.squeezer.txt +++ b/metadata/com.danga.squeezer.txt @@ -1,16 +1,17 @@ -License:Apache2 Category:Multimedia +License:Apache2 Web Site:http://code.google.com/p/android-squeezer/ Source Code:https://github.com/bradfitz/android-squeezer Issue Tracker:http://code.google.com/p/android-squeezer/issues/list + Summary:Squeezebox remote control app Description: Control your SqueezeCenter ("Slimserver") and Squeezebox (or multiple squeezeboxes) from your Android phone. . + Repo Type:git Repo:https://github.com/bradfitz/android-squeezer.git -Use Built:Yes Build Version:0.5,5,df0ffda7ae6370f22847ea9e764d81802eeaf545,\ prebuild=sed -r -i \ @@ -20,3 +21,4 @@ oldsdkloc=yes,target=android-4 Market Version:0.5 Market Version Code:5 + diff --git a/metadata/com.determinato.feeddroid.txt b/metadata/com.determinato.feeddroid.txt index 49d6be82..67843f85 100644 --- a/metadata/com.determinato.feeddroid.txt +++ b/metadata/com.determinato.feeddroid.txt @@ -1,19 +1,19 @@ Disabled: Need to deal with possible trademark issues due us forking the project. -License:GPLv3 Category:Internet +License:GPLv3 Web Site:http://code.google.com/p/feeddroid/ Source Code:http://gitorious.org/feeddroid/feeddroid Issue Tracker: + Summary:RSS feed reader/podcatcher Description: An RSS feed reader and podcatcher with audio and video support. . - Repo Type:git Repo:http://git.gitorious.org/feeddroid/feeddroid.git #Build Version:1.1.1,37,db5077bf1ef792d8d5f6154198b7200a50d963df,subdir=FeedDroid - Market Version:1.1.1 Market Version Code:37 + diff --git a/metadata/com.dozingcatsoftware.bouncy.txt b/metadata/com.dozingcatsoftware.bouncy.txt index 21ac3d49..16feceb3 100644 --- a/metadata/com.dozingcatsoftware.bouncy.txt +++ b/metadata/com.dozingcatsoftware.bouncy.txt @@ -1,18 +1,20 @@ -Use Built:Yes -License:GPLv3 Category:Games +License:GPLv3 Web Site:https://github.com/dozingcat/Vector-Pinball Source Code:https://github.com/dozingcat/Vector-Pinball Issue Tracker:https://github.com/dozingcat/Vector-Pinball/issues -Donate: + Summary:Pinball game Description: Vector Pinball is a pinball game. . + Repo Type:git Repo:https://github.com/dozingcat/Vector-Pinball.git + Build Version:1.1,4,45b5218594320ffb4b37 Build Version:1.3,10,1210949b1e373916d096 Market Version:1.3.1 Market Version Code:11 + diff --git a/metadata/com.drodin.tuxrider.txt b/metadata/com.drodin.tuxrider.txt index 55cd36e6..d12323c7 100644 --- a/metadata/com.drodin.tuxrider.txt +++ b/metadata/com.drodin.tuxrider.txt @@ -1,19 +1,20 @@ Disabled:Ads AntiFeatures:Ads -License:GPLv2+ Category:Games +License:GPLv2+ Web Site:http://tuxrider.drodin.com/ Source Code:https://github.com/drodin/TuxRider Issue Tracker:https://github.com/drodin/TuxRider/issues + Summary:Racing Game Description: A Tux Racer clone. . + Repo Type:git Repo:git://github.com/drodin/TuxRider.git #Build Version:1.0.4 beta,6,67bce39cda321c225bc5 - - Market Version:1.0.9 Market Version Code:11 + diff --git a/metadata/com.droidwave.offlinecalendar.txt b/metadata/com.droidwave.offlinecalendar.txt index 8e250189..c8390ea2 100644 --- a/metadata/com.droidwave.offlinecalendar.txt +++ b/metadata/com.droidwave.offlinecalendar.txt @@ -1,18 +1,20 @@ Disabled:No release available -Use Built:Yes +Category:None License:MIT Web Site:https://bitbucket.org/giszmo/offline-calendar/overview Source Code:https://bitbucket.org/giszmo/offline-calendar/src Issue Tracker:https://bitbucket.org/giszmo/offline-calendar/issues?status=new&status=open + Summary:Calendar Description: A calendar application. . + Repo Type:hg Repo:https://bitbucket.org/giszmo/offline-calendar #There don't seem to be any developer releases yet #There is now a 1.1 in the android market, but no source for it in the repository - Market Version:1.1 Market Version Code:2 + diff --git a/metadata/com.eddyspace.networkmonitor.txt b/metadata/com.eddyspace.networkmonitor.txt index 7102b45d..56dba3ca 100644 --- a/metadata/com.eddyspace.networkmonitor.txt +++ b/metadata/com.eddyspace.networkmonitor.txt @@ -1,14 +1,15 @@ -Use Built:Yes -License:GPLv3+ Category:System +License:GPLv3+ Web Site:http://anetmon.sourceforge.net/ Source Code:http://sourceforge.net/projects/anetmon/develop Issue Tracker:http://sourceforge.net/tracker/?group_id=288036 + Summary:Network event logger Description: Shows various network status information and optionally logs it to a CSV file to assist in troubleshooting. . + Repo Type:svn Repo:https://anetmon.svn.sourceforge.net/svnroot/anetmon/ diff --git a/metadata/com.eleybourn.bookcatalogue.txt b/metadata/com.eleybourn.bookcatalogue.txt index 0f30c20e..3b926f79 100644 --- a/metadata/com.eleybourn.bookcatalogue.txt +++ b/metadata/com.eleybourn.bookcatalogue.txt @@ -1,9 +1,9 @@ -Use Built:Yes -License:GPLv3+ Category:Office +License:GPLv3+ Web Site:http://github.com/eleybourn/Book-Catalogue/wiki Source Code:http://github.com/eleybourn/Book-Catalogue Issue Tracker:http://github.com/eleybourn/Book-Catalogue/issues + Summary:Book cataloguing application Description: This is a simple book catalogue application, to store a list of your books. Books can be added either manually, by ISBN, or by barcode. @@ -11,9 +11,9 @@ This is a simple book catalogue application, to store a list of your books. Book Repo Type:git Repo:git://github.com/eleybourn/Book-Catalogue.git + Build Version:3.0.1,36,b876c6df82c7e195ec5d,patch=percent-in-strings.patch Build Version:3.0,35,448858bad8b397974db7,patch=percent-in-strings.patch - Build Version:3.3,47,50379da3ee1f7e95679a Build Version:3.3.1,48,!No source - see https://github.com/eleybourn/Book-Catalogue/issues/162/#issue/162/comment/821843 Build Version:3.4,49,ef03c165bdc34e6be1f6 diff --git a/metadata/com.evancharlton.mileage.txt b/metadata/com.evancharlton.mileage.txt index 6c9efd20..9201f4a4 100644 --- a/metadata/com.evancharlton.mileage.txt +++ b/metadata/com.evancharlton.mileage.txt @@ -1,9 +1,10 @@ -Use Built:Yes -License:Apache2 Category:Office +License:Apache2 Web Site:http://evancharlton.com/projects/mileage/ Source Code:http://evancharlton.com/projects/mileage/source/ +Issue Tracker: Donate:http://evancharlton.com/donate/ + Summary:A Mileage tracker Description: A Mileage tracker for an Android-based phone. Allows importing and @@ -17,6 +18,6 @@ Repo:http://hg.evancharlton.com/mileage Build Version:3.0.0,3000,0766c4f352a5,subdir=trunk,oldsdkloc=yes Build Version:3.0.8,3080,!No source in repo - Market Version:3.0.8 Market Version Code:3080 + diff --git a/metadata/com.example.android.maxpapers.txt b/metadata/com.example.android.maxpapers.txt index 26d36925..1447eb47 100644 --- a/metadata/com.example.android.maxpapers.txt +++ b/metadata/com.example.android.maxpapers.txt @@ -1,18 +1,20 @@ -License:EPL Category:System +License:EPL Web Site:http://code.google.com/p/lcarswallpaper/ Source Code:http://code.google.com/p/lcarswallpaper/source/checkout Issue Tracker:http://code.google.com/p/lcarswallpaper/issues/list + Summary:LCARS live wallpaper Description: Star Trek LCARS themed live wallpaper for Android 2.1+ devices that shows various system information. . + Repo Type:svn Repo:http://lcarswallpaper.googlecode.com/svn/trunk/lcarswallpaper -Use Built:Yes # The manifest has no version code, so let's use the SVN revision number. Build Version:1.0.2,35,35,\ prebuild=sed -i -r 's/(android:versionName)/android:versionCode="35" \1/' \ AndroidManifest.xml + diff --git a/metadata/com.example.weightchart.txt b/metadata/com.example.weightchart.txt index cbc69bb8..c7708b24 100644 --- a/metadata/com.example.weightchart.txt +++ b/metadata/com.example.weightchart.txt @@ -1,17 +1,18 @@ -Use Built:Yes -License:GPLv3 +Disabled: Doesn't built at the moment. Category:Office +License:GPLv3 Web Site:https://launchpad.net/weightchart Source Code:https://code.launchpad.net/~rheo/weightchart/trunk Issue Tracker:https://bugs.launchpad.net/weightchart + Summary:Logs your body weight -Disabled: Doesn't built at the moment. Description: Keep a personal log of body weight and display as a chart. . + Repo Type:bzr Repo:lp:weightchart + Build Version:1,1,1,target=8 - diff --git a/metadata/com.fsck.k9.txt b/metadata/com.fsck.k9.txt index c0cb61f4..a5d42db2 100644 --- a/metadata/com.fsck.k9.txt +++ b/metadata/com.fsck.k9.txt @@ -1,8 +1,9 @@ -License:Apache2 Category:Internet +License:Apache2 Web Site:http://code.google.com/p/k9mail/ Source Code:https://github.com/k9mail/k-9 Issue Tracker:http://code.google.com/p/k9mail/issues/list + Summary:Full-featured email client Description: Email client supporting multiple accounts, POP3, IMAP, Push IMAP. Packed with @@ -14,6 +15,6 @@ Repo:https://github.com/k9mail/k-9.git #Note - k9 is currently developer's binary only #Build Version:3.906,14006,3.906,oldsdkloc=yes,patch=target9to10.patch,target=android-10 - Market Version:4.002 Market Version Code:14020 + diff --git a/metadata/com.funambol.androidsync.txt b/metadata/com.funambol.androidsync.txt index c66e7893..ae8ff80a 100644 --- a/metadata/com.funambol.androidsync.txt +++ b/metadata/com.funambol.androidsync.txt @@ -1,13 +1,14 @@ -Use Built:Yes -License:AGPLv3 Category:Office +License:AGPLv3 Web Site:http://www.funambol.com Source Code:https://android-client.forge.funambol.org/source/browse/android-client/ Issue Tracker: + Summary:Funambol sync client Description: Funambol sync client. . + Repo Type:svn Repo:guest:x@https://android-client.forge.funambol.org/svn/android-client/ @@ -23,7 +24,6 @@ Build Version:10.0.6,16,2337,subdir=tags/10.0.6,update=no,initfun=yes #Source is now accessible, but the build is failing without an obvious error. #Need to look at this again. #Build Version:10.0.7,17,2671,subdir=tags/10.0.7,update=no,initfun=yes - - Market Version:10.0.7 Market Version Code:17 + diff --git a/metadata/com.ghostsq.commander.txt b/metadata/com.ghostsq.commander.txt index 2e78dcc2..d1dd16e2 100644 --- a/metadata/com.ghostsq.commander.txt +++ b/metadata/com.ghostsq.commander.txt @@ -1,8 +1,9 @@ -License:GPLv3 Category:System +License:GPLv3 Web Site:http://sites.google.com/site/ghostcommander1/ Source Code:http://sourceforge.net/projects/ghostcommander/develop Issue Tracker:http://sourceforge.net/tracker/?group_id=311417 + Summary:Dual-panel file manager Description: Dual panel file manager, like Norton Commander, Midnight Commander or @@ -14,13 +15,12 @@ files to/from FTP servers and SMB network shares (with plug-in). It given root privileges, it offers additional functionality, such as remounting filesystems. . + Repo Type:svn Repo:https://ghostcommander.svn.sourceforge.net/svnroot/ghostcommander -Use Built:Yes Build Version:1.35.1b5,97,141,\ prebuild=sed -ri 's/(debuggable)="true"/\1="false"/' AndroidManifest.xml - # All commit messages are empty, so I'm just guessing the revision. Build Version:1.35,94,131,\ prebuild=sed -ri 's/(debuggable)="true"/\1="false"/' AndroidManifest.xml @@ -29,3 +29,4 @@ prebuild=sed -ri 's/(debuggable)="true"/\1="false"/' AndroidManifest.xml Market Version:1.39.3 Market Version Code:154 + diff --git a/metadata/com.gluegadget.hndroid.txt b/metadata/com.gluegadget.hndroid.txt index 0b614e77..4f9e1cdc 100644 --- a/metadata/com.gluegadget.hndroid.txt +++ b/metadata/com.gluegadget.hndroid.txt @@ -1,7 +1,15 @@ Disabled:No license - it's "Open Source" whatever that means +Category:Internet +License:Unknown Web Site:http://gluegadget.com/hndroid/ Source Code:https://github.com/amir/HNdroid -Category:Internet +Issue Tracker: + +Summary: +Description: +No description available +. Market Version:0.4 Market Version Code:5 + diff --git a/metadata/com.google.android.diskusage.txt b/metadata/com.google.android.diskusage.txt index e4bbdc42..b292131f 100644 --- a/metadata/com.google.android.diskusage.txt +++ b/metadata/com.google.android.diskusage.txt @@ -1,13 +1,14 @@ -Use Built:Yes -License:GPLv2 Category:System +License:GPLv2 Web Site:http://diskusage.googlecode.com/ Source Code:http://code.google.com/p/diskusage/source/checkout Issue Tracker:http://code.google.com/p/diskusage/issues/list + Summary:Visual disk usage explorer Description: Visually explore used and free space on internal and external storage. . + Repo Type:svn Repo:http://diskusage.googlecode.com/svn/trunk/ @@ -22,3 +23,4 @@ Build Version:3.2,3020,69,prebuild=mkdir libs && cp extra/system.jar libs/ Market Version:3.2 Market Version Code:3020 + diff --git a/metadata/com.google.android.maps.mytracks.txt b/metadata/com.google.android.maps.mytracks.txt index be75e2c9..9fc683d9 100644 --- a/metadata/com.google.android.maps.mytracks.txt +++ b/metadata/com.google.android.maps.mytracks.txt @@ -1,11 +1,11 @@ Disabled:Needs google maps API key, and some build problems resolving -Use Built:Yes -License:Apache2 AntiFeatures:NonFreeDep Category:Navigation +License:Apache2 Web Site:http://code.google.com/p/mytracks/ Source Code:http://code.google.com/p/mytracks/source/checkout Issue Tracker:http://code.google.com/p/mytracks/issues/list + Summary:A GPS logger. Description: MyTracks is a GPS logger. @@ -15,12 +15,11 @@ Repo Type:hg Repo:https://mytracks.googlecode.com/hg/ Build Version:1.1.0,23,a86a640f2d,subdir=MyTracks - Build Version:1.1.3,26,!Doesn't build - needs dependencies building now I think -#Build Version:1.1.3,26,62821d45032d,subdir=MyTracks,target=android-10,encoding=utf-8 +#Build Version:1.1.3,26,62821d45032d,subdir=MyTracks,target=android-10,encoding=utf-8 #Still doesn't build... #Build Version:1.1.9,22,v1.1.9,subdir=MyTracks,encoding=utf-8,target=android-13 - Market Version:1.1.13 Market Version Code:36 + diff --git a/metadata/com.google.code.appsorganizer.txt b/metadata/com.google.code.appsorganizer.txt index 722a370b..24c186ca 100644 --- a/metadata/com.google.code.appsorganizer.txt +++ b/metadata/com.google.code.appsorganizer.txt @@ -1,9 +1,10 @@ -License:GPLv3+ Category:System +License:GPLv3+ Web Site:http://sites.google.com/site/appsorganizer/ Source Code:http://code.google.com/p/appsorganizer/source/checkout Issue Tracker:http://code.google.com/p/appsorganizer/issues/list Donate:http://sites.google.com/site/appsorganizer/donate + Summary:Organize applications using labels Description: Apps Organizer allows you to organize installed applications using @@ -22,3 +23,4 @@ Build Version:1.5.19,167,191,subdir=AppsOrganizer,target=android-10 Market Version:1.5.19 Market Version Code:167 + diff --git a/metadata/com.google.zxing.client.android.txt b/metadata/com.google.zxing.client.android.txt index 1937c1b9..36d1ec81 100644 --- a/metadata/com.google.zxing.client.android.txt +++ b/metadata/com.google.zxing.client.android.txt @@ -1,8 +1,9 @@ -License:Apache2 Category:Multimedia +License:Apache2 Web Site:http://code.google.com/p/zxing/ Source Code:http://code.google.com/p/zxing/source/checkout Issue Tracker:http://code.google.com/p/zxing/issues/list + Summary:Barcode scanner Description: Barcode scanner from ZXing. @@ -10,3 +11,4 @@ Barcode scanner from ZXing. Market Version:3.72 Market Version Code:76 + diff --git a/metadata/com.googlecode.androidcells.txt b/metadata/com.googlecode.androidcells.txt index 51ce1c5c..97161910 100644 --- a/metadata/com.googlecode.androidcells.txt +++ b/metadata/com.googlecode.androidcells.txt @@ -1,11 +1,9 @@ - -Use Built:Yes -License:GPLv3 Category:Internet +License:GPLv3 Web Site:http://openbmap.org Source Code:http://sourceforge.net/scm/?type=git&group_id=218065 Issue Tracker:http://sourceforge.net/tracker/?group_id=218065 -Donate: + Summary:OpenBMap Data Contribution Description: Provides the ability to record cellular and WiFi locations and upload them @@ -20,3 +18,4 @@ Build Version:0.4.991,13,!Source is not there - see https://sourceforge.net/trac Market Version:0.4.991 Market Version Code:13 + diff --git a/metadata/com.googlecode.chartdroid.txt b/metadata/com.googlecode.chartdroid.txt index 97827d95..fe72a2e1 100644 --- a/metadata/com.googlecode.chartdroid.txt +++ b/metadata/com.googlecode.chartdroid.txt @@ -1,8 +1,9 @@ -License:Apache2 Category:Multimedia +License:Apache2 Web Site:http://code.google.com/p/chartdroid/ Source Code:http://code.google.com/p/chartdroid/source/checkout Issue Tracker:http://code.google.com/p/chartdroid/issues/list + Summary:Chart engine Description: ChartDroid is an Intent-based "library application" for static chart and @@ -10,9 +11,12 @@ graph generation on Android. Other applications can use it to graph/plot/display numerical data in many representations by implementing a ContentProvider. . + Repo Type:svn Repo:http://chartdroid.googlecode.com/svn/trunk/core + Build Version:2.0.0,18,294 -Use Built:Yes + Market Version:2.0.0 Market Version Code:18 + diff --git a/metadata/com.googlecode.droidwall.txt b/metadata/com.googlecode.droidwall.txt index d959bc3e..45e71479 100644 --- a/metadata/com.googlecode.droidwall.txt +++ b/metadata/com.googlecode.droidwall.txt @@ -1,9 +1,9 @@ -Use Built:Yes Category:System License:GPLv3 Web Site:http://code.google.com/p/droidwall/ Source Code:http://code.google.com/p/droidwall/source/checkout Issue Tracker:http://code.google.com/p/droidwall/issues/list + Summary:Firewall Description: A Firewall frontend based on iptables @@ -11,7 +11,6 @@ A Firewall frontend based on iptables NOTE: Root access is required to use this application. . - Requires Root:Yes Repo Type:svn @@ -23,6 +22,6 @@ Build Version:1.4.8,148,156 Build Version:1.5.3,153,219 Build Version:1.5.6,156,245,target=android-8 - Market Version:1.5.6 Market Version Code:156 + diff --git a/metadata/com.googlecode.talkmyphone.txt b/metadata/com.googlecode.talkmyphone.txt index dbc55262..89c6e7f8 100644 --- a/metadata/com.googlecode.talkmyphone.txt +++ b/metadata/com.googlecode.talkmyphone.txt @@ -1,13 +1,16 @@ -License:LGPL Category:System +License:LGPL Web Site:http://code.google.com/p/talkmyphone/ Source Code:http://code.google.com/p/talkmyphone/source/checkout Issue Tracker:http://code.google.com/p/talkmyphone/issues/list + Summary:Remote control of phone by XMPP Description: Allows you to send commands to your device remotely, via the XMPP protocol. You can also receive information, such as incoming calls and SMS, and battery state. . + Market Version:2.06-beta Market Version Code:17 + diff --git a/metadata/com.gpl.rpg.AndorsTrail.txt b/metadata/com.gpl.rpg.AndorsTrail.txt index 4e9c4f13..5f3b7096 100644 --- a/metadata/com.gpl.rpg.AndorsTrail.txt +++ b/metadata/com.gpl.rpg.AndorsTrail.txt @@ -1,9 +1,10 @@ -Name:Andor's Trail +Category:Games License:GPLv2 Web Site:http://andors.techby2guys.com/ Source Code:http://code.google.com/p/andors-trail/ Issue Tracker:http://code.google.com/p/andors-trail/issues/list -Category:Games + +Name:Andor's Trail Summary:Quest-driven Roguelike fantasy dungeon crawler RPG. Description: Quest-driven Roguelike fantasy dungeon crawler RPG with a powerful story. @@ -26,3 +27,4 @@ Build Version:0.6.10,25,192,subdir=AndorsTrail Market Version:0.6.10 Market Version Code:25 + diff --git a/metadata/com.ichi2.anki.txt b/metadata/com.ichi2.anki.txt index cea1f952..b4450fe7 100644 --- a/metadata/com.ichi2.anki.txt +++ b/metadata/com.ichi2.anki.txt @@ -3,6 +3,7 @@ License:GPLv3 Web Site:https://code.google.com/p/ankidroid/wiki/Index Source Code:http://github.com/nicolas-raoul/Anki-Android/ Issue Tracker:http://code.google.com/p/ankidroid/issues + Summary:A flashcard-based study aid Description: Anki is a program which makes remembering things easy. Because it is a lot more diff --git a/metadata/com.integralblue.callerid.txt b/metadata/com.integralblue.callerid.txt index 1f2dc88a..5df7200d 100644 --- a/metadata/com.integralblue.callerid.txt +++ b/metadata/com.integralblue.callerid.txt @@ -1,10 +1,9 @@ -Use Built:Yes Category:System License:GPLv3 Web Site:http://candrews.integralblue.com/2011/04/my-first-android-app-callerid/ Source Code:https://gitorious.org/callerid-for-android Issue Tracker: -Donate: + Summary:Provides caller ID Description: Uses a web service to provide information about an incoming caller based on @@ -16,6 +15,6 @@ Repo:git://gitorious.org/callerid-for-android/mainline.git #Disabled pending figuring out how to stop it zipaligning.... #Build Version:1.0,1,e6d5a9ac4bb24ae3866a0782f2b23d1f18eb2266,subdir=application,maven=yes,bindir=application/target,prebuild=wget http://osmdroid.googlecode.com/files/osmdroid-android-3.0.3.jar && mvn install:install-file -DgroupId=org.osmdroid -DartifactId=osmdroid -Dversion=3.0.3 -Dpackaging=jar -Dfile=osmdroid-android-3.0.3.jar - Market Version:1.3 Market Version Code:4 + diff --git a/metadata/com.jadn.cc.txt b/metadata/com.jadn.cc.txt index d78ff2b0..efede105 100644 --- a/metadata/com.jadn.cc.txt +++ b/metadata/com.jadn.cc.txt @@ -1,9 +1,10 @@ -License:MIT Category:Multimedia +License:MIT Web Site:http://jadn.com/carcast/ Source Code:http://github.com/bherrmann7/Car-Cast/ Issue Tracker:https://github.com/bherrmann7/Car-Cast/issues Donate:https://market.android.com/details?id=com.jadn.ccpro + Summary:A podcast downloader and player. Description: Car Cast is a simple audio podcast downloader and player. diff --git a/metadata/com.kirit.android.mintercept.txt b/metadata/com.kirit.android.mintercept.txt index a33b668a..a34a2713 100644 --- a/metadata/com.kirit.android.mintercept.txt +++ b/metadata/com.kirit.android.mintercept.txt @@ -1,12 +1,15 @@ -License:GPLv3+ Category:Games +License:GPLv3+ Web Site:http://www.kirit.com/Missile%20intercept Source Code:http://www.kirit.com/Missile%20intercept Issue Tracker:http://support.felspar.com/Project:/Missile%20intercept + Summary:Missile Command style game Description: A game in the style of the classic Missile Command. Defend your cities from incoming enemy missiles. . + Market Version:0.5.1 Market Version Code:6 + diff --git a/metadata/com.kmagic.solitaire.txt b/metadata/com.kmagic.solitaire.txt index 4ea3a534..6509c27e 100644 --- a/metadata/com.kmagic.solitaire.txt +++ b/metadata/com.kmagic.solitaire.txt @@ -1,15 +1,16 @@ -Use Built:Yes Category:Games License:Apache2 Web Site:http://code.google.com/p/solitaire-for-android/ Source Code:http://code.google.com/p/solitaire-for-android/source/checkout Issue Tracker:http://code.google.com/p/solitaire-for-android/issues/list + Summary:Solitaire collection Description: Solitaire Collection of Klondike (Regular solitaire), Spider Solitaire, and Freecell using the touchscreen interface. Features include multi-level undo, animated card movement, and statistic/score tracking. . + Repo Type:svn Repo:http://solitaire-for-android.googlecode.com/svn/trunk/ @@ -17,3 +18,4 @@ Build Version:1.12.2,450,30,target=android-8 Market Version:1.12.2 Market Version Code:450 + diff --git a/metadata/com.lecz.android.tiltmazes.txt b/metadata/com.lecz.android.tiltmazes.txt index ff22423a..7ba74c25 100644 --- a/metadata/com.lecz.android.tiltmazes.txt +++ b/metadata/com.lecz.android.tiltmazes.txt @@ -1,8 +1,9 @@ -License:BSD Category:Games +License:BSD Web Site:http://code.google.com/p/tiltmazes/ Source Code:http://code.google.com/p/tiltmazes/source/checkout Issue Tracker:http://code.google.com/p/tiltmazes/issues/list + Summary:Logical puzzle game Description: A ball sits in a flat tray containing one or more squares (goals). The challenge is @@ -10,5 +11,7 @@ to guide the ball around the tray and collect all the squares. Tilt the tray to, literally, start the ball rolling. The ball rolls in a straight line until it hits a wall, you can then tilt again. . + Market Version:1.2 Market Version Code:3 + diff --git a/metadata/com.liato.bankdroid.txt b/metadata/com.liato.bankdroid.txt index 5a82cbe8..4d32fd91 100644 --- a/metadata/com.liato.bankdroid.txt +++ b/metadata/com.liato.bankdroid.txt @@ -1,14 +1,15 @@ -Use Built:Yes Category:Office License:Apache2 Web Site:http://www.swedroid.se/forum/showthread.php?t=11108 Source Code:https://github.com/liato/android-bankdroid Issue Tracker:https://github.com/liato/android-bankdroid/issues + Summary:Banking application for Swedish banks Description: Checks your account balance at any of the major Swedish banks and can display notifications on changes. Includes a widget. . + Repo Type:git Repo:https://github.com/liato/android-bankdroid.git @@ -20,7 +21,6 @@ Build Version:1.6.3,102,612aae755a82008f44a6,encoding=utf-8,prebuild=mkdir libs unzip -j guava-r08.zip guava-r08/guava-r08.jar && \ rm *.zip && \ cd .. - Build Version:1.7.2,110,fec08e34a157a3e0b455,encoding=utf-8,prebuild=mkdir libs && \ cd libs && \ wget http://archive.apache.org/dist/commons/io/binaries/commons-io-2.0.1-bin.zip && \ @@ -29,9 +29,7 @@ Build Version:1.7.2,110,fec08e34a157a3e0b455,encoding=utf-8,prebuild=mkdir libs unzip -j guava-r08.zip guava-r08/guava-r08.jar && \ rm *.zip && \ cd .. - Build Version:1.7.3,115,!a08cab7e66c70e7b0f5c but wrong version code in repo - Build Version:1.8.0,120,899e4b957e512bf55254,encoding=utf-8,prebuild=mkdir libs && \ cd libs && \ wget http://archive.apache.org/dist/commons/io/binaries/commons-io-2.0.1-bin.zip && \ @@ -51,7 +49,6 @@ Build Version:1.8.0,120,899e4b957e512bf55254,encoding=utf-8,prebuild=mkdir libs # unzip -j guava-r08.zip guava-r08/guava-r08.jar && \ # rm *.zip && \ # cd .. - #Build fails on this version, same as previous version: # res/values/styles.xml:62: error: Error retrieving parent for item: No resource found that matches the given name 'android:WindowTitleBackground' #Build Version:1.8.1,121,9f626b0dedb01cb90a16fb127a041c5f3dd1c579,target=android-10,encoding=utf-8,prebuild=mkdir libs && \ @@ -62,7 +59,6 @@ Build Version:1.8.0,120,899e4b957e512bf55254,encoding=utf-8,prebuild=mkdir libs # unzip -j guava-r08.zip guava-r08/guava-r08.jar && \ # rm *.zip && \ # cd .. - Market Version:1.8.4 Market Version Code:125 diff --git a/metadata/com.madgag.agit.txt b/metadata/com.madgag.agit.txt index 760156f3..29424609 100644 --- a/metadata/com.madgag.agit.txt +++ b/metadata/com.madgag.agit.txt @@ -1,10 +1,9 @@ -Use Built:Yes -License:GPLv3 Category:Development +License:GPLv3 Web Site:https://github.com/rtyley/agit Source Code:https://github.com/rtyley/agit Issue Tracker:https://github.com/rtyley/agit/issues -Donate: + Summary:A git client Description: A git client - currently read-only. @@ -16,3 +15,4 @@ Repo:https://github.com/rtyley/agit.git #No builds yet - another 'need to figure out how to make maven work' scenario Market Version:1.25 Market Version Code:110900321 + diff --git a/metadata/com.martynhaigh.violin.txt b/metadata/com.martynhaigh.violin.txt index 496cce17..46f9a335 100644 --- a/metadata/com.martynhaigh.violin.txt +++ b/metadata/com.martynhaigh.violin.txt @@ -1,12 +1,15 @@ Disabled:See license -License:Unknown Category:Games +License:Unknown Web Site:http://github.com/martynhaigh/Tiny-Open-Source-Violin Source Code:http://github.com/martynhaigh/Tiny-Open-Source-Violin Issue Tracker:http://github.com/martynhaigh/Tiny-Open-Source-Violin + Summary:A tiny open source violin Description: The world's tiniest open source violin. . + Market Version:1.3 Market Version Code:9 + diff --git a/metadata/com.matburt.mobileorg.txt b/metadata/com.matburt.mobileorg.txt index 27fb6140..9d1777c8 100644 --- a/metadata/com.matburt.mobileorg.txt +++ b/metadata/com.matburt.mobileorg.txt @@ -1,8 +1,9 @@ -License:GPLv2 Category:Office +License:GPLv2 Web Site:https://github.com/matburt/mobileorg-android/wiki -Issue Tracker:https://github.com/matburt/mobileorg-android/issues Source Code:https://github.com/matburt/mobileorg-android +Issue Tracker:https://github.com/matburt/mobileorg-android/issues + Summary:TODO/task management application Description: TODO/task management based on emacs org-mode files. @@ -13,6 +14,6 @@ Repo:https://github.com/matburt/mobileorg-android.git #Needs dropbox consumer key #Build Version:0.5.2,51,38dfe967ee99c71b12b8 - Market Version:0.7.1 Market Version Code:71 + diff --git a/metadata/com.mobilepearls.sokoban.txt b/metadata/com.mobilepearls.sokoban.txt index 5c42daea..bb1d2d35 100644 --- a/metadata/com.mobilepearls.sokoban.txt +++ b/metadata/com.mobilepearls.sokoban.txt @@ -1,16 +1,19 @@ -Use Built:Yes -License:GPLv2 Category:Games +License:GPLv2 Web Site:http://mobilepearls.com Source Code:https://github.com/mobilepearls/com.mobilepearls.sokoban Issue Tracker:https://github.com/mobilepearls/com.mobilepearls.sokoban/issues + Summary:A Sokoban game for Android Description: A puzzle game. . + Repo Type:git Repo:https://github.com/mobilepearls/com.mobilepearls.sokoban.git + Build Version:1.11,12,48e1976f9d9881adb70e Market Version:1.11 Market Version Code:12 + diff --git a/metadata/com.morphoss.acal.txt b/metadata/com.morphoss.acal.txt index 0ded171e..da9e069f 100644 --- a/metadata/com.morphoss.acal.txt +++ b/metadata/com.morphoss.acal.txt @@ -1,10 +1,10 @@ -Use Built:Yes -License:GPLv3 Category:Office +License:GPLv3 Web Site:http://acal.me Source Code:http://gitorious.org/acal Issue Tracker: Donate:http://acal.me/wiki/Donating + Summary:Calendar - CalDAV client Description: A CalDAV client, allowing you to directly access a calendar on a CalDAV @@ -29,3 +29,4 @@ Build Version:1.34,36,r1.34,target=android-8 Market Version:1.34 Market Version Code:36 + diff --git a/metadata/com.mp3tunes.android.player.txt b/metadata/com.mp3tunes.android.player.txt index 84b62b29..89c8d54e 100644 --- a/metadata/com.mp3tunes.android.player.txt +++ b/metadata/com.mp3tunes.android.player.txt @@ -1,9 +1,10 @@ -Use Built:Yes -License:GPLv3+ +AntiFeatures:NonFreeNet Category:Multimedia +License:GPLv3+ Web Site:http://code.google.com/p/mp3tunes/ Source Code:http://code.google.com/p/mp3tunes/source/browse/ Issue Tracker:http://androidmp3.uservoice.com/ + Summary:Client for listening to music stored in an MP3tunes locker Description: MP3tunes is a music storage service, where users can upload their music files and stream them from anywhere. @@ -16,7 +17,6 @@ Repo:https://mp3tunes.googlecode.com/hg/ Build Version:3.7,89,ba4550305733,target=android-4,fixapos=yes Build Version:5.1,92,!No source in repo -AntiFeatures:NonFreeNet - Market Version:5.1 Market Version Code:92 + diff --git a/metadata/com.namelessdev.mpdroid.txt b/metadata/com.namelessdev.mpdroid.txt index 3d7d9bd6..0925f42d 100644 --- a/metadata/com.namelessdev.mpdroid.txt +++ b/metadata/com.namelessdev.mpdroid.txt @@ -1,17 +1,16 @@ Disabled:Doesn't build for me -#build/com.namelessdev.mpdroid/MPDroid/res/values/styles.xml:18: error: Error retrieving parent for item: No resource found that matches the given name '@android:style/Widget.Holo.ActionBar'. - -License:Apache2 Category:Multimedia +#build/com.namelessdev.mpdroid/MPDroid/res/values/styles.xml:18: error: Error retrieving parent for item: No resource found that matches the given name '@android:style/Widget.Holo.ActionBar'. +License:Apache2 Web Site:https://github.com/dreamteam69/dmix Source Code:https://github.com/dreamteam69/dmix Issue Tracker:https://github.com/dreamteam69/dmix/issues + Summary:MPD client Description: An MPD client which supports streaming. Can fetch cover art from last.fm. . - Repo Type:git Repo:https://github.com/dreamteam69/dmix.git @@ -21,3 +20,4 @@ cd ../JMPDComm/ && ant && mkdir ../MPDroid/libs/ && cp ../JMPDComm/JMPDComm.jar Market Version:0.7 Market Version Code:18 + diff --git a/metadata/com.nephoapp.anarxiv.txt b/metadata/com.nephoapp.anarxiv.txt index 82042771..3315f0d5 100644 --- a/metadata/com.nephoapp.anarxiv.txt +++ b/metadata/com.nephoapp.anarxiv.txt @@ -1,11 +1,14 @@ -License:Apache2 Category:Internet +License:Apache2 Web Site:http://www.nephoapp.com/ Source Code:https://github.com/nephoapp/anarxiv Issue Tracker: + Summary:arxiv.org client Description: Browse papers released on arxiv.org . + Market Version:0.3 Market Version Code:3 + diff --git a/metadata/com.nexes.manager.txt b/metadata/com.nexes.manager.txt index 69a5c688..a9754a59 100644 --- a/metadata/com.nexes.manager.txt +++ b/metadata/com.nexes.manager.txt @@ -1,9 +1,9 @@ -Use Built:Yes -License:GPLv3+ Category:System +License:GPLv3+ Web Site:http://github.com/nexes/Android-File-Manager Source Code:http://github.com/nexes/Android-File-Manager Issue Tracker:http://github.com/nexes/Android-File-Manager/issues + Summary:A simple file browser and manager Description: A simple file browser and manager. @@ -18,3 +18,4 @@ Build Version:2.1.8,218,edf793a782861ae31648 Market Version:2.1.8 Market Version Code:218 + diff --git a/metadata/com.proch.practicehub.txt b/metadata/com.proch.practicehub.txt index 9627ac6b..17728a7c 100644 --- a/metadata/com.proch.practicehub.txt +++ b/metadata/com.proch.practicehub.txt @@ -1,9 +1,9 @@ -License:GPLv3 Category:Multimedia +License:GPLv3 Web Site:http://code.google.com/p/music-practice-tools/ Source Code:http://code.google.com/p/music-practice-tools/source/checkout Issue Tracker:http://code.google.com/p/music-practice-tools/issues/list -Donate: + Summary:Tools for musicians Description: Tools for musicians, including a chromoatic tuner, a metronome, and a pitch @@ -17,3 +17,4 @@ Build Version:1.0,1,109c0bddf346 Market Version:1.0 Market Version Code:1 + diff --git a/metadata/com.replica.replicaisland.txt b/metadata/com.replica.replicaisland.txt index 6d90f4fa..4c8f6fdb 100644 --- a/metadata/com.replica.replicaisland.txt +++ b/metadata/com.replica.replicaisland.txt @@ -1,9 +1,9 @@ -Use Built:Yes -License:Apache2 Category:Games +License:Apache2 Web Site:http://www.replicaisland.net/ Source Code:http://code.google.com/p/replicaisland/source/checkout Issue Tracker:http://code.google.com/p/replicaisland/issues/list + Summary:Side-scrolling platform game Description: Guide the Android robot through 40 action-packed platforming levels on a quest to @@ -19,3 +19,4 @@ Build Version:1.4,14,7 Market Version:1.4 Market Version Code:14 + diff --git a/metadata/com.ringdroid.txt b/metadata/com.ringdroid.txt index 13103103..ba9e3924 100644 --- a/metadata/com.ringdroid.txt +++ b/metadata/com.ringdroid.txt @@ -1,9 +1,9 @@ -Use Built:Yes -License:Apache2 Category:Multimedia +License:Apache2 Web Site:http://code.google.com/p/ringdroid/ Source Code:http://code.google.com/p/ringdroid/source/checkout Issue Tracker: + Summary:Ringtone editor Description: An application for editing and creating your own ringtones, alarms, and notification @@ -17,3 +17,4 @@ Build Version:2.5,20500,64,target=android-8 Market Version:2.5 Market Version Code:20500 + diff --git a/metadata/com.roozen.SoundManager.txt b/metadata/com.roozen.SoundManager.txt index 983aac32..c3731585 100644 --- a/metadata/com.roozen.SoundManager.txt +++ b/metadata/com.roozen.SoundManager.txt @@ -1,9 +1,9 @@ -Use Built:Yes -License:Apache2 Category:Multimedia +License:Apache2 Web Site:http://sites.google.com/site/roozenandroidapps/home/sound-manager Source Code:http://code.google.com/p/app-soundmanager/source/checkout Issue Tracker:http://code.google.com/p/app-soundmanager/issues/list + Summary:Volume level scheduler Description: Exposes all the audio volume controls, provides quick access to @@ -11,6 +11,7 @@ ringmode and vibration settings, and allows you to set timers to automatically change volumes at set times on any given day of the week. . + Repo Type:svn Repo:http://app-soundmanager.googlecode.com/svn/tags/ diff --git a/metadata/com.ryanm.minedroid.txt b/metadata/com.ryanm.minedroid.txt index c4be1fba..b654748c 100644 --- a/metadata/com.ryanm.minedroid.txt +++ b/metadata/com.ryanm.minedroid.txt @@ -1,10 +1,9 @@ -Use Built:Yes -License:New BSD Category:Games +License:New BSD Web Site:http://code.google.com/p/minedroid/ Source Code:http://code.google.com/p/minedroid/source/checkout Issue Tracker:http://code.google.com/p/minedroid/issues/list -Donate: + Summary:Experimental Minecraft Client Description: An experimental Minecraft client. @@ -15,4 +14,3 @@ Repo:http://minedroid.googlecode.com/svn/trunk/ #Needs DroidRUGL to build. #Build Version:Extra lucky bugfix edition,13,47,subdir=MineDroid - diff --git a/metadata/com.serone.desktoplabel.txt b/metadata/com.serone.desktoplabel.txt index 828a9f79..b4c4d775 100644 --- a/metadata/com.serone.desktoplabel.txt +++ b/metadata/com.serone.desktoplabel.txt @@ -1,11 +1,14 @@ -License:GPLv3+ Category:Office +License:GPLv3+ Web Site:http://code.google.com/p/desktoplabel/ Source Code:http://code.google.com/p/desktoplabel/source/checkout Issue Tracker:http://code.google.com/p/desktoplabel/issues/list + Summary:Custom desktop label widgets Description: Allows you to add custom widgets to your 'desktop' to label things. . + Market Version:1.3.0 Market Version Code:6 + diff --git a/metadata/com.smorgasbork.hotdeath.txt b/metadata/com.smorgasbork.hotdeath.txt index 2a7e249b..2e3b6527 100644 --- a/metadata/com.smorgasbork.hotdeath.txt +++ b/metadata/com.smorgasbork.hotdeath.txt @@ -1,9 +1,9 @@ -License:GPLv3 Category:Games +License:GPLv3 Web Site:http://code.google.com/p/hotdeath/ Source Code:http://code.google.com/p/hotdeath/source/checkout Issue Tracker:http://code.google.com/p/hotdeath/issues/list -Donate: + Summary:Card game Description: A variant of the classic card game Uno @@ -16,3 +16,4 @@ Build Version:1.0.2,3,26 Market Version:1.0.2 Market Version Code:3 + diff --git a/metadata/com.teleca.jamendo.txt b/metadata/com.teleca.jamendo.txt index 344f52a7..17f99aa7 100644 --- a/metadata/com.teleca.jamendo.txt +++ b/metadata/com.teleca.jamendo.txt @@ -1,9 +1,9 @@ -Use Built:Yes -License:Apache2 Category:Multimedia +License:Apache2 Web Site:http://telecapoland.github.com/jamendo-android/ Source Code:http://github.com/telecapoland/jamendo-android Issue Tracker:http://github.com/telecapoland/jamendo-android/issues + Summary:Jamendo (FaiF music) player Description: A music player tied to the Jamendo site, a large resource of FaiF music. @@ -20,3 +20,4 @@ Build Version:1.0.3 [BETA],34,!No source in repo Market Version:1.0.4 [BETA] Market Version Code:35 + diff --git a/metadata/com.textuality.lifesaver2.txt b/metadata/com.textuality.lifesaver2.txt index 9f6704c8..2e912022 100644 --- a/metadata/com.textuality.lifesaver2.txt +++ b/metadata/com.textuality.lifesaver2.txt @@ -1,11 +1,14 @@ -License:Apache2 Category:System +License:Apache2 Web Site:http://www.tbray.org/ongoing/When/201x/2010/04/25/LifeSaver-Lessons Source Code:http://code.google.com/p/lifesaver/ Issue Tracker:http://code.google.com/p/lifesaver/issues/list + Summary:SMS and call log backup/restore Description: A simple backup and restore of your SMS and call logs. . + Market Version:1.0 Market Version Code:3 + diff --git a/metadata/com.tj.qotd.txt b/metadata/com.tj.qotd.txt index b1081acd..3b8b17b4 100644 --- a/metadata/com.tj.qotd.txt +++ b/metadata/com.tj.qotd.txt @@ -1,15 +1,18 @@ Disabled:Can't identify release -Use Built:Yes Category:Games +License:Unknown Web Site:https://github.com/thibault/OpenQOTD Source Code:https://github.com/thibault/OpenQOTD Issue Tracker:https://github.com/thibault/OpenQOTD/issues + Summary:Widget to display random quotes Description: A simple widget that displays random quotes in English or French. . + Repo Type:git Repo:https://github.com/thibault/OpenQOTD.git Market Version:1.0.1 Market Version Code:2 + diff --git a/metadata/com.totsp.bookworm.txt b/metadata/com.totsp.bookworm.txt index 0b8f9327..5c6bf917 100644 --- a/metadata/com.totsp.bookworm.txt +++ b/metadata/com.totsp.bookworm.txt @@ -1,9 +1,9 @@ -Use Built:Yes -License:Apache2 Category:Office +License:Apache2 Web Site:http://code.google.com/p/and-bookworm/ Source Code:http://code.google.com/p/and-bookworm/source/checkout Issue Tracker:http://code.google.com/p/and-bookworm/issues/list + Summary:Book collection manager Description: BookWorm allows you to keep track of books you have read and those you @@ -20,3 +20,4 @@ Build Version:1.0.18,19,574 Market Version:1.0.18 Market Version Code:19 + diff --git a/metadata/com.totsp.crossword.shortyz.txt b/metadata/com.totsp.crossword.shortyz.txt index 305855bc..9d387d27 100644 --- a/metadata/com.totsp.crossword.shortyz.txt +++ b/metadata/com.totsp.crossword.shortyz.txt @@ -1,9 +1,9 @@ -License:GPLv3 Category:Games +License:GPLv3 Web Site:http://code.google.com/p/shortyz/ Source Code:http://code.google.com/p/shortyz/source/checkout Issue Tracker:http://code.google.com/p/shortyz/issues/list -Donate: + Summary:Crossword game Description: Crossword game that downloads puzzles from a variety of internet locations. diff --git a/metadata/com.unitedcoders.android.gpodroid.txt b/metadata/com.unitedcoders.android.gpodroid.txt index 8f836e98..879ea869 100644 --- a/metadata/com.unitedcoders.android.gpodroid.txt +++ b/metadata/com.unitedcoders.android.gpodroid.txt @@ -1,8 +1,9 @@ -License:EPLv1 Category:Multimedia +License:EPLv1 Web Site:http://united-coders.com/gpodroid Source Code:https://github.com/gpodder/GpodRoid Issue Tracker:https://github.com/gpodder/GpodRoid/issues + Summary:gpodder.net client Description: A gpodder.net podcasting client. diff --git a/metadata/com.voidcode.diasporawebclient.txt b/metadata/com.voidcode.diasporawebclient.txt index 26d3c032..ec6573ca 100644 --- a/metadata/com.voidcode.diasporawebclient.txt +++ b/metadata/com.voidcode.diasporawebclient.txt @@ -1,10 +1,9 @@ - -License:GPLv3 Category:Internet +License:GPLv3 Web Site:https://github.com/voidcode/Diaspora-Webclient Source Code:https://github.com/voidcode/Diaspora-Webclient Issue Tracker: -Donate: + Summary:Diaspora Client Description: Client for the Diaspora social network. diff --git a/metadata/com.volosyukivan.txt b/metadata/com.volosyukivan.txt index 3ff11f5a..78e11d26 100644 --- a/metadata/com.volosyukivan.txt +++ b/metadata/com.volosyukivan.txt @@ -1,8 +1,9 @@ -License:GPLv2 Category:System +License:GPLv2 Web Site:http://code.google.com/p/wifikeyboard/ Source Code:http://code.google.com/p/wifikeyboard/source/checkout Issue Tracker:http://code.google.com/p/wifikeyboard/issues/list + Summary:Remote WiFi keyboard Description: Use a remote browser over WiFi as a keyboard for the Android device. diff --git a/metadata/com.wanghaus.remembeer.txt b/metadata/com.wanghaus.remembeer.txt index 708b10e5..6c692951 100644 --- a/metadata/com.wanghaus.remembeer.txt +++ b/metadata/com.wanghaus.remembeer.txt @@ -1,9 +1,10 @@ -Use Built:Yes -License:Expat +AntiFeatures:NonFreeNet Category:Office +License:Expat Web Site:http://remembeer.info Source Code:https://code.discordians.net/projects/remembeer/repository Issue Tracker:https://code.discordians.net/projects/remembeer/issues + Summary:Track and rate the beers you drink. Description: Remembeer lets you track and rate the beers you drink. No more trying @@ -17,7 +18,6 @@ Repo:git://code.discordians.net/srv/git/remembeer.git Build Version:1.2.2,48,c9d64e35964e9c445749aa02e470354b5788d8b4,target=android-4,subdir=android,prebuild=mv lib libs Build Version:1.3.0,50,319231627d207cf7fb1d2ac23ada0ffdd486230c,target=android-4,subdir=android,prebuild=mv lib libs -AntiFeatures:NonFreeNet - Market Version:1.3.0 Market Version Code:50 + diff --git a/metadata/com.webworxshop.swallowcatcher.txt b/metadata/com.webworxshop.swallowcatcher.txt index f4e390b8..0a789d88 100644 --- a/metadata/com.webworxshop.swallowcatcher.txt +++ b/metadata/com.webworxshop.swallowcatcher.txt @@ -1,10 +1,9 @@ -Use Built:Yes -License:AGPL Category:Internet +License:AGPL Web Site:http://blog.webworxshop.com/projects/swallowcatcher Source Code:http://gitorious.org/swallowcatcher Issue Tracker: -Donate: + Summary:Podcast client Description: A podcatcher. diff --git a/metadata/com.zegoggles.gist.txt b/metadata/com.zegoggles.gist.txt index a0419ab5..6265cad3 100644 --- a/metadata/com.zegoggles.gist.txt +++ b/metadata/com.zegoggles.gist.txt @@ -1,9 +1,9 @@ -Use Built:Yes -License:MIT Category:Internet +License:MIT Web Site:https://github.com/jberkel/gist-it#readme Source Code:https://github.com/jberkel/gist-it Issue Tracker:https://github.com/jberkel/gist-it/issues + Summary:Android gist API client written in Scala Description: Create and edit gists (snippets of text hosted at https://gist.github.com) with @@ -12,5 +12,7 @@ this Android app. Repo Type:git Repo:https://github.com/jberkel/gist-it.git + Market Version:0.1.4 Market Version Code:5 + diff --git a/metadata/com.zegoggles.smssync.txt b/metadata/com.zegoggles.smssync.txt index 82fe9746..20d996c2 100644 --- a/metadata/com.zegoggles.smssync.txt +++ b/metadata/com.zegoggles.smssync.txt @@ -1,10 +1,10 @@ Disabled:Non-free blob -Use Built:Yes -License:Apache2 Category:System +License:Apache2 Web Site:https://github.com/jberkel/sms-backup-plus#readme Source Code:https://github.com/jberkel/sms-backup-plus#readme Issue Tracker:https://github.com/jberkel/sms-backup-plus/issues + Summary:Backup SMS and call logs to IMAP Description: Backups up SMS and call log data from the device to an IMAP server, or @@ -20,3 +20,4 @@ Build Version:1.4.5,1406,1.4.5,target=android-10,prebuild=mv lib libs Market Version:1.4.5 Market Version Code:1406 + diff --git a/metadata/cz.romario.opensudoku.txt b/metadata/cz.romario.opensudoku.txt index f5390ec9..caffa4c5 100644 --- a/metadata/cz.romario.opensudoku.txt +++ b/metadata/cz.romario.opensudoku.txt @@ -1,15 +1,16 @@ -Use Built:Yes -License:GPLv3 Category:Games +License:GPLv3 Web Site:http://code.google.com/p/opensudoku-android/ Source Code:http://code.google.com/p/opensudoku-android/source/checkout Issue Tracker:http://code.google.com/p/opensudoku-android/issues/list + Summary:Sudoku game Description: OpenSudoku is a simple open source sudoku game. It's designed to be controlled both by finger and keyboard. It's preloaded with 90 puzzles in 3 difficulty levels. More puzzles can be downloaded from the web and it also allows you to enter your own. . + Repo Type:svn Repo:http://opensudoku-android.googlecode.com/svn/trunk/OpenSudoku @@ -18,3 +19,4 @@ Build Version:1.1.5,1105,412 Market Version:1.1.5 Market Version Code:1105 + diff --git a/metadata/de.blau.android.Application.txt b/metadata/de.blau.android.Application.txt index e464e3f7..09b971be 100644 --- a/metadata/de.blau.android.Application.txt +++ b/metadata/de.blau.android.Application.txt @@ -1,11 +1,9 @@ - -Use Built:Yes -License:Apache2 Category:Navigation +License:Apache2 Web Site:https://code.google.com/p/osmeditor4android Source Code:https://code.google.com/p/osmeditor4android/source/checkout Issue Tracker:https://code.google.com/p/osmeditor4android/issues/list -Donate: + Summary:OSM Editor Description: OpenStreemMap editor. diff --git a/metadata/de.joergjahnke.c64.android.txt b/metadata/de.joergjahnke.c64.android.txt index 43b79643..eba11942 100644 --- a/metadata/de.joergjahnke.c64.android.txt +++ b/metadata/de.joergjahnke.c64.android.txt @@ -1,13 +1,16 @@ Disabled:Field-of-use restriction issues with included ROM binary -License:GPL Category:Games -Name:Mobile C64 +License:GPL Web Site:http://jmec64.sourceforge.net/ Source Code:http://sourceforge.net/projects/jmec64/develop Issue Tracker:http://sourceforge.net/tracker/?group_id=171310 + +Name:Mobile C64 Summary:Commodore 64 Emulator Description: A Commodore 64 (C64) emulator. . + Market Version:1.5.13 Market Version Code:10513 + diff --git a/metadata/de.shandschuh.slightbackup.txt b/metadata/de.shandschuh.slightbackup.txt index 60855536..1a131513 100644 --- a/metadata/de.shandschuh.slightbackup.txt +++ b/metadata/de.shandschuh.slightbackup.txt @@ -1,8 +1,9 @@ -Use Built:Yes -License:MIT Category:System +License:MIT Web Site:https://github.com/handschuh/Slight-backup Source Code:https://github.com/handschuh/Slight-backup +Issue Tracker: + Summary:A very simple backup program. Description: A very simple program that can be used to backup @@ -22,3 +23,4 @@ Build Version:0.4.3,13,093cf46438b95cc379139792f7093739dcdfc2a7,target=android-1 Market Version:0.4.3 Market Version Code:13 + diff --git a/metadata/de.shandschuh.sparserss.txt b/metadata/de.shandschuh.sparserss.txt index 9b17fa57..8e1f07b6 100644 --- a/metadata/de.shandschuh.sparserss.txt +++ b/metadata/de.shandschuh.sparserss.txt @@ -1,9 +1,9 @@ -Use Built:Yes - -License:MIT Category:Internet +License:MIT Web Site:http://code.google.com/p/sparserss/ Source Code:http://code.google.com/p/sparserss/source/checkout +Issue Tracker: + Summary:Simple feed reader Description: A simple and lightweight feed reader with automatic background update and @@ -23,6 +23,6 @@ Build Version:1.2.2,68,183,target=android-8 Build Version:1.3,69,197,target=android-8 Build Version:1.3.1,70,210,target=android-10 - Market Version:1.3.2 Market Version Code:71 + diff --git a/metadata/de.ub0r.android.adBlock.txt b/metadata/de.ub0r.android.adBlock.txt index 19095579..5d6788bb 100644 --- a/metadata/de.ub0r.android.adBlock.txt +++ b/metadata/de.ub0r.android.adBlock.txt @@ -1,9 +1,9 @@ -Use Built:Yes -License:GPLv3+ Category:System +License:GPLv3+ Web Site:http://code.google.com/p/andblock/ Source Code:https://github.com/felixb/adBlock Issue Tracker:http://code.google.com/p/andblock/issues/list + Summary:Ad-blocking HTTP proxy Description: Blocks advertisements on the web by filtering requests by URL. @@ -16,3 +16,4 @@ Build Version:0.5,5,v0.5,oldsdkloc=yes Market Version:0.5 Market Version Code:5 + diff --git a/metadata/de.ub0r.android.callmeter.txt b/metadata/de.ub0r.android.callmeter.txt index b573027f..4bde3529 100644 --- a/metadata/de.ub0r.android.callmeter.txt +++ b/metadata/de.ub0r.android.callmeter.txt @@ -1,14 +1,15 @@ -License:GPL3+ +AntiFeatures:Ads Category:System +License:GPL3+ Web Site:https://code.google.com/p/callmeter/ Source Code:http://github.com/felixb/callmeter Issue Tracker:https://code.google.com/p/callmeter/issues/list + Summary:keep track of calls, messages and data transfer Description: CallMeter is an Android application summing up your call and text logs. Different billing modes and periods are take into account on summing. . -AntiFeatures:Ads - Market Version:3.0 Market Version Code:2836 + diff --git a/metadata/dk.andsen.asqlitemanager.txt b/metadata/dk.andsen.asqlitemanager.txt index d7fad887..62b2ae46 100644 --- a/metadata/dk.andsen.asqlitemanager.txt +++ b/metadata/dk.andsen.asqlitemanager.txt @@ -1,10 +1,9 @@ - -License:EUPL Category:System +License:EUPL Web Site:http://aaa.andsen.dk/aSQLiteManager.html Source Code:http://sourceforge.net/scm/?type=svn&group_id=362274 Issue Tracker:http://sourceforge.net/tracker/?group_id=362274 -Donate: + Summary:SQLite Frontend Description: Front end allowing management of SQLite databases. @@ -18,3 +17,4 @@ Build Version:2.7,9,204,subdir=aSQLiteManager,target=android-10 Market Version:2.7 Market Version Code:9 + diff --git a/metadata/edu.nyu.cs.omnidroid.app.txt b/metadata/edu.nyu.cs.omnidroid.app.txt index 33ef1274..f12b9a8e 100644 --- a/metadata/edu.nyu.cs.omnidroid.app.txt +++ b/metadata/edu.nyu.cs.omnidroid.app.txt @@ -1,9 +1,9 @@ - +Category:System License:Apache2 Web Site:http://code.google.com/p/omnidroid/ Source Code:http://code.google.com/p/omnidroid/source/checkout Issue Tracker:http://code.google.com/p/omnidroid/issues/list -Category:System + Summary:Automated Event Handler Description: Omnidroid is an automated event/action manager that allows users to automate @@ -21,3 +21,4 @@ Build Version:0.2.2,7,!Apparently no source code exists for this Market Version:0.2.2 Market Version Code:7 + diff --git a/metadata/edu.rit.poe.atomix.txt b/metadata/edu.rit.poe.atomix.txt index 4e127de8..c30e0b13 100644 --- a/metadata/edu.rit.poe.atomix.txt +++ b/metadata/edu.rit.poe.atomix.txt @@ -1,15 +1,18 @@ -License:GPLv2 Category:Games +License:GPLv2 Web Site:http://code.google.com/p/droid-atomix/ Source Code:http://code.google.com/p/droid-atomix/source/checkout Issue Tracker:http://code.google.com/p/droid-atomix/issues/list + Summary:Puzzle game Description: This is a puzzle game to build molecules from individual atoms. Atoms can move left, right, up or down, and will continue to slide until they hit any obstacle. . + Repo Type:hg Repo:https://droid-atomix.googlecode.com/hg/ -Use Built:Yes + Build Version:1.0.1,2,ea2086d1f9fe759866008f6fe5187fc1cc97bd1d,target=android-4,prebuild=sed -i -e "/key\.alias.*/d" -e "/key\.store.*/d" *.properties + diff --git a/metadata/es.prodevelop.gvsig.mini.txt b/metadata/es.prodevelop.gvsig.mini.txt index dee1dfaa..b49b5214 100644 --- a/metadata/es.prodevelop.gvsig.mini.txt +++ b/metadata/es.prodevelop.gvsig.mini.txt @@ -1,11 +1,14 @@ -License:GPLv2 Category:Navigation +License:GPLv2 Web Site:https://confluence.prodevelop.es/display/GVMN/Home Source Code:https://svn.prodevelop.es/public/gvsigmini/ Issue Tracker: + Summary:Tile-based map viewer Description: A tile-based map viewer with support for maps from many sources. . + Market Version:1.2.3 Market Version Code:457 + diff --git a/metadata/fm.libre.droid.txt b/metadata/fm.libre.droid.txt index b805f213..0984298a 100644 --- a/metadata/fm.libre.droid.txt +++ b/metadata/fm.libre.droid.txt @@ -1,19 +1,20 @@ -License:GPLv3+ Category:Multimedia +License:GPLv3+ Web Site:http://libre.fm Source Code:http://gitorious.org/foocorp/gnu-fm/trees/master/clients/libredroid Issue Tracker: + Summary:Client for Libre.fm Description: A streaming radio player client for Libre.fm. . -Market Version:1.4 -Market Version Code:4 - Repo Type:git Repo:git://gitorious.org/foocorp/gnu-fm.git Build Version:1.4,4,926fde6d208190a1fffef12a47bb231f908125e8,subdir=clients/libredroid Build Version:1.2,3,4ebfcf224745ca443a308463721e4f8001293f15,subdir=clients/libredroid +Market Version:1.4 +Market Version Code:4 + diff --git a/metadata/fr.seeks.txt b/metadata/fr.seeks.txt index b12ac51d..828a6f06 100644 --- a/metadata/fr.seeks.txt +++ b/metadata/fr.seeks.txt @@ -1,9 +1,9 @@ -License:GPLv3 Category:Internet +License:GPLv3 Web Site:http://www.seeks-project.info/site/ Source Code:https://github.com/sileht/SeeksWidget Issue Tracker:http://redmine.seeks-project.info/projects/seeks -Donate: + Summary:Widget for Seeks web service Description: A widget for the Seeks web service, a decentralised search engine. @@ -16,3 +16,4 @@ Build Version:1.2,4,1.2 Market Version:1.2 Market Version Code:4 + diff --git a/metadata/goo.TeaTimer.txt b/metadata/goo.TeaTimer.txt index 1dd09158..fcff73bf 100644 --- a/metadata/goo.TeaTimer.txt +++ b/metadata/goo.TeaTimer.txt @@ -1,9 +1,9 @@ -Use Built:Yes -License:GPLv3 Category:Office +License:GPLv3 Web Site:http://solidsushi.com/lab/teatimer Source Code:http://github.com/ralphleon/TeaTimer Issue Tracker:https://github.com/ralphleon/TeaTimer/issues + Summary:Simple Tea Timer Description: A straight-forward tea timer @@ -17,3 +17,4 @@ Build Version:1.7,10,!No source in repo Market Version:1.7 Market Version Code:10 + diff --git a/metadata/info.guardianproject.browser.txt b/metadata/info.guardianproject.browser.txt index 9027aedd..c77daf1d 100644 --- a/metadata/info.guardianproject.browser.txt +++ b/metadata/info.guardianproject.browser.txt @@ -1,9 +1,9 @@ -License:GPLv2 Category:Internet +License:GPLv2 Web Site:https://guardianproject.info/apps/orweb/ Source Code:https://github.com/guardianproject/orweb Issue Tracker:https://github.com/guardianproject/orweb/issues -Donate: + Summary:Proxy + Privacy Browser Description: Orweb is a companion browser for Orbot, the port of Tor to Android. Orweb provides anonymous and uncensored access to the web from Android devices. @@ -14,6 +14,6 @@ Repo:git://github.com/guardianproject/Orweb.git Build Version:0.2.2,3,460a5a92bc5a426f7ff710f03bc1341359a17d4b - Market Version:0.2.2 Market Version Code:4 + diff --git a/metadata/info.guardianproject.cacert.txt b/metadata/info.guardianproject.cacert.txt index 6d3b4f3e..29d783f0 100644 --- a/metadata/info.guardianproject.cacert.txt +++ b/metadata/info.guardianproject.cacert.txt @@ -1,10 +1,9 @@ Category:System -Requires Root:Yes License:GPLv3 Web Site:https://guardianproject.info/2011/09/05/cacertman-app-to-address-diginotar-other-bad-cas/ Source Code:https://github.com/guardianproject/cacert Issue Tracker:https://github.com/guardianproject/cacert/issues -Donate: + Summary:A slightly more vetted version of the Android CACert keystore Description: A slightly more vetted version of the Android CACert keystore @@ -16,6 +15,8 @@ If the ‘save’ doesn’t work, then you will need to use ‘RootExplorer’ t *** . +Requires Root:Yes + Repo Type:git Repo:https://github.com/guardianproject/cacert.git diff --git a/metadata/info.guardianproject.otr.app.im.txt b/metadata/info.guardianproject.otr.app.im.txt index 324b13a6..a4bb6bf2 100644 --- a/metadata/info.guardianproject.otr.app.im.txt +++ b/metadata/info.guardianproject.otr.app.im.txt @@ -1,18 +1,20 @@ -License:Apache2 +Disabled: Seems to early in the development cycle to build a release Category:Internet +License:Apache2 Web Site:https://guardianproject.info/apps/gibber/ Source Code:https://github.com/guardianproject/OtRChat Issue Tracker:https://github.com/guardianproject/OtRChat/issues + Summary:XMPP client with OTR support Description: Gibber is an XMPP (Jabber) client based on Google's Talk IM App. It adds support for end-to-end encryption with Off-the-Record Messaging and for Tor via Orbot. . + Repo Type:git Repo:https://github.com/guardianproject/OtRChat.git -Disabled: Seems to early in the development cycle to build a release - Market Version:0.0.5-RC5 Market Version Code:21 + diff --git a/metadata/info.lamatricexiste.network.txt b/metadata/info.lamatricexiste.network.txt index 460b96ba..731998b2 100644 --- a/metadata/info.lamatricexiste.network.txt +++ b/metadata/info.lamatricexiste.network.txt @@ -1,10 +1,9 @@ -Use Built:Yes -License:GPLv2 Category:System +License:GPLv2 Web Site:http://rorist.github.com/android-network-discovery/ Source Code:http://rorist.github.com/android-network-discovery/ Issue Tracker:https://github.com/rorist/android-network-discovery/issues -Donate: + Summary:Network discovery tool Description: Discover network (WiFi/3G) hosts, scan ports, etc. @@ -17,3 +16,4 @@ Build Version:0.3.4,42,32bffddce7e37a3c12f8,oldsdkloc=yes Market Version:0.3.4 Market Version Code:42 + diff --git a/metadata/info.staticfree.android.units.txt b/metadata/info.staticfree.android.units.txt index 14781081..b72fcc0f 100644 --- a/metadata/info.staticfree.android.units.txt +++ b/metadata/info.staticfree.android.units.txt @@ -1,21 +1,23 @@ -Use Built:Yes -License:GPLv3+ Category:Office +License:GPLv3+ Web Site:http://staticfree.info/projects/units/ Source Code:http://staticfree.info/projects/units/ Issue Tracker: + Summary:Powerful unit converter Description: A powerful unit-aware calculator and converter inspired by GNU Units. . + Repo Type:git Repo:git://staticfree.info/git/Units/ + Build Version:0.8,7,8be8c10c67152783b6871a70d077a0758e5086ba Build Version:0.9,8,3cde1f8d6b822ddcee23f984fab53e7bad3817df #Commenting the following out because it doesn't build.... #src/info/staticfree/android/units/Units.java:32: package org.jared.commons.ui does not exist #Build Version:1.0,9,1db6cd055203bd2f15eaffd7a780db2ee22974af - Market Version:1.0 Market Version Code:9 + diff --git a/metadata/me.guillaumin.android.osmtracker.txt b/metadata/me.guillaumin.android.osmtracker.txt index 40442072..1b5e73d6 100644 --- a/metadata/me.guillaumin.android.osmtracker.txt +++ b/metadata/me.guillaumin.android.osmtracker.txt @@ -1,10 +1,9 @@ -Use Built:Yes -License:GPLv3 Category:Navigation +License:GPLv3 Web Site:https://code.google.com/p/osmtracker-android/ Source Code:https://github.com/nguillaumin/osmtracker-android Issue Tracker:https://code.google.com/p/osmtracker-android/issues/list -Donate: + Summary:GPS Track Recorder Description: OSMTracker allows you to track your journey and mark significant way points. @@ -21,3 +20,4 @@ Build Version:0.5.6,21,0.5.6,target=android-8 Market Version:0.5.6 Market Version Code:21 + diff --git a/metadata/mixedbit.speechtrainer.txt b/metadata/mixedbit.speechtrainer.txt index 8ef3a577..1f2839b2 100644 --- a/metadata/mixedbit.speechtrainer.txt +++ b/metadata/mixedbit.speechtrainer.txt @@ -1,9 +1,9 @@ -License:GPLv3 Category:Multimedia +License:GPLv3 Web Site:http://mixedbit.org/ Source Code:https://github.com/wrr/speech_trainer Issue Tracker: -Donate: + Summary:Speech training Description: Gives immediate feedback on the sound of your voice for training pronunciation, @@ -18,3 +18,4 @@ Build Version:1.01,2,109eba6da3eac93c6e0d445f488433452387f815,subdir=app,target= Market Version:1.01 Market Version Code:2 + diff --git a/metadata/name.bagi.levente.pedometer.txt b/metadata/name.bagi.levente.pedometer.txt index 73244055..94736bba 100644 --- a/metadata/name.bagi.levente.pedometer.txt +++ b/metadata/name.bagi.levente.pedometer.txt @@ -1,9 +1,9 @@ -Use Built:Yes -License:GPLv3 Category:Navigation +License:GPLv3 Web Site:https://code.google.com/p/pedometer/ Source Code:https://github.com/bagilevi/android-pedometer Issue Tracker:https://code.google.com/p/pedometer/issues/list + Summary:Pedometer Description: A step counter with speed, distance, steps-per-minute and text-to-speech. @@ -13,5 +13,7 @@ Repo Type:git Repo:https://github.com/bagilevi/android-pedometer.git Build Version:1.4.1,6,1.4.1 + Market Version:1.4.1 Market Version Code:6 + diff --git a/metadata/net.avs234.txt b/metadata/net.avs234.txt index f000cb33..e3f1b6af 100644 --- a/metadata/net.avs234.txt +++ b/metadata/net.avs234.txt @@ -1,16 +1,19 @@ -License:GPLv2+ Category:Multimedia +License:GPLv2+ Web Site:http://code.google.com/p/andless/ Source Code:http://code.google.com/p/andless/source/checkout Issue Tracker:http://code.google.com/p/andless/issues/list + Summary:Audio player for lossless files Description: Audio player that plays lossless files (FLAC/APE/MPC/WV) as well as any formats natively supported by Android. CUE sheets and playlists are also supported. . + Repo Type:svn Repo:http://andless.googlecode.com/svn/trunk/ Market Version:1.3.3 Market Version Code:10 + diff --git a/metadata/net.bytten.xkcdviewer.txt b/metadata/net.bytten.xkcdviewer.txt index c1875f9d..dc2f99b0 100644 --- a/metadata/net.bytten.xkcdviewer.txt +++ b/metadata/net.bytten.xkcdviewer.txt @@ -1,14 +1,15 @@ -Use Built:Yes -License:GPLv2+ Category:Internet +License:GPLv2+ Web Site:https://github.com/tcoxon/XkcdViewer Source Code:https://github.com/tcoxon/XkcdViewer Issue Tracker:https://github.com/tcoxon/XkcdViewer/issues + Summary:Viewer for the xkcd.com webcomic Description: Shows comics from xkcd.com, including alt-text. Also provides support for bookmarks and easy navigation. . + Repo Type:git Repo:https://github.com/tcoxon/XkcdViewer.git @@ -18,3 +19,4 @@ Build Version:3.0.2,21,v3.0.2,target=android-10 Market Version:3.0.2 Market Version Code:21 + diff --git a/metadata/net.cactii.mathdoku.txt b/metadata/net.cactii.mathdoku.txt index 09c9c26f..59daa2b6 100644 --- a/metadata/net.cactii.mathdoku.txt +++ b/metadata/net.cactii.mathdoku.txt @@ -1,9 +1,9 @@ -Use Built:Yes -License:GPLv3 Category:Games +License:GPLv3 Web Site:http://code.google.com/p/mathdoku/ Source Code:http://code.google.com/p/mathdoku/source/checkout Issue Tracker:http://code.google.com/p/mathdoku/issues/list + Summary:Sudoku-like game based on KenKen(TM) Description: A sudoku-like game with a mathematical twist. Based on KenKen(TM). @@ -16,3 +16,4 @@ Build Version:1.8,70,70 Market Version:1.8 Market Version Code:70 + diff --git a/metadata/net.dahanne.android.regalandroid.txt b/metadata/net.dahanne.android.regalandroid.txt index a8088824..826da7a4 100644 --- a/metadata/net.dahanne.android.regalandroid.txt +++ b/metadata/net.dahanne.android.regalandroid.txt @@ -1,12 +1,15 @@ -License:GPLv3 Category:Internet +License:GPLv3 Web Site:http://code.google.com/p/regalandroid/ Source Code:https://github.com/anthonydahanne/ReGalAndroid Issue Tracker:http://code.google.com/p/regalandroid/issues/list + Summary:Gallery client for G2/3 and Piwigo Description: A gallery client with support for G2 and G3 (also known as Menalto Gallery) and Piwigo. . + Market Version:1.1.2 Market Version Code:5 + diff --git a/metadata/net.fercanet.LNM.txt b/metadata/net.fercanet.LNM.txt index 948b474e..45c68edd 100644 --- a/metadata/net.fercanet.LNM.txt +++ b/metadata/net.fercanet.LNM.txt @@ -1,14 +1,14 @@ -Use Built:Yes -License:GPLv3 Category:Games +License:GPLv3 Web Site:http://learnmusicnotes.sourceforge.net/ Source Code:http://sourceforge.net/projects/learnmusicnotes/develop Issue Tracker:http://sourceforge.net/tracker/?group_id=371992 -Donate: + Summary:Music sight reading training game Description: A simple game to assist with music sight reading training. . + Repo Type:svn Repo:https://learnmusicnotes.svn.sourceforge.net/svnroot/learnmusicnotes/trunk @@ -17,3 +17,4 @@ Build Version:1.4,5,!No source for this version in the repo Market Version:1.4 Market Version Code:5 + diff --git a/metadata/net.gaast.giggity.txt b/metadata/net.gaast.giggity.txt index b1269627..17f45290 100644 --- a/metadata/net.gaast.giggity.txt +++ b/metadata/net.gaast.giggity.txt @@ -1,20 +1,22 @@ -Use Built:Yes -License:GPLv2 Category:Office +License:GPLv2 Web Site:http://wilmer.gaa.st/main.php/giggity.html Source Code:http://wilmer.gaa.st/main.php/giggity.html Issue Tracker: + Summary:Schedule viewer Description: An application that loads xcal/Pentabarf XML files (that contain schedules of conferences/festivals/other events) and lets you browse them in various convenient formats. Preloaded with data for FOSDEM. . + Repo Type:bzr Repo:http://wilmer.gaa.st/giggity/ Build Version:0.8.1,4,133 -#There is a 0.8.2 in the market, but the repo source doesn't seem to correspond +#There is a 0.8.2 in the market, but the repo source doesn't seem to correspond Market Version:0.9.8 Market Version Code:16 + diff --git a/metadata/net.gorry.aicia.txt b/metadata/net.gorry.aicia.txt index 9b43fc03..309acaee 100644 --- a/metadata/net.gorry.aicia.txt +++ b/metadata/net.gorry.aicia.txt @@ -1,10 +1,14 @@ -License:Apache2 Category:Internet +License:Apache2 Web Site:http://gorry.haun.org/android/aicia/ Source Code:http://gorry.haun.org/android/aicia/dist/old/ +Issue Tracker: + Summary:IRC client Description: Internet Relay Chat client with a twin-pane view. . + Market Version:2011.0622.1 Market Version Code:201106221 + diff --git a/metadata/net.jaqpot.netcounter.txt b/metadata/net.jaqpot.netcounter.txt index f4fcc8a7..0e11ab31 100644 --- a/metadata/net.jaqpot.netcounter.txt +++ b/metadata/net.jaqpot.netcounter.txt @@ -1,13 +1,16 @@ -License:GPLv3 Category:System +License:GPLv3 Web Site:http://www.jaqpot.net/netcounter/ Source Code:http://www.jaqpot.net/netcounter/ Issue Tracker: + Summary:Bandwidth usage tracker Description: NetCounter keeps track of your bandwidth usage (both cell and Wi-Fi) and displays it to you in an easy to read format. It can also alert you when you reach a predefined limit. . + Market Version:0.14.1 Market Version Code:22 + diff --git a/metadata/net.mafro.android.wakeonlan.txt b/metadata/net.mafro.android.wakeonlan.txt index e231009b..cd59613b 100644 --- a/metadata/net.mafro.android.wakeonlan.txt +++ b/metadata/net.mafro.android.wakeonlan.txt @@ -1,9 +1,9 @@ -Use Built:Yes -License:BSD Category:System +License:BSD Web Site:http://android.mafro.net/ Source Code:https://github.com/mafrosis/Wake-On-Lan Issue Tracker:https://github.com/mafrosis/Wake-On-Lan/issues + Summary:Wake-On-Lan Description: Sends Wake-On-Lan magic packets. @@ -16,3 +16,4 @@ Build Version:1.4.2,12,468312845057e78a70f7b6260f2b116042571c42 Market Version:1.4.2 Market Version Code:12 + diff --git a/metadata/net.osmand.plus.txt b/metadata/net.osmand.plus.txt index bb7c09a1..f00b190b 100644 --- a/metadata/net.osmand.plus.txt +++ b/metadata/net.osmand.plus.txt @@ -1,10 +1,10 @@ -Use Built:Yes Category:Navigation License:LGPL -Name:OsmAnd+ Web Site:http://code.google.com/p/osmand/ Source Code:https://github.com/osmandapp/Osmand Issue Tracker:http://code.google.com/p/osmand/issues/list + +Name:OsmAnd+ Summary:OpenStreetMap navigation & routing Description: Navigation and routing based on OpenStreetMap, including the ability for @@ -24,3 +24,4 @@ Build Version:0.6.9',43,!No corresponding source for whatever this is Market Version:0.6.9' Market Version Code:43 + diff --git a/metadata/net.osmand.txt b/metadata/net.osmand.txt index ae52a81d..8ca62bb5 100644 --- a/metadata/net.osmand.txt +++ b/metadata/net.osmand.txt @@ -1,9 +1,9 @@ -Use Built:Yes -License:LGPL Category:Navigation +License:LGPL Web Site:http://code.google.com/p/osmand/ Source Code:https://github.com/osmandapp/Osmand Issue Tracker:http://code.google.com/p/osmand/issues/list + Summary:OpenStreetMap navigation & routing Description: Navigation and routing based on OpenStreetMap, including the ability for @@ -16,6 +16,6 @@ Repo:https://github.com/osmandapp/Osmand.git Build Version:0.5.2,25,efc0e83a,subdir=OsmAnd,encoding=utf-8,prebuild=mkdir assets && mkdir raw Build Version:0.5.3,26,8e9d76ea685ea75d6c08,subdir=OsmAnd,encoding=utf-8,prebuild=mkdir assets && mkdir raw - Market Version:0.5.3 Market Version Code:26 + diff --git a/metadata/net.pierrox.mcompass.txt b/metadata/net.pierrox.mcompass.txt index fc52c991..5daaec02 100644 --- a/metadata/net.pierrox.mcompass.txt +++ b/metadata/net.pierrox.mcompass.txt @@ -1,11 +1,14 @@ -License:Apache2 Category:Navigation +License:Apache2 Web Site:http://www.pierrox.net/cmsms/open-source/marine-compass-2.html Source Code:http://svn.pierrox.net/mcompass/trunk Issue Tracker: + Summary:Compass Description: Uses the magnetic sensor to show the orientation. . + Market Version:2.5.1 Market Version Code:23 + diff --git a/metadata/net.rocrail.androc.txt b/metadata/net.rocrail.androc.txt index fb63fe3b..6f9e9fe5 100644 --- a/metadata/net.rocrail.androc.txt +++ b/metadata/net.rocrail.androc.txt @@ -1,9 +1,9 @@ -Use Built:Yes -License:GPLv3+ Category:Games +License:GPLv3+ Web Site:http://wiki.rocrail.net/doku.php?id=androc-intro-en Source Code:https://code.launchpad.net/~rocrail-project/rocrail/androc Issue Tracker:https://bugs.launchpad.net/rocrail + Summary:Model railway controller client Description: A controller client for RocRail, a model railway controller. @@ -11,6 +11,7 @@ A controller client for RocRail, a model railway controller. Repo Type:bzr Repo:lp:rocrail/androc + Build Version:1.1.219,219,219 Build Version:1.1.221,221,221 Build Version:1.2.224,224,!No source for this version in repo @@ -31,3 +32,4 @@ Build Version:1.5.324,324,324 Market Version:339 Market Version Code:339 + diff --git a/metadata/net.sf.andbatdog.batterydog.txt b/metadata/net.sf.andbatdog.batterydog.txt index f8f09db0..a9b4db3c 100644 --- a/metadata/net.sf.andbatdog.batterydog.txt +++ b/metadata/net.sf.andbatdog.batterydog.txt @@ -1,7 +1,9 @@ -License:GPLv2+ Category:System +License:GPLv2+ Web Site:http://andbatdog.sourceforge.net/ Source Code:http://sourceforge.net/projects/andbatdog/develop +Issue Tracker: + Summary:Battery level logger Description: Android Battery Dog is a watchdog application to facilitate long term @@ -9,14 +11,14 @@ analysis of the battery level. In addition to showing a graph of this information, the file “/sdcard/BatteryDog/battery.csv” is created containing the recorded battery levels together with a timestamp. . + Repo Type:svn Repo:https://andbatdog.svn.sourceforge.net/svnroot/andbatdog/trunk/AndroidBatteryDog/AndroidBatteryDog -Use Built:Yes # There is no source for 0.1.2 or 0.1.3. Build Version:0.1.1,11,22,encoding=iso-8859-1 - Build Version:0.1.3,13,!No source for 0.1.2 and newer Market Version:0.1.3 Market Version Code:13 + diff --git a/metadata/net.sourceforge.servestream.txt b/metadata/net.sourceforge.servestream.txt index 125b4435..e9ffcc3c 100644 --- a/metadata/net.sourceforge.servestream.txt +++ b/metadata/net.sourceforge.servestream.txt @@ -1,11 +1,9 @@ - -Use Built:Yes -License:Apache2 Category:Internet +License:Apache2 Web Site:http://sourceforge.net/projects/servestream/ Source Code:http://servestream.svn.sourceforge.net/viewvc/servestream/ Issue Tracker:http://sourceforge.net/tracker/?group_id=361303 -Donate: + Summary:Media server browser/stream player. Description: HTTP media server browser and stream player. For use with streaming media servers such as GNUMP3d. @@ -24,3 +22,4 @@ Build Version:0.3.1,48,659,prebuild=mv lib/ libs/ Market Version:0.4.3 Market Version Code:53 + diff --git a/metadata/net.status.client.mobile.txt b/metadata/net.status.client.mobile.txt index c06e5daa..264fe8a8 100644 --- a/metadata/net.status.client.mobile.txt +++ b/metadata/net.status.client.mobile.txt @@ -1,11 +1,14 @@ -License:Apache2 Category:Internet +License:Apache2 Web Site:http://status.net/wiki/Client Source Code:http://www.gitorious.org/statusnet-client Issue Tracker: + Summary:Official StatusNet client Description: The official client for StatusNet microblogging (which includes identi.ca). . + Market Version:1.0.4 Market Version Code:3 + diff --git a/metadata/net.sylvek.sharemyposition.txt b/metadata/net.sylvek.sharemyposition.txt index fcb8cc34..f5e4fd30 100644 --- a/metadata/net.sylvek.sharemyposition.txt +++ b/metadata/net.sylvek.sharemyposition.txt @@ -1,9 +1,9 @@ -Use Built:Yes -License: Category:Navigation +License: Web Site:http://code.google.com/p/sharemyposition Source Code:http://code.google.com/p/sharemyposition/source/checkout Issue Tracker:http://code.google.com/p/sharemyposition/issues/list + Summary:Share your location Description: A simple way of sharing your location via a widget. You can send a message @@ -25,3 +25,4 @@ Build Version:1.1.0-beta3,20,70,subdir=ShareMyPosition-android,target=android-11 Market Version:1.1.0-beta3 Market Version Code:20 + diff --git a/metadata/net.tapi.handynotes.txt b/metadata/net.tapi.handynotes.txt index 9679f48e..e7204344 100644 --- a/metadata/net.tapi.handynotes.txt +++ b/metadata/net.tapi.handynotes.txt @@ -1,9 +1,9 @@ -Use Built:Yes -License:GPLv3 Category:Office +License:GPLv3 Web Site:http://github.com/atd/HandyNotes Source Code:http://github.com/atd/HandyNotes Issue Tracker:http://github.com/atd/HandyNotes/issues + Summary:Sticky notes widget Description: Simple Android application that provides widgets to have notes at hand @@ -15,6 +15,6 @@ Repo:https://github.com/atd/HandyNotes.git Build Version:1.0,1,bd33550beaf014ebbe8d,target=android-8 Build Version:1.2,3,v1.2,target=android-8 - Market Version:1.2 Market Version Code:3 + diff --git a/metadata/net.tedstein.AndroSS.txt b/metadata/net.tedstein.AndroSS.txt index 8e2b8411..2e723bfb 100644 --- a/metadata/net.tedstein.AndroSS.txt +++ b/metadata/net.tedstein.AndroSS.txt @@ -1,14 +1,14 @@ -Use Built:Yes -License:GPLv2 Category:System +License:GPLv2 Web Site:https://github.com/tstein/AndroSS Source Code:https://github.com/tstein/AndroSS Issue Tracker:https://github.com/tstein/AndroSS/issues -Donate: + Summary:Screenshot application Description: Screenshot application. . + Requires Root:Yes Repo Type:git @@ -22,3 +22,4 @@ Build Version:0.3.2,13,v0.3.2,buildjni=yes,target=android-8 Market Version:0.4.2 Market Version Code:16 + diff --git a/metadata/net.tevp.postcode.txt b/metadata/net.tevp.postcode.txt index 15e1d5f4..995767c1 100644 --- a/metadata/net.tevp.postcode.txt +++ b/metadata/net.tevp.postcode.txt @@ -1,12 +1,15 @@ -License:GPLv3 Category:Navigation +License:GPLv3 Web Site:http://www.lshift.net/blog/2010/09/26/android-postcode-app Source Code:http://github.com/palfrey/postcode Issue Tracker: + Summary:Get postcode for your location (UK only) Description: A simple way to retrieve the postcode for your current location. Only works in the UK currently. . + Market Version:1.1 Market Version Code:2 + diff --git a/metadata/nl.sogeti.android.gpstracker.txt b/metadata/nl.sogeti.android.gpstracker.txt index 415fe0e3..bf15f49f 100644 --- a/metadata/nl.sogeti.android.gpstracker.txt +++ b/metadata/nl.sogeti.android.gpstracker.txt @@ -1,12 +1,15 @@ -License:GPLv3 AntiFeatures:NonFreeDep Category:Navigation +License:GPLv3 Web Site:http://code.google.com/p/open-gpstracker/ Source Code:http://code.google.com/p/open-gpstracker/source/checkout Issue Tracker:http://code.google.com/p/open-gpstracker/issues/list + Summary:GPS Logger Description: A GPS logging application. . + Market Version:1.3-cupcake Market Version Code:64 + diff --git a/metadata/nu.firetech.android.pactrack.txt b/metadata/nu.firetech.android.pactrack.txt index 1408ef68..279b6480 100644 --- a/metadata/nu.firetech.android.pactrack.txt +++ b/metadata/nu.firetech.android.pactrack.txt @@ -1,17 +1,21 @@ -License:GPLv2+ Category:Office +License:GPLv2+ Web Site:http://firetech.nu/pactrackdroid/ Source Code:https://github.com/firetech/PactrackDroid Issue Tracker:https://github.com/firetech/PactrackDroid/issues + Summary:Swedish parcel tracker Description: Tracks the status of parcels sent through Posten, the Swedish postal service, using their PacTrack service. Has support for showing notifications on the Sony Ericsson LiveView. . + Repo Type:git Repo:https://github.com/firetech/PactrackDroid.git + Build Version:1.3.1,1310,a2722a4062afbef38ec91e9af41908c9548d7a76 -Use Built:Yes + Market Version:1.3.1 Market Version Code:1310 + diff --git a/metadata/org.abrantix.rockon.rockonnggl.txt b/metadata/org.abrantix.rockon.rockonnggl.txt index 17d3a33f..2424ede6 100644 --- a/metadata/org.abrantix.rockon.rockonnggl.txt +++ b/metadata/org.abrantix.rockon.rockonnggl.txt @@ -1,8 +1,9 @@ -License:GPLv3 Category:Multimedia +License:GPLv3 Web Site:http://abrantix.org/3.php Source Code:http://github.com/fabrantes/rockonnggl Issue Tracker:http://github.com/fabrantes/rockonnggl/issues + #Don't want to encourage donating when the source is no longer available. #Donate:http://abrantix.org/cubed-donate.php Summary:Music player @@ -17,12 +18,10 @@ for those (yet?). Repo Type:git Repo:https://github.com/fabrantes/rockonnggl.git - #Note: the prebuild command here prevents it from using Google NAnalytics, #but need to check that's still the case in upgrades. It would be better #to remove the library and associated code entirely. #Build Version:1.0.79,80,2a567bd9632032c1f58c,prebuild=sed -i "s@config_isMarketVersion\">true@config_isMarketVersion\">false@" res/values/config.xml - Build Version:1.0.93,94,!No source for anything after 1.0.79 - see https://github.com/fabrantes/rockonnggl/issues/issue/125 Build Version:1.0.96,97,!Still no source - should probably just remove this fake FOSS from the repo diff --git a/metadata/org.adaway.txt b/metadata/org.adaway.txt index 67392449..afebc343 100644 --- a/metadata/org.adaway.txt +++ b/metadata/org.adaway.txt @@ -1,20 +1,20 @@ -Use Built:Yes -License:GPLv3 Category:System +License:GPLv3 Web Site:http://code.google.com/p/ad-away/ Source Code:https://gitorious.org/adaway/ Issue Tracker:http://code.google.com/p/ad-away/issues/list Donate:http://flattr.com/thing/369138/AdAway-Ad-blocker-for-Android + Summary:Ad blocking via hosts file Description: Blocks advertisements via the /etc/hosts file. Supports automatic updates. . +Requires Root:Yes + Repo Type:git Repo:git://gitorious.org/adaway/adaway.git -Requires Root:Yes - Build Version:1.12,13,ea5378a94ee0dc1d99d2cec95fae7e6d81afb2b9,subdir=org_adaway/,buildjni=yes Build Version:1.15,16,4128e59da2eac5c2904c7c7568d298ca51e79540,subdir=org_adaway/,buildjni=yes,patch=defprop.patch Build Version:1.18,19,0b9985398b9eef7baf6aadd0dbb12002bc199d2e,subdir=org_adaway/,buildjni=yes,patch=defprop.patch @@ -22,3 +22,4 @@ Build Version:1.19,20,ab27f4dab5f3ea5e228cfb4a6b0e1fbf53695f22,subdir=org_adaway Market Version:1.19 Market Version Code:20 + diff --git a/metadata/org.adw.launcher.txt b/metadata/org.adw.launcher.txt index 8ec5d638..7732c013 100644 --- a/metadata/org.adw.launcher.txt +++ b/metadata/org.adw.launcher.txt @@ -1,10 +1,9 @@ - -License:Apache2 Category:System +License:Apache2 Web Site:https://github.com/AnderWeb/android_packages_apps_Launcher Source Code:https://github.com/AnderWeb/android_packages_apps_Launcher Issue Tracker:https://github.com/AnderWeb/android_packages_apps_Launcher/issues -Donate: + Summary:Home screen replacement Description: Home screen replacement. @@ -17,3 +16,4 @@ Build Version:1.3.6 Standalone,34,b28e9e417c81857cfd2e0265c3c6d409d6c8d0f1 Market Version:1.3.6 Standalone Market Version Code:34 + diff --git a/metadata/org.andnav.osm.txt b/metadata/org.andnav.osm.txt index d2a8ea06..b8c78388 100644 --- a/metadata/org.andnav.osm.txt +++ b/metadata/org.andnav.osm.txt @@ -1,11 +1,14 @@ -License:LGPL Category:Navigation +License:LGPL Web Site:http://code.google.com/p/osmdroid/ Source Code:http://code.google.com/p/osmdroid/source/checkout Issue Tracker:http://code.google.com/p/osmdroid/issues/list + Summary:OpenStreetMap map viewer Description: Map viewer using OpenStreetMap tiles. . + Market Version:2.0.0 Market Version Code:3 + diff --git a/metadata/org.androidsoft.games.memory.kids.txt b/metadata/org.androidsoft.games.memory.kids.txt index dedf9905..c2979ac7 100644 --- a/metadata/org.androidsoft.games.memory.kids.txt +++ b/metadata/org.androidsoft.games.memory.kids.txt @@ -1,10 +1,9 @@ - -License:GPLv3+ Category:Games +License:GPLv3+ Web Site:http://androidsoft.org Source Code:http://androidsoft.googlecode.com/svn/trunk/memory/ Issue Tracker: -Donate: + Summary:Memory game for kids Description: A memory game for kids. @@ -17,3 +16,4 @@ Build Version:1.8.0,13,44,prebuild=rm -rf releases && rm libs/androidsoft-credit Market Version:1.8.0 Market Version Code:13 + diff --git a/metadata/org.connectbot.txt b/metadata/org.connectbot.txt index 57325fb7..9c65f18f 100644 --- a/metadata/org.connectbot.txt +++ b/metadata/org.connectbot.txt @@ -1,20 +1,21 @@ -License:Apache2 Category:System +License:Apache2 Web Site:http://code.google.com/p/connectbot/ Source Code:http://github.com/kruton/connectbot/ Issue Tracker:http://code.google.com/p/connectbot/issues/list + Summary:SSH and local shell client Description: An SSH and telnet client, and terminal emulator for local shell. Supports multiple sessions, including running them concurrently. . -Market Version:1.7.1 -Market Version Code:323 + Repo Type:git Repo:git://github.com/kruton/connectbot.git +Market Version:1.7.1 +Market Version Code:323 #Can't build these versions with SDK tools r7 due to build.xml issues #Build Version:1.7.1,323,19fbcefef5251cdfac97 #Build Version:1.7.0,314,5fbae7cc763edf1056c4 - diff --git a/metadata/org.coolreader.txt b/metadata/org.coolreader.txt index 4797284f..fe586337 100644 --- a/metadata/org.coolreader.txt +++ b/metadata/org.coolreader.txt @@ -1,13 +1,15 @@ -License:GPLv2 Category:Multimedia +License:GPLv2 Web Site:http://crengine.sourceforge.net Source Code:http://sourceforge.net/scm/?type=git&group_id=191284 Issue Tracker:http://sourceforge.net/tracker/?group_id=191284 Donate:http://sourceforge.net/project/project_donations.php?group_id=191284 + Summary:E-book reader. Description: An e-book reader. Supported formats: FB2, TXT, RTF, TCR, HTML, EPUB, CHM. . + Repo Type:git Repo:git://crengine.git.sourceforge.net/gitroot/crengine/crengine @@ -52,3 +54,4 @@ Build Version:3.0.54-38,308,cr3.0.54-38,subdir=android,rm=android/build.properti Market Version:3.0.54-38 Market Version Code:308 + diff --git a/metadata/org.crocodile.sbautologin.txt b/metadata/org.crocodile.sbautologin.txt index 0e095088..6e0012c2 100644 --- a/metadata/org.crocodile.sbautologin.txt +++ b/metadata/org.crocodile.sbautologin.txt @@ -1,9 +1,9 @@ -Use Built:Yes -License:GPLv3+ Category:Internet +License:GPLv3+ Web Site:http://code.google.com/p/sbautologin/ Source Code:http://code.google.com/p/sbautologin/source/checkout Issue Tracker:http://code.google.com/p/sbautologin/issues/list + Summary:Autologin for Starbucks WLAN Description: Automatically accepts the Terms Of Service when logging into @@ -13,10 +13,9 @@ a Starbucks WLAN. Repo Type:hg Repo:https://code.google.com/p/sbautologin/ - #Temporarily disabled - won't build on the build server due to lack of #org.junit (but it's installed!) #Build Version:1.6,7,62 - Market Version:1.5 Market Version Code:6 + diff --git a/metadata/org.curiouscreature.android.shelves.txt b/metadata/org.curiouscreature.android.shelves.txt index 20e28bcd..4791f9b1 100644 --- a/metadata/org.curiouscreature.android.shelves.txt +++ b/metadata/org.curiouscreature.android.shelves.txt @@ -1,17 +1,21 @@ -License:Apache2 Category:Office +License:Apache2 Web Site:http://code.google.com/p/shelves/ Source Code:http://code.google.com/p/shelves/source/checkout Issue Tracker:http://code.google.com/p/shelves/issues/list + Summary:Book collection manager Description: Shelves lets you manage and search your collection of books from your phone. You can add books by scanning their barcodes, using Web searches or entering information manually. . + Repo Type:svn Repo:http://shelves.googlecode.com/svn/trunk/Shelves + Build Version:1.0,1,26,oldsdkloc=yes -Use Built:Yes + Market Version:1.5 Market Version Code:2 + diff --git a/metadata/org.damazio.notifier.txt b/metadata/org.damazio.notifier.txt index 50baf595..7bee1b20 100644 --- a/metadata/org.damazio.notifier.txt +++ b/metadata/org.damazio.notifier.txt @@ -1,14 +1,15 @@ -Use Built:Yes -License:BSD Category:System +License:BSD Web Site:http://code.google.com/p/android-notifier/ Source Code:http://code.google.com/p/android-notifier/source/checkout Issue Tracker:http://code.google.com/p/android-notifier/issues/list + Summary:Notifications from device to desktop Description: Sends notifications (for example, phone ringing) from the device to a desktop machine running the dedicated client software. Get the desktop application from the web site. . + Repo Type:svn Repo:http://android-notifier.googlecode.com/svn/trunk/AndroidNotifier @@ -16,3 +17,4 @@ Build Version:0.2.8,11,315,fixtrans=yes,prebuild=mkdir libs && mv lib/locale_pla Market Version:0.2.8 Market Version Code:11 + diff --git a/metadata/org.droidseries.txt b/metadata/org.droidseries.txt index b35231ca..f220226f 100644 --- a/metadata/org.droidseries.txt +++ b/metadata/org.droidseries.txt @@ -1,5 +1,5 @@ -License:GPLv3 Category:Multimedia +License:GPLv3 Web Site:http://code.google.com/p/droidseries/ Source Code:http://gitorious.org/droidseries Issue Tracker:http://code.google.com/p/droidseries/issues/list @@ -19,3 +19,4 @@ Build Version:0.1.5-6,13,a72bc0a Market Version:0.1.5-6 Market Version Code:13 + diff --git a/metadata/org.eehouse.android.xw4.txt b/metadata/org.eehouse.android.xw4.txt index c1fd7c06..5a640fba 100644 --- a/metadata/org.eehouse.android.xw4.txt +++ b/metadata/org.eehouse.android.xw4.txt @@ -1,12 +1,14 @@ -License:GPLv2 Category:Games +License:GPLv2 Web Site:http://xwords.sourceforge.net/android.php Source Code:http://xwords.sourceforge.net/source.php Issue Tracker: + Summary:A Scrabble-like game Description: An implementation of a game with the same rules as Scrabble. . + Repo Type:git Repo:git://xwords.git.sourceforge.net/gitroot/xwords/xwords @@ -19,6 +21,6 @@ Build Version:4.4 beta 33,26,android_beta_33,subdir=xwords4/android/XWords4 Build Version:4.4 beta 38,30,android_beta_38,subdir=xwords4/android/XWords4 Build Version:4.4 beta 39,31,android_beta_39,subdir=xwords4/android/XWords4,target=android-8,prebuild=cd .. && ./scripts/genvers.sh >ant_out.txt - Market Version:4.4 Market Version Code:33 + diff --git a/metadata/org.example.pushupbuddy.txt b/metadata/org.example.pushupbuddy.txt index 59d17ce7..79c001ab 100644 --- a/metadata/org.example.pushupbuddy.txt +++ b/metadata/org.example.pushupbuddy.txt @@ -1,17 +1,20 @@ -Use Built:Yes -License:GPLv3 Category:Office +License:GPLv3 Web Site:https://launchpad.net/pushupbuddy/ Source Code:https://code.launchpad.net/~rheo/pushupbuddy/trunk Issue Tracker:https://bugs.launchpad.net/pushupbuddy/ + Summary: Measures and logs push-ups using the proximity sensor. Description: Uses the proximity sensor of your phone to log your push-up workout. . + Repo Type:bzr Repo:lp:~rheo/pushupbuddy/trunk + Build Version:1.0,1,1,bindir=bin/,oldsdkloc=yes Market Version:1.0 Market Version Code:1 + diff --git a/metadata/org.fdroid.fdroid.txt b/metadata/org.fdroid.fdroid.txt index 13dc4789..5635e55f 100644 --- a/metadata/org.fdroid.fdroid.txt +++ b/metadata/org.fdroid.fdroid.txt @@ -1,14 +1,15 @@ -Use Built:Yes -License:GPLv2+ Category:System +License:GPLv2+ Web Site:http://f-droid.org/repository Source Code:http://gitorious.org/f-droid/fdroidclient Issue Tracker:http://f-droid.org/issues + Summary:FOSS application repository Description: FDroid is a... wait a minute. You're running it, how can you not know what it is? . + Repo Type:git Repo:git://gitorious.org/f-droid/fdroidclient.git @@ -16,7 +17,6 @@ Repo:git://gitorious.org/f-droid/fdroidclient.git #Build Version:0.12,3,651696a49be2cd7db5ce6a2fa8185e31f9a20035 #Build Version:0.13,4,4f677285cc2cf0b7e7feb5c9acf61791bec15fbc #Build Version:0.16,7,78325dad91a263437ca4ea1210bd494446c4d003 - Build Version:0.17,8,c626ce5f6d3e10ae15942f01ff028be310cc695a Build Version:0.18,9,a6c9ed8d06b19315df9ba9041324f78139f7d238 Build Version:0.19,10,540b7d0522f4d67a4896697f7342e4c75b4cbf59 @@ -26,4 +26,3 @@ Build Version:0.22,13,a6a33c942495cc4c74a7cb6e968efe0e00815e68 Build Version:0.23,14,aa58a8aad1a1c3832eafb9f1bdd6db8292d2c172 Build Version:0.24,15,9b5fe2976443255b95027abd412f1c1e7f3d27b2 - diff --git a/metadata/org.fdroid.taskstrid.txt b/metadata/org.fdroid.taskstrid.txt index 38b1e1ab..30d34cb1 100644 --- a/metadata/org.fdroid.taskstrid.txt +++ b/metadata/org.fdroid.taskstrid.txt @@ -1,15 +1,18 @@ Disabled:Still various non-free issues to be resolved -Use Built:Yes +Category:None License:GPLv2 Web Site:http://gitorious.org/astrid-foss Source Code:http://gitorious.org/astrid-foss Issue Tracker: + Summary:Task management tool Description: A task management tool, based on the popular Astrid. It comes with features like reminders, tagging and widgets, but without Astrid features such as ads and proprietary add-ons. . + Repo Type:git Repo:git://gitorious.org/astrid-foss/astrid-foss.git + Build Version:3.6.4,170,f583967d77a28f7a83392095d7edb1537dfe8a73,submodules=yes,prebuild=sed -i "s@\.\./astridApi@astridApi@" default.properties diff --git a/metadata/org.fosdem.txt b/metadata/org.fosdem.txt index 8aa7218d..2352d042 100644 --- a/metadata/org.fosdem.txt +++ b/metadata/org.fosdem.txt @@ -1,13 +1,14 @@ -Use Built:Yes -License:GPL Category:Office +License:GPL Web Site:http://fosdem.org Source Code:http://sourceforge.net/projects/fosdem-android/develop Issue Tracker:http://sourceforge.net/tracker/?group_id=283580 + Summary:FOSDEM schedule Description: FOSDEM schedule application. . + Repo Type:svn Repo:http://fosdem-android.svn.sourceforge.net/svnroot/fosdem-android @@ -16,3 +17,4 @@ Build Version:1.0.3,5,!Source for this market version not in repo Market Version:1.0.3 Market Version Code:5 + diff --git a/metadata/org.geometerplus.zlibrary.ui.android.txt b/metadata/org.geometerplus.zlibrary.ui.android.txt index dcbfe3b7..37514868 100644 --- a/metadata/org.geometerplus.zlibrary.ui.android.txt +++ b/metadata/org.geometerplus.zlibrary.ui.android.txt @@ -1,9 +1,10 @@ -License:GPLv2+ Category:Multimedia +License:GPLv2+ Web Site:http://www.fbreader.org/FBReaderJ/ Source Code:https://github.com/geometer/FBReaderJ Issue Tracker: Donate:http://www.fbreader.org/donation/make.php + Summary:An e-book reader Description: An e-book reader. @@ -26,7 +27,6 @@ Build Version:1.1.2,10102,1.1.2,antcommand=package Build Version:1.1.8,101081,1.1.8,antcommand=package Build Version:1.1.9,101091,1.1.9,antcommand=package Build Version:1.1.10,101101,13ee5d79431815dd694e,antcommand=package - Build Version:1.2.2,102021,e63c553aeb032da828b270a735f0171d8d22c54c,buildjni=yes,target=android-10,prebuild=mkdir res/drawable && find icons -iname "*.*" -exec cp {} res/drawable \; Build Version:1.2.3,102031,46d83bb4351c2f6ec51e0d9aa6202c86c1297e7f,buildjni=yes,target=android-10,prebuild=mkdir res/drawable && find icons -iname "*.*" -exec cp {} res/drawable \; Build Version:1.2.4,102041,6426bcf131d4,buildjni=yes,target=android-10,prebuild=mkdir res/drawable && find icons -iname "*.*" -exec cp {} res/drawable \; @@ -35,5 +35,3 @@ Build Version:1.2.6,102061,1.2.6,buildjni=yes,target=android-10,prebuild=mkdir r Market Version:1.2.5 Market Version Code:102051 - - diff --git a/metadata/org.helllabs.android.xmp.txt b/metadata/org.helllabs.android.xmp.txt index 464757a6..eb8cc517 100644 --- a/metadata/org.helllabs.android.xmp.txt +++ b/metadata/org.helllabs.android.xmp.txt @@ -1,7 +1,9 @@ -License:GPLv2+ Category:Multimedia +License:GPLv2+ Web Site:http://xmp.sourceforge.net/ Source Code:http://sourceforge.net/projects/xmp/develop +Issue Tracker: + Summary:Tracker module player Description: The Extended Module Player, or xmp, is a portable module player. Xmp plays @@ -10,9 +12,9 @@ Apple IIgs and PC. This is an experimental port built with the Android NDK and a Java interface. All module formats are supported, but external file compressors are not. . + Repo Type:git Repo:git://xmp.git.sourceforge.net/gitroot/xmp/xmp -Use Built:Yes # This is one of those projects that put the changelog in the version # number, so fix that with insertversion. @@ -22,3 +24,4 @@ insertversion=2.1.0[^"]* Market Version:2.4.0 Market Version Code:20 + diff --git a/metadata/org.hermit.audalyzer.txt b/metadata/org.hermit.audalyzer.txt index 6c0294d5..400cec70 100644 --- a/metadata/org.hermit.audalyzer.txt +++ b/metadata/org.hermit.audalyzer.txt @@ -1,8 +1,9 @@ -License:GPLv2 Category:Multimedia +License:GPLv2 Web Site:http://code.google.com/p/moonblink/wiki/Audalyzer Source Code:http://code.google.com/p/moonblink/source/checkout Issue Tracker:http://code.google.com/p/moonblink/issues/list + Summary:Audio analyser Description: Realtime spectrum analysis of audio (via the microphone). @@ -14,7 +15,6 @@ Repo:http://moonblink.googlecode.com/svn/trunk/ #Need to build the associated (in the repo) libraries first... #Build Version:1.14,15,774,subdir=Audalyzer #Build Version:1.15,16,954,subdir=Audalyzer - Market Version:1.15 Market Version Code:16 diff --git a/metadata/org.hermit.dazzle.txt b/metadata/org.hermit.dazzle.txt index 704de91d..c0b91037 100644 --- a/metadata/org.hermit.dazzle.txt +++ b/metadata/org.hermit.dazzle.txt @@ -1,8 +1,9 @@ -License:GPLv2 Category:System +License:GPLv2 Web Site:https://code.google.com/p/moonblink/wiki/Dazzle Source Code:https://moonblink.googlecode.com/svn/trunk/Dazzle/ Issue Tracker:https://code.google.com/p/moonblink/issues/list + Summary:Configurable switcher widget Description: Dazzle is a configurable switcher widget; it allows you to create one or more @@ -19,4 +20,3 @@ Repo:http://moonblink.googlecode.com/svn/trunk # cp build.xml local.properties ../HermitAndroid/ && \ # cd ../HermitAndroid/ && \ # cp default.properties project.properties - diff --git a/metadata/org.hermit.netscramble.txt b/metadata/org.hermit.netscramble.txt index 24c6385c..82c127ed 100644 --- a/metadata/org.hermit.netscramble.txt +++ b/metadata/org.hermit.netscramble.txt @@ -1,13 +1,16 @@ -License:GPLv2 Category:Games +License:GPLv2 Web Site:http://code.google.com/p/moonblink/wiki/ScrambledNet Source Code:http://code.google.com/p/moonblink/source/checkout Issue Tracker:http://code.google.com/p/moonblink/issues/list + Summary:Puzzle game Description: A puzzle game where the player is given a network diagram with the parts of the network randomly rotated and must rotate them to connect all the terminals to the server. A port of the KDE game "knetwalk". . + Market Version:5.0.2 Market Version Code:28 + diff --git a/metadata/org.hermit.tricorder.txt b/metadata/org.hermit.tricorder.txt index 6e4c7081..26a0f248 100644 --- a/metadata/org.hermit.tricorder.txt +++ b/metadata/org.hermit.tricorder.txt @@ -1,11 +1,14 @@ -License:GPLv2 Category:Games +License:GPLv2 Web Site:http://code.google.com/p/moonblink/wiki/Tricorder Source Code:http://code.google.com/p/moonblink/source/checkout Issue Tracker:http://code.google.com/p/moonblink/issues/list + Summary:Fully functional Star Trek style Tricorder Description: Turns your Android device into a functional Tricorder in the style of Star Trek. . + Market Version:5.12 Market Version Code:41 + diff --git a/metadata/org.jessies.mathdroid.txt b/metadata/org.jessies.mathdroid.txt index 1afc2a8f..ad836277 100644 --- a/metadata/org.jessies.mathdroid.txt +++ b/metadata/org.jessies.mathdroid.txt @@ -1,10 +1,9 @@ - -License:GPLv3 Category:Office +License:GPLv3 Web Site:https://code.google.com/p/enh/wiki/Mathdroid Source Code:https://code.google.com/p/enh/source/checkout Issue Tracker: -Donate: + Summary:Calculator Description: A calculator with full on-screen history and many functions. @@ -17,3 +16,4 @@ Build Version:2.5,25,525,oldsdkloc=yes,target=android-10,subdir=mathdroid,prebui Market Version:2.5 Market Version Code:25 + diff --git a/metadata/org.jfedor.frozenbubble.txt b/metadata/org.jfedor.frozenbubble.txt index b0470372..89a7c4d2 100644 --- a/metadata/org.jfedor.frozenbubble.txt +++ b/metadata/org.jfedor.frozenbubble.txt @@ -1,16 +1,14 @@ -Use Built:Yes -License:GPLv2 Category:Games +License:GPLv2 Web Site:http://code.google.com/p/frozenbubbleandroid/ Source Code:http://code.google.com/p/frozenbubbleandroid/source/checkout Issue Tracker:http://code.google.com/p/frozenbubbleandroid/issues/list + Summary:Bubble shooting game Description: A bubble shooting game. Knock the bubbles down by forming clusters of three or more bubbles. . -Market Version:1.12 -Market Version Code:13 Repo Type:svn Repo:http://frozenbubbleandroid.googlecode.com/svn/ @@ -20,3 +18,6 @@ Build Version:1.8,9,16 Build Version:1.10,11,18 Build Version:1.11,12,r19 +Market Version:1.12 +Market Version Code:13 + diff --git a/metadata/org.johanhil.flygtider.txt b/metadata/org.johanhil.flygtider.txt index c91fa5f2..12d262fa 100644 --- a/metadata/org.johanhil.flygtider.txt +++ b/metadata/org.johanhil.flygtider.txt @@ -1,16 +1,17 @@ -License:Apache2 Category:Office +License:Apache2 Web Site:http://code.google.com/p/flygtider/ Source Code:http://code.google.com/p/flygtider/source/checkout Issue Tracker:http://code.google.com/p/flygtider/issues/list + Summary:Flight status info for Swedish airports Description: Flygtider is an Android application that lists information about flights arriving to/departing from most Swedish airports. . + Repo Type:svn Repo:http://flygtider.googlecode.com/svn/trunk -Use Built:Yes # Several versions, including the one available in the market, are # missing from the Subversion repository. @@ -19,3 +20,4 @@ Build Version:0.61,8,!This version was never committed Market Version:0.61 Market Version Code:8 + diff --git a/metadata/org.jtb.alogcat.txt b/metadata/org.jtb.alogcat.txt index da8dfccc..783afe49 100644 --- a/metadata/org.jtb.alogcat.txt +++ b/metadata/org.jtb.alogcat.txt @@ -1,9 +1,9 @@ -Use Built:Yes -License:GPLv3 Category:System +License:GPLv3 Web Site:http://code.google.com/p/alogcat/ Source Code:http://code.google.com/p/alogcat/source/checkout Issue Tracker:http://code.google.com/p/alogcat/issues/list + Summary:Log viewer Description: Log viewer - an app equivalent of logcat from the Android shell, or diff --git a/metadata/org.jtb.droidlife.txt b/metadata/org.jtb.droidlife.txt index ace9f521..ad5af9e2 100644 --- a/metadata/org.jtb.droidlife.txt +++ b/metadata/org.jtb.droidlife.txt @@ -1,8 +1,9 @@ -License:GPLv3 Category:Games +License:GPLv3 Web Site:http://code.google.com/p/droidlife/ Source Code:http://code.google.com/p/droidlife/source/checkout Issue Tracker:http://code.google.com/p/droidlife/issues/list + Summary:Conway's Game of Life Description: An implementation of Conway's Game of Life. @@ -15,3 +16,4 @@ Build Version:2.4.1,21,22 Market Version:2.4.1 Market Version Code:21 + diff --git a/metadata/org.jtb.httpmon.txt b/metadata/org.jtb.httpmon.txt index 3bfd21a1..36b69422 100644 --- a/metadata/org.jtb.httpmon.txt +++ b/metadata/org.jtb.httpmon.txt @@ -1,12 +1,15 @@ -License:GPLv3 Category:System +License:GPLv3 Web Site:http://code.google.com/p/httpmon/ Source Code:http://code.google.com/p/httpmon/source/checkout Issue Tracker:http://code.google.com/p/httpmon/issues/list + Summary:HTTP monitor Description: A simple HTTP monitoring application. Get notified when remote web sites are down. . + Market Version:0.4.10 Market Version Code:27 + diff --git a/metadata/org.kost.externalip.txt b/metadata/org.kost.externalip.txt index 2aaa395b..7f335230 100644 --- a/metadata/org.kost.externalip.txt +++ b/metadata/org.kost.externalip.txt @@ -1,8 +1,9 @@ -License:GPLv3 Category:Internet +License:GPLv3 Web Site:https://code.google.com/p/external-ip/ Source Code:https://code.google.com/p/external-ip/source/checkout Issue Tracker:https://code.google.com/p/external-ip/issues/list + Summary:Android application to display IP addresses Description: Simple application to display IP addresses in form that you can copy&paste them. @@ -17,3 +18,4 @@ Build Version:1.2,3,431da48bfb10,target=android-8 Market Version:1.2 Market Version Code:3 + diff --git a/metadata/org.kreed.vanilla.txt b/metadata/org.kreed.vanilla.txt index b02d1f3a..0fa8a57b 100644 --- a/metadata/org.kreed.vanilla.txt +++ b/metadata/org.kreed.vanilla.txt @@ -1,6 +1,9 @@ -License:GPLv3+ Category:Multimedia +License:GPLv3+ +Web Site: Source Code:https://github.com/kreed/vanilla +Issue Tracker: + Summary:Simple and streamlined music player Description: Vanilla Music Player is designed to be simple and streamlined. The playback @@ -8,11 +11,12 @@ screen is clean and minimal. Music is played from a continuous stream of random songs from your music library with the ability for you to enqueue songs of your choosing. . + Repo Type:git Repo:https://github.com/kreed/vanilla.git -Use Built:Yes Build Version:0.1,16,4169dd05b3ac321555bb8436fd2a90f93e52b49d Market Version:0.1 Market Version Code:16 + diff --git a/metadata/org.linphone.txt b/metadata/org.linphone.txt index 9eb77350..4688a50e 100644 --- a/metadata/org.linphone.txt +++ b/metadata/org.linphone.txt @@ -1,10 +1,14 @@ -License:GPLv2+ Category:Internet +License:GPLv2+ Web Site:http://www.linphone.org Source Code:http://www.linphone.org/eng/download/git.html +Issue Tracker: + Summary:SIP (VOIP) client Description: A SIP (VOIP) client. . + Market Version:1.2.2 Market Version Code:1220 + diff --git a/metadata/org.mailboxer.saymyname.txt b/metadata/org.mailboxer.saymyname.txt index ea5977e2..38651391 100644 --- a/metadata/org.mailboxer.saymyname.txt +++ b/metadata/org.mailboxer.saymyname.txt @@ -1,14 +1,17 @@ Disabled:Issues with a) Google Analytics usage tracking, b) ads, c) vague licensing AntiFeatures:Ads,Tracking -License:GPLv2 Category:Office +License:GPLv2 Web Site:http://tomtasche.at/p/SayMyName Source Code:http://github.com/TomTasche/SayMyName Issue Tracker:http://code.google.com/p/roadtoadc/issues/list + Summary:Text to speech on incoming caller name Description: SayMyName reads out loud the name saved in your address book and tells you who's calling. Also works with incoming SMS and email via K-9 Mail. . + Market Version:2.5.4.6 (http://goo.gl/N10G) Market Version Code:131 + diff --git a/metadata/org.marcus905.wifi.ace.txt b/metadata/org.marcus905.wifi.ace.txt index de1263fd..6eb679ca 100644 --- a/metadata/org.marcus905.wifi.ace.txt +++ b/metadata/org.marcus905.wifi.ace.txt @@ -1,16 +1,20 @@ -License:Apache2 Category:System +License:Apache2 Web Site:http://code.google.com/p/android-wifi-ace/ Source Code:http://code.google.com/p/android-wifi-ace/source/checkout Issue Tracker:http://code.google.com/p/android-wifi-ace/issues/list + Summary: WiFi Advanced Configuration Editor Description: WiFi ACE lets you fine tune the settings of your configured wireless networks, such as BSSID, ciphers, WEP keys and various WPA options. . + Repo Type:svn Repo:http://android-wifi-ace.googlecode.com/svn/trunk/WiFiACE + Build Version:0.10,20100924,13 -Use Built:Yes + Market Version:0.10 Market Version Code:20100924 + diff --git a/metadata/org.mixare.txt b/metadata/org.mixare.txt index 7c09c235..d97e78ec 100644 --- a/metadata/org.mixare.txt +++ b/metadata/org.mixare.txt @@ -1,9 +1,9 @@ -Use Built:Yes -License:GPLv3 Category:Navigation +License:GPLv3 Web Site:http://www.mixare.org/ Source Code:http://github.com/mixare/mixare Issue Tracker:http://code.google.com/p/mixare/issues/list + Summary:Augmented reality browser Description: An augmented reality browser. @@ -16,3 +16,4 @@ Build Version:0.6.6,14,v0.6.6 Market Version:0.7.3 Market Version Code:20 + diff --git a/metadata/org.moparisthebest.appbak.txt b/metadata/org.moparisthebest.appbak.txt index 1d704df1..dd338ae3 100644 --- a/metadata/org.moparisthebest.appbak.txt +++ b/metadata/org.moparisthebest.appbak.txt @@ -1,12 +1,15 @@ -License:GPL Category:System +License:GPL Web Site:http://android.moparisthebest.org/index.php/apps/appbak Source Code:http://android.moparisthebest.org/src/AppBak_v1.0.7z Issue Tracker: + Summary:Back up list of installed apps Description: Simple way to back up (and restore) a list of installed applications to a file on your SD card. . + Market Version:1.0 Market Version Code:2 + diff --git a/metadata/org.mozilla.firefox.txt b/metadata/org.mozilla.firefox.txt index 679dc16e..15d8bd94 100644 --- a/metadata/org.mozilla.firefox.txt +++ b/metadata/org.mozilla.firefox.txt @@ -1,8 +1,9 @@ -License:MPL Category:Internet +License:MPL Web Site:http://www.firefox.com Source Code:http://hg.mozilla.org/ Issue Tracker: + Summary:Firefox Mobile Description: Firefox Mobile web browser. diff --git a/metadata/org.mult.daap.txt b/metadata/org.mult.daap.txt index a4435fb9..bc0438bb 100644 --- a/metadata/org.mult.daap.txt +++ b/metadata/org.mult.daap.txt @@ -1,14 +1,15 @@ -Use Built:Yes -License:GPLv2+ Category:Multimedia +License:GPLv2+ Web Site:http://code.google.com/p/daap-client/ Source Code:http://code.google.com/p/daap-client/source/checkout Issue Tracker:http://code.google.com/p/daap-client/issues/list + Summary:DAAP Client Description: Client for DAAP (Digital Audio Access Protocol) servers. Supports streaming, queuing, playlists, and searching. . + Repo Type:svn Repo:http://daap-client.googlecode.com/svn/trunk @@ -18,3 +19,4 @@ Build Version:.9.6.2,38,!No corresponding source in repo Market Version:.9.6.2 Market Version Code:38 + diff --git a/metadata/org.mustard.android.txt b/metadata/org.mustard.android.txt index 1a131b31..d95751af 100644 --- a/metadata/org.mustard.android.txt +++ b/metadata/org.mustard.android.txt @@ -1,9 +1,10 @@ -License:GPLv3 Category:Internet +License:GPLv3 Web Site:http://mustard.macno.org Source Code:http://gitorious.org/~macno/mustard/macnos-clone/ Issue Tracker:https://bugs.launchpad.net/mustardroid Donate:http://mustard.macno.org/donate + Summary:Microblogging client for StatusNet/identi.ca Description: Mustard is the first full-featured statusnet (like identica) client application for android. @@ -12,3 +13,4 @@ It has many features like attachments, geolocation and avatar update. It support Market Version:0.3.0 Market Version Code:126 + diff --git a/metadata/org.mythdroid.txt b/metadata/org.mythdroid.txt index 6f15464d..3a6b0537 100644 --- a/metadata/org.mythdroid.txt +++ b/metadata/org.mythdroid.txt @@ -1,10 +1,9 @@ -Use Built:Yes -License:GPLv3 Category:Multimedia +License:GPLv3 Web Site:http://code.google.com/p/mythdroid/ Source Code:http://code.google.com/p/mythdroid/source/checkout Issue Tracker:http://code.google.com/p/mythdroid/issues/list -Donate: + Summary:MythTV remote control system Description: A remote control system for MythTV featuring: diff --git a/metadata/org.navitproject.navit.txt b/metadata/org.navitproject.navit.txt index eef30390..10a2a797 100644 --- a/metadata/org.navitproject.navit.txt +++ b/metadata/org.navitproject.navit.txt @@ -1,13 +1,16 @@ -License:GPLv2 Category:Navigation +License:GPLv2 Web Site:http://sourceforge.net/projects/navit/ Source Code:http://navit.svn.sourceforge.net/viewvc/navit Issue Tracker:http://trac.navit-project.org/ + Summary:Car navigation system Description: Modular car navigation system with GPS tracking, realtime routing engine and support for various vector map formats. This is a beta version which may not work very well! . + Market Version:navit 0.5.0 Market Version Code:4785 + diff --git a/metadata/org.openintents.notepad.txt b/metadata/org.openintents.notepad.txt index e58af144..757ddef5 100644 --- a/metadata/org.openintents.notepad.txt +++ b/metadata/org.openintents.notepad.txt @@ -1,11 +1,14 @@ -License:Apache2 Category:Office +License:Apache2 Web Site:http://www.openintents.org/en/notepad Source Code:https://code.google.com/p/openintents/source/checkout Issue Tracker:https://code.google.com/p/openintents/issues/list + Summary:Notepad Description: OI Notepad allows to create, edit, send, and delete notes. . + Market Version:1.2.3 Market Version Code:10065 + diff --git a/metadata/org.opensatnav.txt b/metadata/org.opensatnav.txt index 0dd4a74f..d41eac3c 100644 --- a/metadata/org.opensatnav.txt +++ b/metadata/org.opensatnav.txt @@ -1,10 +1,12 @@ -License:GPLv3 Category:Navigation +License:GPLv3 Web Site:https://launchpad.net/opensatnav Source Code:https://code.launchpad.net/opensatnav Issue Tracker:https://bugs.launchpad.net/opensatnav + Summary:Satellite Navigation Description: Satellite Navitation using OpenStreetMap data. Supports car, bicycle and pedestrian modes of transport. . + diff --git a/metadata/org.paulmach.textedit.txt b/metadata/org.paulmach.textedit.txt index d017a31c..d243f01a 100644 --- a/metadata/org.paulmach.textedit.txt +++ b/metadata/org.paulmach.textedit.txt @@ -1,9 +1,9 @@ -Use Built:Yes -License:GPLv3 Category:Office +License:GPLv3 Web Site:http://textedit.paulmach.com/ Source Code:https://github.com/paulmach/Text-Edit-for-Android Issue Tracker:https://github.com/paulmach/Text-Edit-for-Android/issues + Summary:A text editor Description: Text Edit is a simple notepad application. It opens, edits and saves text files on the @@ -12,6 +12,7 @@ SD card. Unfortunately, this app is not recommended for large files. This is a limitation of the text display mechanism in the Android OS. . + Repo Type:git Repo:https://github.com/paulmach/Text-Edit-for-Android.git @@ -20,3 +21,4 @@ Build Version:1.4.1,14,cddfa34997bf3da10586,target=android-8,patch=set1.4.1.patc Market Version:1.5 Market Version Code:15 + diff --git a/metadata/org.piwik.mobile.txt b/metadata/org.piwik.mobile.txt index 35cad9ca..faefaebf 100644 --- a/metadata/org.piwik.mobile.txt +++ b/metadata/org.piwik.mobile.txt @@ -1,12 +1,15 @@ -License:GPLv3 Category:Internet +License:GPLv3 Web Site:http://piwik.org/ Source Code:http://dev.piwik.org/trac/browser/mobile Issue Tracker: + Summary:Client for Piwik Description: Piwik is an open-source web analytics package. Piwik Mobile is a client that gives you access to your statistics. . + Market Version:1.6.2 Market Version Code:10 + diff --git a/metadata/org.pocketworkstation.pckeyboard.txt b/metadata/org.pocketworkstation.pckeyboard.txt index 4d1f84ef..b6f7dd3e 100644 --- a/metadata/org.pocketworkstation.pckeyboard.txt +++ b/metadata/org.pocketworkstation.pckeyboard.txt @@ -1,17 +1,15 @@ -Use Built:Yes -License:Apache2 Category:System -Name:Hacker's Keyboard +License:Apache2 Web Site:http://code.google.com/p/hackerskeyboard/ Source Code:http://code.google.com/p/hackerskeyboard/source/checkout Issue Tracker:http://code.google.com/p/hackerskeyboard/issues/list -Donate: + +Name:Hacker's Keyboard Summary:5-row keyboard Description: A five row soft-keyboard with additional punctuation, and tab and ctrl keys. . - Repo Type:hg Repo:https://hackerskeyboard.googlecode.com/hg/ @@ -21,3 +19,4 @@ Build Version:v1.22,1022,154e21230e81,subdir=java,target=android-11,buildjni=yes Market Version:v1.27 Market Version Code:1027 + diff --git a/metadata/org.scoutant.blokish.txt b/metadata/org.scoutant.blokish.txt index 73667f0d..90753194 100644 --- a/metadata/org.scoutant.blokish.txt +++ b/metadata/org.scoutant.blokish.txt @@ -1,9 +1,9 @@ -License:GPLv3 Category:Games +License:GPLv3 Web Site:http://blokish.scoutant.org/ Source Code:https://github.com/scoutant/blokish Issue Tracker:https://github.com/scoutant/blokish/issues -Donate: + Summary:Board game Description: A strategy board game. @@ -19,3 +19,4 @@ Build Version:1.6,9,ebd1b966b70e,target=android-10 Market Version:1.6 Market Version Code:9 + diff --git a/metadata/org.sipdroid.sipua.txt b/metadata/org.sipdroid.sipua.txt index 735464d2..21db3585 100644 --- a/metadata/org.sipdroid.sipua.txt +++ b/metadata/org.sipdroid.sipua.txt @@ -1,11 +1,14 @@ -License:GPLv3 Category:Internet +License:GPLv3 Web Site:http://sipdroid.org/ Source Code:http://code.google.com/p/sipdroid/source/checkout Issue Tracker:http://code.google.com/p/sipdroid/issues/list + Summary:A SIP (VOIP) client Description: A SIP (VOIP) client with video calling capabilities. . + Market Version:2.4 Market Version Code:87 + diff --git a/metadata/org.sixgun.ponyexpress.txt b/metadata/org.sixgun.ponyexpress.txt index 70fc89dc..263a69c7 100644 --- a/metadata/org.sixgun.ponyexpress.txt +++ b/metadata/org.sixgun.ponyexpress.txt @@ -1,15 +1,16 @@ -Use Built:Yes -License:GPLv3 Category:Multimedia +License:GPLv3 Web Site:http://wiki.sixgun.org/ponyexpress/start Source Code:http://gitorious.org/ponyexpress Issue Tracker: + Summary:SixGun Productions mobile application Description: Mobile application for SixGun Productions - producers of the Linux Outlaws podcast and more. Download and play podcasts and join identi.ca conversations about them direct from this application. . + Repo Type:git Repo:git://gitorious.org/ponyexpress/mainline.git @@ -21,3 +22,4 @@ Build Version:1.1,12,1.1,target=android-10 Market Version:1.1 Market Version Code:12 + diff --git a/metadata/org.sparkleshare.android.txt b/metadata/org.sparkleshare.android.txt index 735fa5fe..ba4fa3aa 100644 --- a/metadata/org.sparkleshare.android.txt +++ b/metadata/org.sparkleshare.android.txt @@ -1,8 +1,9 @@ -License:GPLv3 Category:System +License:GPLv3 Web Site:http://www.sparkleshare.org Source Code:https://github.com/NewProggie/SparkleShare-Android Issue Tracker:https://github.com/NewProggie/SparkleShare-Android/issues + Summary:distributed collaboration and sharing tool Description: SparkleShare is a collaboration and sharing tool that is designed to keep @@ -16,3 +17,4 @@ Repo Type:git Repo:https://github.com/NewProggie/SparkleShare-Android.git Build Version:1.0,1,a9e23f0f9ae6161a786bf48cb48ab3dec20110c9,prebuild=rm -rf gen/ && rm -rf bin/,target=android-7 + diff --git a/metadata/org.swiftp.txt b/metadata/org.swiftp.txt index 52a5f673..ceefe403 100644 --- a/metadata/org.swiftp.txt +++ b/metadata/org.swiftp.txt @@ -1,23 +1,23 @@ -License:GPLv3+ Category:Internet +License:GPLv3+ Web Site:http://code.google.com/p/swiftp/ Source Code:http://code.google.com/p/swiftp/source/checkout Issue Tracker:http://code.google.com/p/swiftp/issues/list Donate:http://www.swiftp.org/donate.html + Summary:FTP server Description: An FTP server allowing remote access to files on your SD card (or any files on the device, optionally, if you have root access). . -Market Version:1.24 -Market Version Code:17 Repo Type:svn Repo:http://swiftp.googlecode.com/svn/trunk/ +Market Version:1.24 +Market Version Code:17 + #Can't build this version - see http://code.google.com/p/swiftp/issues/detail?id=128 #Build Version:1.24,17,69,target=android-3 - #Can't build this version - res/values/strings.xml:117: error: Apostrophe not preceded by \ #Build Version:1.23,15,66,target=android-3 - diff --git a/metadata/org.thialfihar.android.apg.txt b/metadata/org.thialfihar.android.apg.txt index 8fc18a11..c97ebedc 100644 --- a/metadata/org.thialfihar.android.apg.txt +++ b/metadata/org.thialfihar.android.apg.txt @@ -1,13 +1,16 @@ -License:Apache2 Category:Internet +License:Apache2 Web Site:http://code.google.com/p/android-privacy-guard/ Source Code:http://code.google.com/p/android-privacy-guard/source/checkout Issue Tracker:http://code.google.com/p/android-privacy-guard/issues/list + Summary:OpenPGP port - encrypt email and files Description: APG is a port of OpenPGP for Android. Use it to encrypt and decrypt files, and in conjunction with K-9 Mail, to seamlessly add support for encyrpting and decrypting emails, as well as adding and verifying digital signatures. . + Market Version:1.0.8 Market Version Code:10899 + diff --git a/metadata/org.thoughtcrime.securesms.txt b/metadata/org.thoughtcrime.securesms.txt index a74db453..7c665cd1 100644 --- a/metadata/org.thoughtcrime.securesms.txt +++ b/metadata/org.thoughtcrime.securesms.txt @@ -1,9 +1,9 @@ -License:GPLv3 Category:Cryptography +License:GPLv3 Web Site:http://www.whispersys.com/ Source Code:https://github.com/WhisperSystems/TextSecure Issue Tracker: -Donate: + Summary:SMS Encryption Description: TextSecure is a drop-in replacement for the standard text messaging application, diff --git a/metadata/org.tomdroid.txt b/metadata/org.tomdroid.txt index 63d97982..196a078e 100644 --- a/metadata/org.tomdroid.txt +++ b/metadata/org.tomdroid.txt @@ -1,18 +1,21 @@ -Use Built:Yes -License:GPLv3+ Category:Office +License:GPLv3+ Web Site:https://launchpad.net/tomdroid Source Code:https://code.launchpad.net/~tomdroid-maintainers/tomdroid/main Issue Tracker:https://bugs.launchpad.net/tomdroid + Summary:Note taker Description: A note taking application. A port of the popular desktop application Tomboy. This is an early release, and does not yet have editing support! . + Repo Type:bzr Repo:lp:tomdroid + Build Version:0.4.1,6,214 Market Version:0.4.1 Market Version Code:6 + diff --git a/metadata/org.torproject.android.txt b/metadata/org.torproject.android.txt index 7efbaa34..f65c7920 100644 --- a/metadata/org.torproject.android.txt +++ b/metadata/org.torproject.android.txt @@ -1,12 +1,15 @@ -License:BSD Category:Internet +License:BSD Web Site:http://www.torproject.org/docs/android.html.en Source Code:https://svn.torproject.org/svn/projects/android/ Issue Tracker:https://trac.torproject.org/projects/tor + Summary:Tor client Description: A Tor client allowing private internet access via a local SOCKS or HTTP proxy. On a rooted device, the proxying can be completely transparent. . + Market Version:0.2.3.7-alpha-orbot-1.0.6 Market Version Code:21 + diff --git a/metadata/org.transdroid.txt b/metadata/org.transdroid.txt index a3703b49..4121bdee 100644 --- a/metadata/org.transdroid.txt +++ b/metadata/org.transdroid.txt @@ -1,8 +1,9 @@ -License:GPLv3 Category:Internet +License:GPLv3 Web Site:http://www.transdroid.org/ Source Code:http://code.google.com/p/transdroid/source/checkout Issue Tracker:http://code.google.com/p/transdroid/issues/list + Summary:Remote control for Bittorrent clients Description: Transdroid is an Android remote client for your torrent application running on a @@ -10,5 +11,7 @@ server or home computer. Currently Transmission, uTorrent, Bittorrent, Deluge, V and rTorrent are supported. It can show the active torrents, pause, resume or remove them and new torrents can be added via URL, RSS feed or using the integrated search. . + Market Version:1.0.4 Market Version Code:136 + diff --git a/metadata/org.ttrssreader.txt b/metadata/org.ttrssreader.txt index 859aaa57..0b3043ff 100644 --- a/metadata/org.ttrssreader.txt +++ b/metadata/org.ttrssreader.txt @@ -1,27 +1,24 @@ -Use Built:Yes -License:GPLv3 Category:Internet +License:GPLv3 Web Site:http://code.google.com/p/ttrss-reader-fork/ Source Code:http://code.google.com/p/ttrss-reader-fork/source/checkout Issue Tracker:http://code.google.com/p/ttrss-reader-fork/issues/list Donate:http://code.google.com/p/ttrss-reader-fork/wiki/Donations + Summary:An RSS reader for Tiny Tiny RSS Description: An offline reader that works with the Tiny Tiny RSS web-based feed reader/aggregator.. . + Repo Type:hg Repo:https://ttrss-reader-fork.googlecode.com/hg/ Build Version:0.8.4,840,v0.8.4,subdir=ttrss-reader - #This has the wrong version code in the repo (850 instead of 851) Build Version:0.8.5,850,v0.8.5,subdir=ttrss-reader - Build Version:0.8.6,860,v0.8.6,subdir=ttrss-reader - Build Version:0.8.8,880,5faddbaaf7,subdir=ttrss-reader Build Version:0.8.8,881,!Same as 880 just different code in repo - Build Version:0.8.9,892,9ba20fcfb6,subdir=ttrss-reader,target=android-8 Build Version:0.9.1,911,0.9.1,subdir=ttrss-reader,target=android-8 # Tag is hosed for 0.9.3 @@ -34,12 +31,11 @@ Build Version:1.03,1032,c374163ba16f,subdir=ttrss-reader,target=android-8 Build Version:1.04,1040,1.04,subdir=ttrss-reader,target=android-8 Build Version:1.05,1050,bb0bbb042e7c,subdir=ttrss-reader,target=android-8 Build Version:1.07,1075,1.07 (4),subdir=ttrss-reader,target=android-8 - #This is not building - No resource identifier found for attribute 'marginRight' in package 'android' #Build Version:1.08,1080,1.08,subdir=ttrss-reader,target=android-8 - Build Version:1.21,1210,1.21,subdir=ttrss-reader,target=android-8 Build Version:1.22,1220,1.22,subdir=ttrss-reader,target=android-8 Market Version:1.22 Market Version Code:1220 + diff --git a/metadata/org.vudroid.txt b/metadata/org.vudroid.txt index 79cc3675..fb5825ad 100644 --- a/metadata/org.vudroid.txt +++ b/metadata/org.vudroid.txt @@ -1,13 +1,14 @@ -Use Built:Yes -License:GPLv3 Category:Multimedia +License:GPLv3 Web Site:http://code.google.com/p/vudroid/ Source Code:http://code.google.com/p/vudroid/source/checkout Issue Tracker:http://code.google.com/p/vudroid/issues/list + Summary:DjVu and PDF document reader Description: A document reader for DjVu and PDF files. . + Repo Type:svn Repo:http://vudroid.googlecode.com/svn/trunk/ @@ -17,3 +18,4 @@ Build Version:1.4,5,56,buildjni=yes,target=android-8 Market Version:1.4 Market Version Code:5 + diff --git a/metadata/org.wahtod.wififixer.txt b/metadata/org.wahtod.wififixer.txt index dcafbb58..27b8c831 100644 --- a/metadata/org.wahtod.wififixer.txt +++ b/metadata/org.wahtod.wififixer.txt @@ -1,14 +1,15 @@ -Use Built:Yes -License:Apache2 Category:System +License:Apache2 Web Site:http://wififixer.wordpress.com Source Code:https://github.com/Zanshinmu/Wifi-Fixer Issue Tracker:https://github.com/Zanshinmu/Wifi-Fixer/issues Donate:http://wififixer.wordpress.com/donate/ + Summary:Resets broken WiFi connections Description: Detects and resets a broken WiFi connection. . + Repo Type:git Repo:https://github.com/Zanshinmu/Wifi-Fixer.git @@ -23,3 +24,4 @@ Build Version:0.9.0.1,915,!commit 7155ca938dc1 but can't compile for some reason Market Version:0.9.0.1 Market Version Code:915 + diff --git a/metadata/org.wordpress.android.txt b/metadata/org.wordpress.android.txt index 0e181087..bca296e3 100644 --- a/metadata/org.wordpress.android.txt +++ b/metadata/org.wordpress.android.txt @@ -1,9 +1,9 @@ -Use Built:Yes -License:GPLv2 Category:Internet +License:GPLv2 Web Site:http://android.wordpress.org/ Source Code:https://android.trac.wordpress.org/browser Issue Tracker:http://android.trac.wordpress.org/ + Summary:WordPress client Description: A client for WordPress blogs, which allows post creation and editing, and comment @@ -23,3 +23,4 @@ Build Version:1.4.1,33,228,prebuild=mkdir libs && mv *.jar libs && sed -i "s@che Market Version:2.0.3 Market Version Code:42 + diff --git a/metadata/org.xbmc.android.remote.txt b/metadata/org.xbmc.android.remote.txt index 16b4d901..31381ea3 100644 --- a/metadata/org.xbmc.android.remote.txt +++ b/metadata/org.xbmc.android.remote.txt @@ -1,9 +1,9 @@ -Use Built:Yes -License:GPLv2 Category:Multimedia +License:GPLv2 Web Site:http://code.google.com/p/android-xbmcremote/ Source Code:http://code.google.com/p/android-xbmcremote/source/checkout Issue Tracker:http://code.google.com/p/android-xbmcremote/issues/list + Summary:Remote control for XBMC Media Center Description: The official remote control for XBMC Media Center. @@ -19,3 +19,4 @@ Build Version:0.8.6-beta1,768,768,encoding=utf-8,prebuild=mv lib libs && mv lib- Market Version:0.8.8-beta1 Market Version Code:808 + diff --git a/metadata/org.yaaic.txt b/metadata/org.yaaic.txt index d14360fb..588509ab 100644 --- a/metadata/org.yaaic.txt +++ b/metadata/org.yaaic.txt @@ -1,10 +1,9 @@ -Use Built:Yes - -License:GPLv3+ Category:Internet +License:GPLv3+ Web Site:http://www.yaaic.org Source Code:http://github.com/pocmo/Yaaic/ Issue Tracker:http://github.com/pocmo/Yaaic/issues + Summary:IRC client Description: Yaaic (Yet Another Android IRC Client) is an Internet Relay Chat (IRC) client. @@ -15,7 +14,6 @@ Repo:https://github.com/pocmo/Yaaic.git #Last binary version... #Build Version:0.6.1,8,4d04ca810df9f859d8e5,subdir=application,bindir=builds/ant - Build Version:0.7,9,v0.7,subdir=application,bindir=builds/ant Build Version:0.8,10,v0.8,subdir=application,bindir=builds/ant Build Version:0.9,11,v0.9,subdir=application,bindir=builds/ant diff --git a/metadata/org.yaxim.androidclient.txt b/metadata/org.yaxim.androidclient.txt index 3d1f78c6..e062c333 100644 --- a/metadata/org.yaxim.androidclient.txt +++ b/metadata/org.yaxim.androidclient.txt @@ -1,13 +1,14 @@ -Use Built:Yes -License:GPLv2 Category:Internet +License:GPLv2 Web Site:http://yaxim.org Source Code:https://github.com/ge0rg/yaxim Issue Tracker:https://github.com/pfleidi/yaxim/issues + Summary:XMPP client Description: An XMPP client. . + Repo Type:git Repo:https://github.com/ge0rg/yaxim.git @@ -21,3 +22,4 @@ Build Version:0.8.2,11,0.8.2,oldsdkloc=yes,submodules=yes,fixtrans=yes,target=an Market Version:0.8.3 Market Version Code:12 + diff --git a/metadata/org.zirco.txt b/metadata/org.zirco.txt index dd33baa9..c1296ce3 100644 --- a/metadata/org.zirco.txt +++ b/metadata/org.zirco.txt @@ -1,10 +1,9 @@ -Use Built:Yes -License:GPLv3 Category:Internet +License:GPLv3 Web Site:http://code.google.com/p/zirco-browser Source Code:http://code.google.com/p/zirco-browser/source/checkout Issue Tracker:http://code.google.com/p/zirco-browser/issues/list -Donate: + Summary:Web browser with ad blocker Description: A web browser featuring: @@ -30,3 +29,4 @@ Build Version:0.4.3,17,443,target=android-10 Market Version:0.4.3 Market Version Code:17 + diff --git a/metadata/pl.magot.vetch.ancal.txt b/metadata/pl.magot.vetch.ancal.txt index 3666055e..985ac3f1 100644 --- a/metadata/pl.magot.vetch.ancal.txt +++ b/metadata/pl.magot.vetch.ancal.txt @@ -1,14 +1,15 @@ Disabled:Conflicting copyright message, see http://code.google.com/p/ancal/issues/detail?id=8 -Use Built:Yes -License:MIT Category:Office +License:MIT Web Site:http://code.google.com/p/ancal/ Source Code:http://code.google.com/p/ancal/source/checkout Issue Tracker:http://code.google.com/p/ancal/issues/list + Summary:Calendar Description: A calendar application. . + Repo Type:svn Repo:http://ancal.googlecode.com/svn/trunk/ @@ -16,3 +17,4 @@ Build Version:1.6,32,23,fixtrans=yes Market Version:1.5 Market Version Code:31 + diff --git a/metadata/remuco.client.android.txt b/metadata/remuco.client.android.txt index ff245658..7860f8f3 100644 --- a/metadata/remuco.client.android.txt +++ b/metadata/remuco.client.android.txt @@ -1,9 +1,10 @@ -License:GPLv3 Category:Multimedia +License:GPLv3 Web Site:https://code.google.com/p/remuco/ Source Code:https://code.google.com/p/remuco/source/browse/ Issue Tracker:https://code.google.com/p/remuco/wiki/Issues?tm=3 Donate:http://flattr.com/thing/141543/Remuco + Summary:Remote control for Linux media players Description: Remuco is a duplex remote control system for Linux media players and mobile diff --git a/metadata/ru.gelin.android.weather.notification.txt b/metadata/ru.gelin.android.weather.notification.txt index 326f9c63..37d83ccc 100644 --- a/metadata/ru.gelin.android.weather.notification.txt +++ b/metadata/ru.gelin.android.weather.notification.txt @@ -1,8 +1,9 @@ -License:GPLv2 Category:Internet +License:GPLv2 Web Site:https://code.google.com/p/weather-notification-android/ Source Code:https://code.google.com/p/weather-notification-android/source/browse/ Issue Tracker:https://code.google.com/p/weather-notification-android/issues/list + Summary:Weather info in notification bar Description: Simple application which displays the air temperature @@ -17,3 +18,4 @@ Build Version:0.2-beta2,23,253d9dc3022a,target=android-4 Market Version:0.2-beta2 Market Version Code:23 + diff --git a/metadata/ru.orangesoftware.financisto.txt b/metadata/ru.orangesoftware.financisto.txt index 7f346a2b..ec8b7c03 100644 --- a/metadata/ru.orangesoftware.financisto.txt +++ b/metadata/ru.orangesoftware.financisto.txt @@ -1,8 +1,9 @@ -License:GPLv2 Category:Office +License:GPLv2 Web Site:http://financisto.com/ Source Code:http://bazaar.launchpad.net/~financisto-dev/financisto/trunk/files Issue Tracker:https://bugs.launchpad.net/financisto + Summary:Personal finance manager Description: Personal finance manager @@ -21,4 +22,3 @@ Repo:lp:financisto # Build fails, wrong path to GreenDroid library #Build Version:1.5.4,57,303,target=android-4 - diff --git a/metadata/se.johanhil.clipboard.txt b/metadata/se.johanhil.clipboard.txt index 97a7e9e1..82aa8639 100644 --- a/metadata/se.johanhil.clipboard.txt +++ b/metadata/se.johanhil.clipboard.txt @@ -1,11 +1,11 @@ +Category:System # There is no license notice in the source, probably because any # such notice would be longer than the code itself. License: -Category:System Web Site:https://github.com/johanhil/copy-to-clipboard Source Code:https://github.com/johanhil/copy-to-clipboard Issue Tracker:https://github.com/johanhil/copy-to-clipboard/issues -Donate: + Summary:Copy to clipboard via the share menu Description: Copy to Clipboard integrates in to the Share menu, allowing you to @@ -15,9 +15,12 @@ SMS/e-mail/tweet/etc. This is useful when you want to share text to an application that does not implement the regular "send to" functionality, such as GTalk. . + Repo Type:git Repo:https://github.com/johanhil/copy-to-clipboard.git -Use Built:Yes + Build Version:1.0,2,c6c466770fb7215d957118216c2414ae69ca1bc8,target=4 + Market Version:1.0 Market Version Code:2 + diff --git a/metadata/se.johanhil.duckduckgo.txt b/metadata/se.johanhil.duckduckgo.txt index 9abbcea0..88efb27b 100644 --- a/metadata/se.johanhil.duckduckgo.txt +++ b/metadata/se.johanhil.duckduckgo.txt @@ -1,16 +1,16 @@ -Use Built:Yes -License:Apache2 Category:Internet +License:Apache2 Web Site:https://github.com/johanhil/ddg-android Source Code:https://github.com/johanhil/ddg-android Issue Tracker:https://github.com/johanhil/ddg-android/issues -Donate: + Summary:DuckDuckGo search provider Description: Integrates the search engine DuckDuckGo with the Android OS. It adds another web search provider to the system and some neat suggestions for the user. . + Repo Type:git Repo:https://github.com/johanhil/ddg-android.git @@ -18,3 +18,4 @@ Build Version:0.1,1,5a8b23c01eff6560bb9f5a815187c389f421b2b2,target=android-4 Market Version:0.1 Market Version Code:1 + diff --git a/metadata/se.peterbjorkman.android.trafikinfo.txt b/metadata/se.peterbjorkman.android.trafikinfo.txt index 044d109f..cead3237 100644 --- a/metadata/se.peterbjorkman.android.trafikinfo.txt +++ b/metadata/se.peterbjorkman.android.trafikinfo.txt @@ -1,17 +1,21 @@ -License:GPLv3+ Category:Navigation +License:GPLv3+ Web Site:http://android.trafikinfo.nu/ Source Code:http://code.google.com/p/trafikinfoandroid/source/checkout Issue Tracker:http://code.google.com/p/trafikinfoandroid/issues/list + Summary:Show Swedish traffic information Description: This application shows traffic information received from Trafikverket, the Swedish Transport Administration. . + Repo Type:svn Repo:http://trafikinfoandroid.googlecode.com/svn/trunk + Build Version:0.9,12,628,encoding=utf-8 Build Version:0.9.1,13,630,encoding=utf-8 -Use Built:Yes + Market Version:0.9.1 Market Version Code:13 + diff --git a/metadata/seanfoy.wherering.txt b/metadata/seanfoy.wherering.txt index c8f0da89..7522ea05 100644 --- a/metadata/seanfoy.wherering.txt +++ b/metadata/seanfoy.wherering.txt @@ -1,12 +1,15 @@ -License:GPLv3 Category:Navigation +License:GPLv3 Web Site:http://code.google.com/p/wherering/ Source Code:http://code.google.com/p/wherering/source/checkout Issue Tracker:http://code.google.com/p/wherering/issues/list + Summary:Automatically change ring mode by location Description: Automatically changes the phone's ring mode (silent, vibrate, etc) according to your current location. . + Market Version:1.99.0 Market Version Code:99 + diff --git a/metadata/template b/metadata/template index a25143bc..fbc6619d 100644 --- a/metadata/template +++ b/metadata/template @@ -1,9 +1,10 @@ -License: Category: +License: Web Site: Source Code: Issue Tracker: Donate: + Summary: Description: diff --git a/metadata/tkj.android.homecontrol.mythmote.txt b/metadata/tkj.android.homecontrol.mythmote.txt index b2874feb..7ee80013 100644 --- a/metadata/tkj.android.homecontrol.mythmote.txt +++ b/metadata/tkj.android.homecontrol.mythmote.txt @@ -1,16 +1,18 @@ -License:GPLv2 Category:Multimedia +License:GPLv2 Web Site:http://code.google.com/p/mythmote/ Source Code:http://code.google.com/p/mythmote/source/checkout Issue Tracker:http://code.google.com/p/mythmote/issues/list + Summary:Remote control for MythTV Description: A network remote control for MythTV. . -Market Version:1.5.1 -Market Version Code:10 Repo Type:svn Repo:http://mythmote.googlecode.com/svn/trunk/ +Market Version:1.5.1 +Market Version Code:10 + #Build Version:1.4.0,8,126,rm=src/tkj/android/homecontrol/mythmote/R.java diff --git a/metadata/to.networld.android.divedroid.txt b/metadata/to.networld.android.divedroid.txt index 8cbe702f..cc1edc16 100644 --- a/metadata/to.networld.android.divedroid.txt +++ b/metadata/to.networld.android.divedroid.txt @@ -1,8 +1,9 @@ -Use Built:Yes -License:GPLv3 Category:Office +License:GPLv3 Web Site:http://divedroid.android.networld.to Source Code:git://networld.to/var/scm/android/DiveDroid.git +Issue Tracker: + Summary:Scuba Dive Logbook Description: Android Dive Logbook. Based on http://scubadive.networld.to @@ -22,7 +23,3 @@ Repo:git://networld.to/var/scm/android/DiveDroid.git Build Version:0.6,1,c50b1e638253cedf32dce49ef836fd30ba6071f9,encoding=utf-8,prebuild=mkdir libs && cd libs && wget http://dist.codehaus.org/jaxen/distributions/jaxen-1.1.3.zip && unzip -j jaxen-1.1.3.zip jaxen-1.1.3/jaxen-1.1.3.jar && rm *.zip && wget -O org.dom4j.jar http://sourceforge.net/projects/dom4j/files/dom4j-2.0.0-ALPHA-2/dom4j-2.0.0-ALPHA-2.jar/download && wget http://achartengine.googlecode.com/files/achartengine-0.5.0.jar && cd .. - - - - diff --git a/metadata/to.networld.android.foafviewer.txt b/metadata/to.networld.android.foafviewer.txt index eae041b6..dc85f7d4 100644 --- a/metadata/to.networld.android.foafviewer.txt +++ b/metadata/to.networld.android.foafviewer.txt @@ -1,8 +1,10 @@ -Use Built:Yes -License:GPLv3 +Disabled:Build problem Category:Office +License:GPLv3 Web Site:http://foafviewer.android.networld.to Source Code:git://networld.to/var/scm/android/FOAFViewer.git +Issue Tracker: + Summary:FOAF (Friend Of A Friend) Viewer Description: FOAF (Friend Of A Friend) Viewer with support for recursive @@ -15,7 +17,6 @@ Repo:git://networld.to/var/scm/android/FOAFViewer.git Build Version:0.11,3,FOAFViewer_v0.11,prebuild=mkdir libs && cd libs && wget http://dist.codehaus.org/jaxen/distributions/jaxen-1.1.3.zip && unzip -j jaxen-1.1.3.zip jaxen-1.1.3/jaxen-1.1.3.jar && rm *.zip && wget -O org.dom4j.jar http://sourceforge.net/projects/dom4j/files/dom4j-2.0.0-ALPHA-2/dom4j-2.0.0-ALPHA-2.jar/download && cd .. -Disabled:Build problem # # Dependencies resolved I think (see above), but there is still a build error: # @@ -24,4 +25,3 @@ Disabled:Build problem # [javac] required: java.util.List # [javac] return this.document.selectNodes(""); # - diff --git a/metadata/tuioDroid.impl.txt b/metadata/tuioDroid.impl.txt index 2152f44e..2e551240 100644 --- a/metadata/tuioDroid.impl.txt +++ b/metadata/tuioDroid.impl.txt @@ -1,9 +1,9 @@ -License:GPLv3 Category:System +License:GPLv3 Web Site:https://code.google.com/p/tuiodroid/ Source Code:https://code.google.com/p/tuiodroid/source/checkout Issue Tracker:https://code.google.com/p/tuiodroid/issues/list -Donate: + Summary:TUIO tracker Description: A TUIO tracker which allows multi-touch control input, which is sent to a @@ -17,3 +17,4 @@ Build Version:1.0,4,28,subdir=TUIOdroid,prebuild=rm -rf bin && rm -rf gen,target Market Version:1.0 Market Version Code:4 + diff --git a/metadata/urbanstew.RehearsalAssistant.txt b/metadata/urbanstew.RehearsalAssistant.txt index 877e18ba..8ec8be16 100644 --- a/metadata/urbanstew.RehearsalAssistant.txt +++ b/metadata/urbanstew.RehearsalAssistant.txt @@ -1,9 +1,9 @@ -Use Built:Yes -License:GPL Category:Office +License:GPL Web Site:http://urbanstew.org/rehearsalassistant/ Source Code:http://sourceforge.net/projects/rehearsalassist/develop Issue Tracker:http://sourceforge.net/tracker/?group_id=226240 + Summary:A voice/sound recording tool Description: A voice / sound recording utility with two modes of operation: @@ -13,6 +13,7 @@ A voice / sound recording utility with two modes of operation: Either mode allows you to review and e-mail the recordings afterward. . + Repo Type:svn Repo:https://rehearsalassist.svn.sourceforge.net/svnroot/rehearsalassist/android/trunk @@ -21,3 +22,4 @@ Build Version:0.9,26,!Source missing - see https://sourceforge.net/tracker/index Market Version:0.9 Market Version Code:26 + diff --git a/metadata/vu.de.urpool.quickdroid.txt b/metadata/vu.de.urpool.quickdroid.txt index e095db85..3c351a08 100644 --- a/metadata/vu.de.urpool.quickdroid.txt +++ b/metadata/vu.de.urpool.quickdroid.txt @@ -1,9 +1,9 @@ -Use Built:Yes -License:Apache2 Category:System +License:Apache2 Web Site:http://code.google.com/p/quickdroid/ Source Code:http://code.google.com/p/quickdroid/source/checkout Issue Tracker:http://code.google.com/p/quickdroid/issues/list + Summary:Quickly search apps, contacts, bookmarks and music. Description: Quickly search, find and launch apps, contacts, bookmarks, artists, @@ -21,3 +21,4 @@ Build Version:3.0.1,38,76,subdir=Quickdroid,target=android-10 Market Version:4.0.1 Market Version Code:41 + From 6c475c405897862ef042f379803d137dd50b0a89 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Tue, 10 Jan 2012 23:51:43 +0000 Subject: [PATCH 48/75] Made checkmarket2 update metadata nicely instead of hackily --- checkmarket2.py | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/checkmarket2.py b/checkmarket2.py index f1a7d805..0d631061 100755 --- a/checkmarket2.py +++ b/checkmarket2.py @@ -67,20 +67,10 @@ for app in apps: print "...up to date" else: print '...updating to version:' + version + ' vercode:' + vercode - newdata = '' + app['Market Version'] = version + app['Market Version Code'] = vercode metafile = os.path.join('metadata', app['id'] + '.txt') - mf = open(metafile, 'r') - for line in mf: - if line.startswith('Market Version:'): - newdata += 'Market Version:' + version + '\n' - elif line.startswith('Market Version Code:'): - newdata += 'Market Version Code:' + vercode + '\n' - else: - newdata += line - mf.close() - mf = open(metafile, 'w') - mf.write(newdata) - mf.close() + common.write_metadata(metafile, app) time.sleep(5) From 8de888680f07a596ab39838f7ee5ac7523e3b448 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Tue, 10 Jan 2012 23:57:05 +0000 Subject: [PATCH 49/75] Metadata: version updates --- metadata/com.andrewshu.android.reddit.txt | 4 ++-- metadata/com.appengine.paranoid_android.lost.txt | 3 +++ metadata/com.bottleworks.dailymoney.txt | 3 +++ metadata/com.chessclock.android.txt | 3 +++ metadata/com.jadn.cc.txt | 3 +++ metadata/com.morphoss.acal.txt | 5 +++-- metadata/com.totsp.crossword.shortyz.txt | 3 +++ metadata/com.voidcode.diasporawebclient.txt | 3 +++ metadata/edu.rit.poe.atomix.txt | 3 +++ metadata/info.guardianproject.cacert.txt | 3 +++ metadata/org.hermit.dazzle.txt | 3 +++ metadata/org.mozilla.firefox.txt | 3 +++ metadata/org.sparkleshare.android.txt | 3 +++ metadata/org.thoughtcrime.securesms.txt | 3 +++ metadata/ru.orangesoftware.financisto.txt | 3 +++ 15 files changed, 44 insertions(+), 4 deletions(-) diff --git a/metadata/com.andrewshu.android.reddit.txt b/metadata/com.andrewshu.android.reddit.txt index 4d1cc15c..7a3836ff 100644 --- a/metadata/com.andrewshu.android.reddit.txt +++ b/metadata/com.andrewshu.android.reddit.txt @@ -22,6 +22,6 @@ Build Version:1.2.1.2,75,28c98a7,prebuild=rsync -r lib/ libs,target=android-10 Build Version:1.2.1.3,76,143892b558,prebuild=rsync -r lib/ libs,target=android-10 Build Version:1.2.1.5,78,!more dependency shuffling required and watch out for the proguard config -Market Version:1.2.2a -Market Version Code:81 +Market Version:1.2.2b +Market Version Code:82 diff --git a/metadata/com.appengine.paranoid_android.lost.txt b/metadata/com.appengine.paranoid_android.lost.txt index da8369c9..1796a1a1 100644 --- a/metadata/com.appengine.paranoid_android.lost.txt +++ b/metadata/com.appengine.paranoid_android.lost.txt @@ -20,3 +20,6 @@ Repo:http://contactowner.googlecode.com/svn/branches/v2next/ Build Version:2.2,12,44,target=android-4 +Market Version:2.2 +Market Version Code:22 + diff --git a/metadata/com.bottleworks.dailymoney.txt b/metadata/com.bottleworks.dailymoney.txt index cc4e0351..8de3d59f 100644 --- a/metadata/com.bottleworks.dailymoney.txt +++ b/metadata/com.bottleworks.dailymoney.txt @@ -18,6 +18,9 @@ Features: Repo Type:svn Repo:https://daily-money.googlecode.com/svn/trunk/ +Market Version:0.9.7-0702-freshly +Market Version Code:2011070200 + # Does not build yet #Build Version:0.9.7-0702-freshly,2011070200,218,subdir=dailymoney-surface/,target=android-7,prebuild=\ # cp build.xml local.properties ../dailymoney/ && \ diff --git a/metadata/com.chessclock.android.txt b/metadata/com.chessclock.android.txt index 73c90a21..5ef2b876 100644 --- a/metadata/com.chessclock.android.txt +++ b/metadata/com.chessclock.android.txt @@ -15,3 +15,6 @@ Repo:https://code.google.com/p/simplechessclock/ Build Version:1.2.0,8,379155447bff,subdir=simplechessclock,target=android-8 +Market Version:1.2.0 +Market Version Code:8 + diff --git a/metadata/com.jadn.cc.txt b/metadata/com.jadn.cc.txt index efede105..d5ac2b66 100644 --- a/metadata/com.jadn.cc.txt +++ b/metadata/com.jadn.cc.txt @@ -20,3 +20,6 @@ Repo:git://github.com/bherrmann7/Car-Cast.git Build Version:1.0.129,129,7a879c6bfa51b5d80401b84e031bf4ff2981bb8c,subdir=cc,target=android-8,rm=cc/libs/admob-sdk-android.jar,patch=admob.patch +Market Version:1.0.129 +Market Version Code:129 + diff --git a/metadata/com.morphoss.acal.txt b/metadata/com.morphoss.acal.txt index da9e069f..ba286c4f 100644 --- a/metadata/com.morphoss.acal.txt +++ b/metadata/com.morphoss.acal.txt @@ -26,7 +26,8 @@ Build Version:1.31,33,r1.31,target=android-8 Build Version:1.32,34,r1.32,target=android-8 Build Version:1.33,35,r1.33,target=android-8 Build Version:1.34,36,r1.34,target=android-8 +Build Version:1.35,37,r1.35,target=android-8 -Market Version:1.34 -Market Version Code:36 +Market Version:1.35 +Market Version Code:37 diff --git a/metadata/com.totsp.crossword.shortyz.txt b/metadata/com.totsp.crossword.shortyz.txt index 9d387d27..84184627 100644 --- a/metadata/com.totsp.crossword.shortyz.txt +++ b/metadata/com.totsp.crossword.shortyz.txt @@ -16,3 +16,6 @@ Build Version:3.1.0,30100,1ce970a00083,subdir=shortyz,target=android-11,prebuild cd ../puzlib && mvn package && mv target/*.jar ../shortyz/libs && rm -rf target &&\ cd ../shortyz +Market Version:3.1.7 +Market Version Code:30107 + diff --git a/metadata/com.voidcode.diasporawebclient.txt b/metadata/com.voidcode.diasporawebclient.txt index ec6573ca..d9fac683 100644 --- a/metadata/com.voidcode.diasporawebclient.txt +++ b/metadata/com.voidcode.diasporawebclient.txt @@ -14,3 +14,6 @@ Repo:https://github.com/voidcode/Diaspora-Webclient.git Build Version:1.3,3,26d7120fea1af5835a17537bebeef6df523d57e6,prebuild=rm -rf gen/ && rm -rf bin/,target=android-10 +Market Version:1.5 +Market Version Code:6 + diff --git a/metadata/edu.rit.poe.atomix.txt b/metadata/edu.rit.poe.atomix.txt index c30e0b13..b52769d5 100644 --- a/metadata/edu.rit.poe.atomix.txt +++ b/metadata/edu.rit.poe.atomix.txt @@ -16,3 +16,6 @@ Repo:https://droid-atomix.googlecode.com/hg/ Build Version:1.0.1,2,ea2086d1f9fe759866008f6fe5187fc1cc97bd1d,target=android-4,prebuild=sed -i -e "/key\.alias.*/d" -e "/key\.store.*/d" *.properties +Market Version:1.0.1 +Market Version Code:2 + diff --git a/metadata/info.guardianproject.cacert.txt b/metadata/info.guardianproject.cacert.txt index 29d783f0..2e8de754 100644 --- a/metadata/info.guardianproject.cacert.txt +++ b/metadata/info.guardianproject.cacert.txt @@ -23,3 +23,6 @@ Repo:https://github.com/guardianproject/cacert.git Build Version:0.0.2-20110906,3,0.0.2,target=android-8,subdir=app Build Version:0.0.2.20111012,4,212187e9c398e46fda87fe2335ee48bb693caca0,target=android-8,subdir=app +Market Version:0.0.2-20110906 +Market Version Code:3 + diff --git a/metadata/org.hermit.dazzle.txt b/metadata/org.hermit.dazzle.txt index c0b91037..6e943f51 100644 --- a/metadata/org.hermit.dazzle.txt +++ b/metadata/org.hermit.dazzle.txt @@ -15,6 +15,9 @@ supported devices, brightness lets you toggle between auto and manual modes. Repo Type:svn Repo:http://moonblink.googlecode.com/svn/trunk +Market Version:2.9 +Market Version Code:12 + # Build fails, probably also needs to build ../HermitLibrary #Build Version:2.9,12,907,subdir=Dazzle,target=android-4,prebuild=\ # cp build.xml local.properties ../HermitAndroid/ && \ diff --git a/metadata/org.mozilla.firefox.txt b/metadata/org.mozilla.firefox.txt index 15d8bd94..98d68311 100644 --- a/metadata/org.mozilla.firefox.txt +++ b/metadata/org.mozilla.firefox.txt @@ -9,3 +9,6 @@ Description: Firefox Mobile web browser. . +Market Version:9.0 +Market Version Code:2011121613 + diff --git a/metadata/org.sparkleshare.android.txt b/metadata/org.sparkleshare.android.txt index ba4fa3aa..7d57ae4e 100644 --- a/metadata/org.sparkleshare.android.txt +++ b/metadata/org.sparkleshare.android.txt @@ -18,3 +18,6 @@ Repo:https://github.com/NewProggie/SparkleShare-Android.git Build Version:1.0,1,a9e23f0f9ae6161a786bf48cb48ab3dec20110c9,prebuild=rm -rf gen/ && rm -rf bin/,target=android-7 +Market Version:1.0 +Market Version Code:1 + diff --git a/metadata/org.thoughtcrime.securesms.txt b/metadata/org.thoughtcrime.securesms.txt index 7c665cd1..8dbee37c 100644 --- a/metadata/org.thoughtcrime.securesms.txt +++ b/metadata/org.thoughtcrime.securesms.txt @@ -18,3 +18,6 @@ Repo:https://github.com/WhisperSystems/TextSecure.git Build Version:0.5.7,21,6a30867fd481474e8634b508d524863bc8a6b565,target=android-10 +Market Version:0.5.7 +Market Version Code:21 + diff --git a/metadata/ru.orangesoftware.financisto.txt b/metadata/ru.orangesoftware.financisto.txt index ec8b7c03..7b535a56 100644 --- a/metadata/ru.orangesoftware.financisto.txt +++ b/metadata/ru.orangesoftware.financisto.txt @@ -20,5 +20,8 @@ Personal finance manager Repo Type:bzr Repo:lp:financisto +Market Version:1.5.4u1 +Market Version Code:59 + # Build fails, wrong path to GreenDroid library #Build Version:1.5.4,57,303,target=android-4 From fd4abbfc8159b46e310e4e6f8784db7b92c9a3e8 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Wed, 11 Jan 2012 00:02:38 +0000 Subject: [PATCH 50/75] Metadata: bad tag? --- metadata/com.morphoss.acal.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/metadata/com.morphoss.acal.txt b/metadata/com.morphoss.acal.txt index ba286c4f..51214d9c 100644 --- a/metadata/com.morphoss.acal.txt +++ b/metadata/com.morphoss.acal.txt @@ -26,7 +26,6 @@ Build Version:1.31,33,r1.31,target=android-8 Build Version:1.32,34,r1.32,target=android-8 Build Version:1.33,35,r1.33,target=android-8 Build Version:1.34,36,r1.34,target=android-8 -Build Version:1.35,37,r1.35,target=android-8 Market Version:1.35 Market Version Code:37 From de2351f41e8893fb23d98ab11841f67c522b3d25 Mon Sep 17 00:00:00 2001 From: Nicolas Raoul Date: Wed, 11 Jan 2012 14:38:21 +0900 Subject: [PATCH 51/75] Started working on OI Flashlight but I put it as Disabled because of a build problem with OI DistributionLibrary --- metadata/org.openintents.flashlight.txt | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 metadata/org.openintents.flashlight.txt diff --git a/metadata/org.openintents.flashlight.txt b/metadata/org.openintents.flashlight.txt new file mode 100644 index 00000000..6fcb1ce1 --- /dev/null +++ b/metadata/org.openintents.flashlight.txt @@ -0,0 +1,21 @@ +Disabled:Build problem +Category:Office +License:Apache2 +Web Site:http://code.google.com/p/openintents +Source Code:http://code.google.com/p/openintents/source/browse/#svn%2Ftrunk%2Fflashlight%2FFlashlight +Issue Tracker:http://code.google.com/p/openintents/issues + +Summary:A flashlight to see in the dark +Description: +A flashlight with color settings. +It can use the phone's screen, or the flash of the phone's camera if there is one. +. + +Repo Type:svn +Repo:http://openintents.googlecode.com/svn/trunk/flashlight/Flashlight + +Build Version:1.1,10011,3971,target=android-15 + +Market Version:1.1 +Market Version Code:10011 + From b1ff4edd377348900a48cfa3942aa9c2d4c6f614 Mon Sep 17 00:00:00 2001 From: Nicolas Raoul Date: Wed, 11 Jan 2012 18:21:05 +0900 Subject: [PATCH 52/75] Added Prey. I did not enter any c2dm API key, but build works and the built app seems to launch correcly (I havent registered to Prey though) --- metadata/com.prey.txt | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 metadata/com.prey.txt diff --git a/metadata/com.prey.txt b/metadata/com.prey.txt new file mode 100644 index 00000000..9fff0be0 --- /dev/null +++ b/metadata/com.prey.txt @@ -0,0 +1,28 @@ +Category:System +License:GPLv3 +Web Site:http://preyproject.com +Source Code:https://github.com/prey/prey-android-client/ +Issue Tracker:https://github.com/prey/prey-android-client/issues + +Summary:Anti-theft software +Description: +Track down your lost or stolen phone or tablet. +Prey lets you keep track of all your devices easily on one place. Supports: +- GPS + Wifi geo-location. +- SIM change detection. +- SMS or Push (On Demand) activation (2.2+). +- Lock phone/tablet for privacy (2.2+). +- Uninstall protection (2.2+). +- Loud alarm sound. +- Alert messages to user. +. + +Repo Type:git +Repo:https://github.com/prey/prey-android-client + +Build Version:0.5,34,8934cda82af81580a26cf4de233da15feaab1dfd,prebuild=echo "ask-for-password=true\nprey-minor-version=0\nprey-versionon=0.5\nprey-subdomain=control\nprey-domain=preyproject.com\n#c2dm\nc2dm-mail=\nc2dm-action=\nc2dm-message-sync=" > res/raw/config +# TODO: c2dm (aka "push API") seems to require an API key from Google, see http://code.google.com/android/c2dm/index.html + +Market Version:0.5 +Market Version Code:34 + From 727e4364602084a6d30c04bb239e86948cf669e9 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Wed, 11 Jan 2012 09:58:02 +0000 Subject: [PATCH 53/75] Metadata: Prey disabled, and antifeatures added --- metadata/com.prey.txt | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/metadata/com.prey.txt b/metadata/com.prey.txt index 9fff0be0..5cd1b053 100644 --- a/metadata/com.prey.txt +++ b/metadata/com.prey.txt @@ -1,3 +1,6 @@ +Disabled:C2DM API key required +#NonFreeDep because it requires the Market app to be installed, for C2DM +AntiFeatures:NonFreeNet,NonFreeDep Category:System License:GPLv3 Web Site:http://preyproject.com @@ -20,8 +23,8 @@ Prey lets you keep track of all your devices easily on one place. Supports: Repo Type:git Repo:https://github.com/prey/prey-android-client -Build Version:0.5,34,8934cda82af81580a26cf4de233da15feaab1dfd,prebuild=echo "ask-for-password=true\nprey-minor-version=0\nprey-versionon=0.5\nprey-subdomain=control\nprey-domain=preyproject.com\n#c2dm\nc2dm-mail=\nc2dm-action=\nc2dm-message-sync=" > res/raw/config # TODO: c2dm (aka "push API") seems to require an API key from Google, see http://code.google.com/android/c2dm/index.html +Build Version:0.5,34,8934cda82af81580a26cf4de233da15feaab1dfd,prebuild=echo "ask-for-password=true\nprey-minor-version=0\nprey-versionon=0.5\nprey-subdomain=control\nprey-domain=preyproject.com\n#c2dm\nc2dm-mail=\nc2dm-action=\nc2dm-message-sync=" > res/raw/config Market Version:0.5 Market Version Code:34 From 6bdb9dae56868212e0c14c5dae901877a95989a4 Mon Sep 17 00:00:00 2001 From: Nicolas Raoul Date: Wed, 11 Jan 2012 21:34:57 +0900 Subject: [PATCH 54/75] Added App Alarm --- .../com.episode6.android.appalarm.lite.txt | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 metadata/com.episode6.android.appalarm.lite.txt diff --git a/metadata/com.episode6.android.appalarm.lite.txt b/metadata/com.episode6.android.appalarm.lite.txt new file mode 100644 index 00000000..cd95aa3a --- /dev/null +++ b/metadata/com.episode6.android.appalarm.lite.txt @@ -0,0 +1,20 @@ +Category:System +License:GPLv2 +Web Site:http://episode6.wordpress.com/2010/03/27/appalarm/ +Source Code:https://github.com/ghackett/AppAlarm +Issue Tracker:https://github.com/ghackett/AppAlarm/issues + +Summary:App Alarm +Description: +Turn any app into an Alarm Clock. +Schedule any app for anytime. +. + +Repo Type:git +Repo:https://github.com/ghackett/AppAlarm + +Build Version:1.2.6,30,af9d89993212c67bfc510ed082381afc7abcd95a + +Market Version:1.2.6 +Market Version Code:30 + From c584c20b09605c7a973ea67dfedee496027e7091 Mon Sep 17 00:00:00 2001 From: Nicolas Raoul Date: Wed, 11 Jan 2012 21:18:55 +0900 Subject: [PATCH 55/75] Added: Rotation Lock --- metadata/org.penghuang.tools.rotationlock.txt | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 metadata/org.penghuang.tools.rotationlock.txt diff --git a/metadata/org.penghuang.tools.rotationlock.txt b/metadata/org.penghuang.tools.rotationlock.txt new file mode 100644 index 00000000..3c63af5b --- /dev/null +++ b/metadata/org.penghuang.tools.rotationlock.txt @@ -0,0 +1,22 @@ +Category:System +License:GPLv2 +Web Site:https://market.android.com/details?id=org.penghuang.tools.rotationlock +Source Code:https://github.com/phuang/RotationLock +Issue Tracker:https://github.com/phuang/RotationLock/issues + +Summary:Rotation Lock +Description: +Turn on/off Auto-rotate screen quickly by long pressing search button. + +When you are lying on bed. The screen changes to landscape. Have to open system settings to disable Auto-rotate screen. Did you find it is really inconvenient? This app provides a super easy way for switching this setting. +And it provides a state icon to indicate the current setting. +. + +Repo Type:git +Repo:https://github.com/phuang/RotationLock + +Build Version:1.4,5,7c5d43c2ed17a9329abf6b6af07f150e7d0cbd5b + +Market Version:1.4 +Market Version Code:5 + From bbdb94b95f6b7229c89af02c5a92e876ae393277 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Wed, 11 Jan 2012 12:57:02 +0000 Subject: [PATCH 56/75] Metadata: minor formatting --- metadata/com.bwx.bequick.txt | 3 --- metadata/org.adaway.txt | 1 + 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/metadata/com.bwx.bequick.txt b/metadata/com.bwx.bequick.txt index e08b20d1..7b8d974f 100644 --- a/metadata/com.bwx.bequick.txt +++ b/metadata/com.bwx.bequick.txt @@ -14,9 +14,6 @@ controls. Repo Type:svn Repo:http://quick-settings.googlecode.com/svn/trunk/quick-settings/ -#Don't know why the market version has a slightly different version code... -Build Version:1.9.8 p2,201012061,!Different market code -#Don't know why the market version has a slightly different version code... Build Version:1.9.8 p2,201012060,184,target=android-8 Build Version:1.9.9.2,201106160,213,target=android-8 Build Version:1.9.9.3,201107260,220,target=android-8 diff --git a/metadata/org.adaway.txt b/metadata/org.adaway.txt index 448fa847..fe0bf19a 100644 --- a/metadata/org.adaway.txt +++ b/metadata/org.adaway.txt @@ -23,3 +23,4 @@ Build Version:1.20,21,695e3801e4081026c8f7213a2345fc451d5eb89c,subdir=org_adaway Market Version:1.20 Market Version Code:21 + From a87ceabd04551a737557b0554d6f036c882afa89 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Wed, 11 Jan 2012 12:58:47 +0000 Subject: [PATCH 57/75] Metadata: sdk target for rotationlock --- metadata/org.penghuang.tools.rotationlock.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata/org.penghuang.tools.rotationlock.txt b/metadata/org.penghuang.tools.rotationlock.txt index 3c63af5b..d9dad556 100644 --- a/metadata/org.penghuang.tools.rotationlock.txt +++ b/metadata/org.penghuang.tools.rotationlock.txt @@ -15,7 +15,7 @@ And it provides a state icon to indicate the current setting. Repo Type:git Repo:https://github.com/phuang/RotationLock -Build Version:1.4,5,7c5d43c2ed17a9329abf6b6af07f150e7d0cbd5b +Build Version:1.4,5,7c5d43c2ed17a9329abf6b6af07f150e7d0cbd5b,target=android-4 Market Version:1.4 Market Version Code:5 From 682fb032279968712543570f8f4a0ee237424234 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Wed, 11 Jan 2012 15:23:10 +0000 Subject: [PATCH 58/75] Parse description properly, whoops --- common.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/common.py b/common.py index cac6a345..5aea8db2 100644 --- a/common.py +++ b/common.py @@ -502,7 +502,7 @@ def parse_description(lines): if not text.endswith('\n') and len(text) > 0: text += ' ' text += line - return '' + return text class BuildException(Exception): From ce11ec0e7c229fc729461db857ff8ad11551c16b Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Wed, 11 Jan 2012 19:59:26 +0000 Subject: [PATCH 59/75] Metadata: can't build andLess, added binary --- metadata/net.avs234.txt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/metadata/net.avs234.txt b/metadata/net.avs234.txt index e3f1b6af..e138bdda 100644 --- a/metadata/net.avs234.txt +++ b/metadata/net.avs234.txt @@ -11,9 +11,13 @@ any formats natively supported by Android. CUE sheets and playlists are also supported. . -Repo Type:svn +Repo Type:git-svn Repo:http://andless.googlecode.com/svn/trunk/ +#Can't build this without modifying the NDK - http://code.google.com/p/andless/wiki/Building +#Binary of this version in the repo +#Build Version:1.3.3,10,91,buildjni=yes + Market Version:1.3.3 Market Version Code:10 From 55f20a7b7e5c91eb74f455cba0a2238cbbe5b345 Mon Sep 17 00:00:00 2001 From: Philipp Wollschlegel Date: Wed, 11 Jan 2012 21:14:00 +0100 Subject: [PATCH 60/75] metadata for xcsoar v.2.6.4 --- metadata/org.xcsoar.txt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 metadata/org.xcsoar.txt diff --git a/metadata/org.xcsoar.txt b/metadata/org.xcsoar.txt new file mode 100644 index 00000000..b2c358c5 --- /dev/null +++ b/metadata/org.xcsoar.txt @@ -0,0 +1,16 @@ +Category:Navigation +License:GPLv2 + +Web site:http://xcsoar.org/ +Source code:http://git.xcsoar.org/cgit/master/xcsoar.git/ +Issue tracker:http://xcsoar.org/trac/report +Summary:Tactical glide computer for Para/Soaring Pilots +Description: +XCSoar is a tactical glide computer for soaring and para glider pilots. It supports navigation, airspace warnings, final glide calculations, wind calculation, collision avoidance and many many more features. +. +Donate: + +Repo Type:git +Repo:http://git.xcsoar.org/cgit/master/xcsoar.git/ + +Build Version:6.2.4,51,95a3ad045eb05cb69b11b274f27c7eae387b9c40 From 6daec7a6a7ec6c95e8233e57875d66bf1a4b68db Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Wed, 11 Jan 2012 21:20:47 +0000 Subject: [PATCH 61/75] Metadata: can't build that --- metadata/org.xcsoar.txt | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/metadata/org.xcsoar.txt b/metadata/org.xcsoar.txt index b2c358c5..7df8fdb1 100644 --- a/metadata/org.xcsoar.txt +++ b/metadata/org.xcsoar.txt @@ -1,16 +1,21 @@ Category:Navigation License:GPLv2 +Web Site:http://xcsoar.org/ +Source Code:http://git.xcsoar.org/cgit/master/xcsoar.git/ +Issue Tracker:http://xcsoar.org/trac/report -Web site:http://xcsoar.org/ -Source code:http://git.xcsoar.org/cgit/master/xcsoar.git/ -Issue tracker:http://xcsoar.org/trac/report Summary:Tactical glide computer for Para/Soaring Pilots -Description: -XCSoar is a tactical glide computer for soaring and para glider pilots. It supports navigation, airspace warnings, final glide calculations, wind calculation, collision avoidance and many many more features. +Description: +XCSoar is a tactical glide computer for soaring and para glider pilots. It +supports navigation, airspace warnings, final glide calculations, wind +calculation, collision avoidance and many many more features. . -Donate: Repo Type:git Repo:http://git.xcsoar.org/cgit/master/xcsoar.git/ -Build Version:6.2.4,51,95a3ad045eb05cb69b11b274f27c7eae387b9c40 +Market Version:6.2.4 +Market Version Code:51 + +#Far too difficult to build - binary in repo +#Build Version:6.2.4,51,95a3ad045eb05cb69b11b274f27c7eae387b9c40 From 88d549a078221cafd32e94f4737a8f705ed47ffe Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Wed, 11 Jan 2012 21:30:40 +0000 Subject: [PATCH 62/75] Metadata: new coolreader version --- metadata/org.coolreader.txt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/metadata/org.coolreader.txt b/metadata/org.coolreader.txt index fe586337..04728ee2 100644 --- a/metadata/org.coolreader.txt +++ b/metadata/org.coolreader.txt @@ -51,7 +51,8 @@ Build Version:3.0.54-5,275,cr3.0.54-5,subdir=android,rm=android/build.properties Build Version:3.0.54-9,279,cr3.0.54-9,subdir=android,rm=android/build.properties,buildjni=yes Build Version:3.0.54-33,303,cr3.0.54-33,subdir=android,rm=android/build.properties,buildjni=yes Build Version:3.0.54-38,308,cr3.0.54-38,subdir=android,rm=android/build.properties,buildjni=yes +Build Version:3.0.54-47,447,cr3.0.54-47,subdir=android,rm=android/build.properties,buildjni=yes -Market Version:3.0.54-38 -Market Version Code:308 +Market Version:3.0.54-47 +Market Version Code:447 From 98936686a57a99244949634c049a0530ee1ef1d7 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Wed, 11 Jan 2012 21:32:00 +0000 Subject: [PATCH 63/75] Metadata: version updates --- metadata/com.prey.txt | 2 +- metadata/net.avs234.txt | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/metadata/com.prey.txt b/metadata/com.prey.txt index 5cd1b053..f657a062 100644 --- a/metadata/com.prey.txt +++ b/metadata/com.prey.txt @@ -27,5 +27,5 @@ Repo:https://github.com/prey/prey-android-client Build Version:0.5,34,8934cda82af81580a26cf4de233da15feaab1dfd,prebuild=echo "ask-for-password=true\nprey-minor-version=0\nprey-versionon=0.5\nprey-subdomain=control\nprey-domain=preyproject.com\n#c2dm\nc2dm-mail=\nc2dm-action=\nc2dm-message-sync=" > res/raw/config Market Version:0.5 -Market Version Code:34 +Market Version Code:33 diff --git a/metadata/net.avs234.txt b/metadata/net.avs234.txt index e138bdda..d045711b 100644 --- a/metadata/net.avs234.txt +++ b/metadata/net.avs234.txt @@ -17,7 +17,6 @@ Repo:http://andless.googlecode.com/svn/trunk/ #Can't build this without modifying the NDK - http://code.google.com/p/andless/wiki/Building #Binary of this version in the repo #Build Version:1.3.3,10,91,buildjni=yes - Market Version:1.3.3 Market Version Code:10 From 965cc7ca39ab5c232c5c130accf6221a137261cb Mon Sep 17 00:00:00 2001 From: Tovok7 Date: Wed, 11 Jan 2012 23:25:05 +0100 Subject: [PATCH 64/75] added spirit level app --- metadata/net.androgames.level.txt | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 metadata/net.androgames.level.txt diff --git a/metadata/net.androgames.level.txt b/metadata/net.androgames.level.txt new file mode 100644 index 00000000..0fa414d6 --- /dev/null +++ b/metadata/net.androgames.level.txt @@ -0,0 +1,23 @@ +Category:None +License:GPLv3 +Web Site:https://code.google.com/p/androgames-sample/ +Source Code:http://code.google.com/p/androgames-sample/source/browse/#svn/Market-apps/Level/trunk +Issue Tracker: +Donate:https://market.android.com/details?id=net.androgames.level.donate + +Summary:A spirit level +Description: +Hold any of the phone's four sides against an object to test it for level or plumb, or lay it down on a flat surface for a 360° level. +- Calibrate +- Show angle or inclination +- Sound effects +- Install on SD +- Orientation locking +- Roof pitch +. + +Repo Type:svn +Repo:http://androgames-sample.googlecode.com/svn/Market-apps/Level/trunk/ + +Build Version:1.8.0,27,75 + From d5433664bfe3e953af4f5e8a79f926c7e0eb2b4c Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Wed, 11 Jan 2012 23:47:28 +0000 Subject: [PATCH 65/75] Added ChessWalk --- metadata/cz.hejl.chesswalk.txt | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 metadata/cz.hejl.chesswalk.txt diff --git a/metadata/cz.hejl.chesswalk.txt b/metadata/cz.hejl.chesswalk.txt new file mode 100644 index 00000000..31951cf9 --- /dev/null +++ b/metadata/cz.hejl.chesswalk.txt @@ -0,0 +1,16 @@ +Category:Games +License:GPLv3 +Web Site:https://gitorious.org/chesswalk +Source Code:https://gitorious.org/chesswalk +Issue Tracker: + +Summary:Chess game and FICS client +Description: +Play chess offline, or play online at FICS. +. + +Repo Type:git +Repo:https://git.gitorious.org/chesswalk/chesswalk.git + +Build Version:1.5,7,4007173d + From 264e42ececae721a71d6218159d2a266242116ec Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Wed, 11 Jan 2012 23:50:16 +0000 Subject: [PATCH 66/75] Added alternative quick upload script --- uploadquick.sh | 3 +++ 1 file changed, 3 insertions(+) create mode 100755 uploadquick.sh diff --git a/uploadquick.sh b/uploadquick.sh new file mode 100755 index 00000000..19845818 --- /dev/null +++ b/uploadquick.sh @@ -0,0 +1,3 @@ +#!/bin/sh +rsync -u -v -r --delete repo fdroid@f-droid.org:/home/fdroid/public_html + From e76c2932485c303d9e7b8c048efc0674a785dcb1 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Thu, 12 Jan 2012 11:39:59 +0000 Subject: [PATCH 67/75] Metadata: buildjni for chesswalk --- metadata/cz.hejl.chesswalk.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata/cz.hejl.chesswalk.txt b/metadata/cz.hejl.chesswalk.txt index 31951cf9..74028d93 100644 --- a/metadata/cz.hejl.chesswalk.txt +++ b/metadata/cz.hejl.chesswalk.txt @@ -12,5 +12,5 @@ Play chess offline, or play online at FICS. Repo Type:git Repo:https://git.gitorious.org/chesswalk/chesswalk.git -Build Version:1.5,7,4007173d +Build Version:1.5,7,4007173d,buildjni=yes From af871464f4687553f78814a4ff8b2cecefe1cb94 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Thu, 12 Jan 2012 23:44:36 +0000 Subject: [PATCH 68/75] Metadata: fdroid 0.25 --- metadata/org.fdroid.fdroid.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/metadata/org.fdroid.fdroid.txt b/metadata/org.fdroid.fdroid.txt index 5635e55f..299b2d9a 100644 --- a/metadata/org.fdroid.fdroid.txt +++ b/metadata/org.fdroid.fdroid.txt @@ -25,4 +25,5 @@ Build Version:0.21,12,49fa56aa6626a190f2d711120b69e435e9e615b1 Build Version:0.22,13,a6a33c942495cc4c74a7cb6e968efe0e00815e68 Build Version:0.23,14,aa58a8aad1a1c3832eafb9f1bdd6db8292d2c172 Build Version:0.24,15,9b5fe2976443255b95027abd412f1c1e7f3d27b2 +Build Version:0.25,16,43977cc493e47a4dc841c4192ae8a40fb14b639b From fd7278c4ef969fa6074e451fab3d7bee5ef5c779 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Fri, 13 Jan 2012 08:23:46 +0000 Subject: [PATCH 69/75] Begin work on better ways to check for updates --- checkmarket.py | 32 ------ checkmarket2.py => checkupdates.py | 0 common.py | 1 + marketcheck/.gitignore | 1 - marketcheck/README.txt | 11 -- marketcheck/androidmarketapi-0.6.jar | Bin 188928 -> 0 bytes marketcheck/make.sh | 2 - marketcheck/protobuf-java-2.2.0.jar | Bin 320306 -> 0 bytes marketcheck/run.sh | 2 - marketcheck/test.java | 147 --------------------------- 10 files changed, 1 insertion(+), 195 deletions(-) delete mode 100755 checkmarket.py rename checkmarket2.py => checkupdates.py (100%) delete mode 100644 marketcheck/.gitignore delete mode 100644 marketcheck/README.txt delete mode 100644 marketcheck/androidmarketapi-0.6.jar delete mode 100755 marketcheck/make.sh delete mode 100644 marketcheck/protobuf-java-2.2.0.jar delete mode 100755 marketcheck/run.sh delete mode 100644 marketcheck/test.java diff --git a/checkmarket.py b/checkmarket.py deleted file mode 100755 index f8e5c80c..00000000 --- a/checkmarket.py +++ /dev/null @@ -1,32 +0,0 @@ -#!/usr/bin/env python -# -*- coding: utf-8 -*- -# -# checkmarket.py - part of the FDroid server tools -# Copyright (C) 2011, Ciaran Gultnieks, ciaran@ciarang.com -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU Affero General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU Affero General Public License for more details. -# -# You should have received a copy of the GNU Affero General Public License -# along with this program. If not, see . - -import subprocess - -#Read configuration... -repo_name = None -repo_description = None -repo_icon = None -repo_url = None -execfile('config.py') - -subprocess.call('./run.sh ' + market_user + ' ' + market_password - + ' ' + market_deviceid, - cwd='marketcheck', shell=True) - diff --git a/checkmarket2.py b/checkupdates.py similarity index 100% rename from checkmarket2.py rename to checkupdates.py diff --git a/common.py b/common.py index 5aea8db2..c825d7ce 100644 --- a/common.py +++ b/common.py @@ -325,6 +325,7 @@ def parse_metadata(metafile, **kw): thisinfo['Donate'] = None thisinfo['Disabled'] = None thisinfo['AntiFeatures'] = None + thisinfo['Update Check Mode'] = 'Market' thisinfo['Market Version'] = '' thisinfo['Market Version Code'] = '0' thisinfo['Repo Type'] = '' diff --git a/marketcheck/.gitignore b/marketcheck/.gitignore deleted file mode 100644 index 6b468b62..00000000 --- a/marketcheck/.gitignore +++ /dev/null @@ -1 +0,0 @@ -*.class diff --git a/marketcheck/README.txt b/marketcheck/README.txt deleted file mode 100644 index 009014c3..00000000 --- a/marketcheck/README.txt +++ /dev/null @@ -1,11 +0,0 @@ - -=Libraries= - -androidmarketapi-x.x.jar is Apache 2.0 licensed - source from: - - http://code.google.com/p/android-market-api/ - -https://code.google.com/p/protobuf/ is New BSD licensed - source from: - - https://code.google.com/p/protobuf/ - diff --git a/marketcheck/androidmarketapi-0.6.jar b/marketcheck/androidmarketapi-0.6.jar deleted file mode 100644 index b7f54192543fe8ea2505dc4804046da72be5b1c3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 188928 zcma&N1B`BAuqE2IP8+A~?$fqy+qP}{v~AnAZTH`{ZM)yOb0_oW%_R5Ty=x~sRU0dn zm8`GwRmn?%f}sLI{X2&nWO;%9w*wUj3`j;qS%5}DR+LUgKvqIjL`j)eM)Z3E2nctA z0bzh139N5B;b#|dld8yB3O78$SK@aYzxVvwtuL6;>`;Z3g-*?IrsninFk$FJWc7H+ zS3F>E`RZBMAjg$*ooR z2aRldKd6@Mo6LxtD{@XA$!6hsD(k^#r+qqBPp=m^ZBPl92M#60Is<<4&~_`)b<5iE zh98W~Ztd9VIx^&Kpelx4$Tk<>5s-4ceBDzQ=+e4`U>QK}o=E61mK{j!q2ms>RuSRc zwn4A<`}#xWsEq!RcD)Ao4@27UIerU5&IEYhIIg0)k5#y;zSPP}ydfrMzg@OF=00@; zEwX-_A-|9vG6Nju9K#sBYmf2RmR_??{hIAHj9umpXCR?cGP;{fz|!O9W8-n?fFl=X;_#t^V1oUXmWK&3bD_Gn-G{+L(Ku<^l3vf!!1;-h0Vo4 z0sMA~f+L*NNt3}B{yNg$Ah?#B&R#kF9I>&E1Zm4Qpwv3{2xU3B3_V81OWmf z0ROLu&iLOUx`eI0i?fomqltmd|D?Q%j5Vst@1O4UwIAzNq25;c)evx)tCX>M~tW=sk~W`?ukj5K+EfoMp&kxWRV{rN~X zI!uA0@0}?{Y`~Cv+RL}z&Ci>cU60@M(F#yY-$Fi=wd4`mzEOEwvJ8f!EGMr48trOv zTe91}kLvvO`g+#bF}YMwaiERN=^R+bb{(yz13AXdiLs=sLA<8_r8QM*3-}Nguph6Q zv!pETq;;SRabjVis{lXNH3~g9t%cdB{;SgE2s4!pAGx+*9dl=uX5o>zkmL`pwCKNqL-(AtV0sf9jM%k65F z@&qkm4A#4$dgo3fAt;>OAW55#-@iHK$<7FYG4Pk8X>#M%{;zI!nqeOzBZ z#tMG+zRU6*9`3Agvt+V=9pcb#@EjSMB#-Vpwy;JRDF*5HWXAlPKe=OZ6-% zrv@W9GQOBQ%x83%c92{TUri7`qDs?3@p&5|u2|0^rM!swtrO$wfnvtKkinh5i?&N9 zT2HEU0^ze;n_W#h#_E;r^9s65tc9fXX_S#{1pP*+(2H*- zM4b9GUCZuWYW;~629t>H_O7Ea-D>|lh4QH+=U`>jA=^{tFmuJvVDp$2WMq#UhfS^W1W(WXUQWx$ z{yEZ`YsNA^|Gk_+X!EOcoB2ln%jJ~wfjJC5Vdr*^FAQBNU1-rbGYzXFwuQraVpExo zO$l9a>GoHuaI?CE%U?wvS9#EP%DlUsyjdJRol629a+UMD0>E8HRjM)@DK zBPxVWPmvwb9vF|E0tSNFyNaCkB`CvorTVV*XkWUuS|mJjPxcR7T^#G@Ghdf4`V~A+ z%An{H)E_`a86Uq}5#3Rn;D=COfVw zBIASLWfrGo>N2}FgVj{oZQ|CwN4dzjg;nG6;b=Ckmpk=?-UFQ>AoB;+6*Tzq>-w6KYoh_SF9vX>C4=8uq^q*1R$rglUj_(P{?h2O z0`x@%YHW%KGRFFt^*O;S^Fnq`^_J|8IiZcXqAPY$F8d5mdTAeav9CIFL{SU;5evS1 zXP}!ofi9`ATRiw(&}E%MqqKs9*CYrAG4eZb_&wn4emCPiNXb2N$pbU&!5iinvBO=t z38;|!f*cq_7PMi{4vK=ul*qwGZxfG8li$mCQf|NRht2zZ;X2r@hd8tJC6Bsc$kP|> z5elP}EX)Y6EYYHj3M*Aacyi;D>>0YipJwNZ4w8_fCs54eN0I!93BcvB;$$9!Z?-LW zjFcB^ePNWi4G1LTdfx5g_NiwCc=2&9G4z&AA82LW-U53ll}7~yuDs{mo`&E+1g;<| zlGdm*pe*;!-t+?3F9(8`$IZfc!RE#2Pq8h}jDpWN`oEG2rvHvq$hkQGUs|!HgrbJ}V}tx0Y7zhh0wX|71P_Z0gUZKW zoL@HYuStPsL7izFkX$G6AaD_x?aS@*z96P|$$k(85HkbITDQ>SdM@@8z<;OwN;~V! zUUza$jniD0#cz1Ya+>|h-g#?dL;QI?WCHq9|8*h9Ttu7%wiBO>9Pk-+8 z;dEeny?FGzZb4g}{vnC`aRIWjSR~G}p@BqT0xL~n5ebwHhinSB2RQ`k;&J3#l|k_c z)^-y*>0jxT{PBE7lQ;!AOz;Q>Lrv4Y;9#D;SM*uO&_Nw0WN#y3g@9l(v?ueDr0;%? zk?rOwqlUHwdPjgKkxcv2D3b&aPvMF5KL*#<86&5QfBLC7s|T_vk?hNGG0E=^^O~;7 zOL)IjmW56&0HdMBILnKmeg5GoEI@{l(xD1Ax=_vMTp&bio(caOfjxSofd>4F2Di%r zT;X`y+g6D=U|?C5BaQv$EtVS`VP9oMJE1S8vM3NQ&!aMzIEmu9OdHkrH&}=3NYrd+ zEFGLyXO*^z@!NF4K7;DED>$@Tss5oD7lFBi=r1eyAf}qbZ}PMs3p6vN4O3Qr`@Qy4 zZRU~3)tBENBk8x=O;(|^(iQBnup4IY*-Q){@=>#0V`e4h%L6SoBeAJv&(STPeoLBcQT3l+s8HP>B4T+_Kx$Kr5e5HPQ8nBV7K0xmJjH3vfQ3daV`l3 z?k1S(jn;sX&XxmPHu}S`xFfpyut%~{cp7tX>+q2fe$1*h;6wx@%tTr9Eu7U#aM14y zHUe+A-G>^&B5)rQ%g&N5A+9sVGedaXDmU+QJ)u(34TEp<&$D?jEwAQX?DwW!pU2ug zsE5aO?hi_zv7J1@Z}jMUx6`=Z(Y#Mk*)cvtY2RR`dor@aTzZ?&~CD!lbSuInq zea;zC){CefH~l50np|+{HeD*5lT&1Ep791!eIAsvmk~?Hk&hF$1|YZqwJWYfC|~c_ z2aB9D_rGMOoG5Pyok3}u%mZF&7Vpyi1%F9~Anf$RXv8)_Y-m%hFP+2TAHWG+%sx4o*1|ykgf-qYZ-Xck~>BfaoSc1n!Vn>;$VTeC%HeB-dZb zhRtwFlm@iFN*;6(I>Z~kn0cPGBU%**w<(3a&a>! z2LEXU2h4w^5oG@jjrh+J;>yd*TluK@S+nsahbLWnjEp`Y4hXnCSeqXT3_1b=nIH~K z90ao~Sb~ux-k6L8#a3}BqM%H~HL{iJFTBDZ_1fy@W{j(0qmL&`xymQ^_4B5J zWA2-EFESLU^_-j7o0l(NnrTnEkF6V%YBL_IZmzpzxm;dZVW!tnvi7tFoWUzV22Lrs zpiK7Oa*4%Nz|2$sSQEe4MbleAjsCoJqBGe=L*GbWQwx8Y$9hBPWMK3!GP|XQcaur0 z$yAjkdIt`ri9q`@YGf!8Rq*wWAnauVGB=H-K$BvViedBQlydaM9&?#D$E9#wl2qEt zifX;4hKaKQMdb=Byz zbCbyDn06X4uO=!b!$_l9jR990s3t-!sAaLKnC$ zBvI0lFQjn4SqbNs&@Q8z2DFQ-bpk?L^ifb7Ax1e{>#JE7vC~J3j-)lfnP{Ncz`L1) z`~wAlSLoruuG5FdnkxKK@>Hs;Y-U;d%vvFH>*z;FDyvBI%PPmRRR1Vnw08w6%?NS*4<-Is(lGv91cvsim@U zCf&ateL)S1E6df+fk|m`VGhj<7N9{~>K&ojf^{8t!1Q+8#k`7X+W^@%oBZGt&lStlHNB6 z8{6Ux4&uZv9IRf^v8=PZq*+7re3*q-Q<^`clX`P&?JpCliwi5QR%?xv4g0^kpeYpO zoIOpf*)W#-i`~98^w_Od%Zy5-i2QS83I~VqAudCgdj^ zW1kq!VnntJ#0Kb`ewjv;-gWWQqOBqhcLzRaa)5YbtRU)0+VgUpda-si`~n2NO9F^& zBPV}}x#dJ2j$*`_Dt5K%jm`bM>3ZM`XUCl`#5NZ|OQ2&@Yy;KOhbExrJow5Lf|cP7 z(g)tZJ{f{M@;ATtcrF{6t411}za)@va&GnZ5vTiGWxy3?Di>svkl-<4p)LCBU zDNpcaSE)Q5Z$$DgtROI;ky{ut`L!b!uW(cVFOyS?*ue-+K5mQB+~+UC$0@W(h^UcP z8+940)2h@?-XPf%Jv_cOo1~fh=c4~qziNl4^OV@^99w;WID3ubt8$FI30=0lm`{oY z*l!Q|!g7Y$e@1=p-*|9JHv&X0bU@E=W>NxOPg4Wu;^O8U%thQ^!gxfHM$3zQ!3H)! zkXw(I3k|8iW=@e&E?R#+D;n z@oE+WHR?&+uOH59wjc*dQP)z;)HM#B&sxepPuZQTjS^k(caP8ek;!xNc<27U-@LEr zU(xa2d4MIPVP@6_kn%cJ<9%oOf-nw-lE=C{hha8?9CU)vxx;wm0uLNjfiKUdZd(hT z+67}~WXOQ?E(%#8tg)~W*lTt3c{KAxj7qk@UaxcdBssCBa_&r~qRp^d@H5&{D$U;6 zT3<%Je4NuuKPF47qUQQ-xlzz?t^eFHWAF7`z*3Ei>rTk$r6gr#B;{(Q=33Orglau8 zQWMeG{m6TzvM+=$a(1K6GB^JVj^#-#8@R_oGqo|c-7+H9+gXuv1qFHok>?S*?L?Xc zTYfIr68V1l?hBC8+6-Wn9ANG0)GpHCp3r=Ak$&(=@q`RZas#cxR$ z_E<7j4~}#t>1VKQJP6QgShp5P z{xT;BhB=WS`%C>*-acRa(g&!x=s4zQ{R6jT80xTY?ubU|ncrizS{+3FuK2OX3_umX zn;16hi}~QiwVS=;Y8;avfCKKI62D1CD zCBC!U1^BrK#iUdQa+B;WoHk$-Vt|S62Ng>>G@-#QNDfyE`Y-$&va&fSZJUqQ%ufqsR6;?i+DBi0hj>IRm4s zFEsCZ7_&L|-*|JTIPho-GHaAL(^S{FD=b==CH2iTkAqq z+c_XqfD{O1@uT97?nfsLm~`_80B1s%`U5(6q1k}Rqo^3719{cYhKbQiEQgt(xl?Tf zuXcp&N15m{L^ah8->UIce=RvFePdN}mV?MMj>MIbg>B%qaes%WP5;-4Xe!rdGyMFa zB$V;rA4_8{ytc>aE<7+08Cg|uY8^b@>9H%7n+(mMj9{U7kuAbY=!fPpZ}I6xQtzp=a*cgok~_;QxxE?ZruK(!s{({XdFyCAvkW`BM$L4>|l;?J}|c-my44}(HcXnMST z2s->j^2In}(3-mN7Nv1`Q6C`%2|4aPO0ir)mA6jbqjfR)0$;dsp zouu%t-O+mOS)iUE(Nxc}?47-w-MyTJy%mn+Tmu^$GA)R_D%HS6DPe;BvcOH=rqc3| zcx1=U%m^z4Pdb}&SjKTUG)g{|4qHo@E*>tGyP>u?-{>mVBDHX&IS+3*~b z83-E2)BagDXo5LL)4^Fr(}90lA_z`28wqEdX9BoqGe9|JCxWJm8iAk_Ey zQ@98vr6a-eAVvOJ(zPy+ag=)cQ=dSPs;N5$Lygt2a4(>$K^Zq$MHn|(tvrU70HnjKmqSePqJFOT5LUeoRVOm#RVcP%|Fb3e`9$ z8G6m!M1WPJkT7T&bIfH~eaw^^r(qZya?LV2tZRxB*0GxfxM4a2YRy(A5KbeJa8MP& zIE)3{F(?^!jZ*)r;hvCK71+3y1nQirtZJo%beq~$#QNy4OQ7?fb*Ws^> z54)Z>zkW9Gz!y)<-7dcenVd1qovF&JlT7og-nV1r9);hZKXf};H@7kYfgfuy*8sFl zGm170sxeXHh`k#9m$_TW1#!xh)L*8W-dR9^^$fz$>+n zhsgd0z0D4_je46?&fO~KcKL0$nppYXu1Df96Ii-XT)%@T0Bhn5HhFgT@$d3hfs0bp z^{;C3@a692ACU1RD6J`s7Igw^1uAO=GV6NzRm1qYVMBvRM}tVx0d%Pl8meF#st}rr zV44(Ytv?uK>V(qrG}7|K((=^Ob&6^F$@Kk}27$04(C5L>%TOp;>2|0>L$9KD!a=vf zg}1_qx5D!7hS|5mjkm&)x5AaTLnZ?#7a`>9!Q|^92`()dnIe&cS&_IViV+<(3MKWdEx1e zC+wHd56GA7PQTEj6}yUGFwGY{Ud4+;217;|R-}7deZbd<8vB-egcxS;Zv03o_s}%= zh|RtF3rE%!?UBRv5%+d?#H=I!F7)+@d%?#B_xPem!`abqz&@oZ=ShY}mRZb+_k$uW zJ(qjM+B9HF$GhbXH0K&?oQd1aDZliundi)rM$VS@;TzWM^Jn^~`}T?CY?$^D$M|Hz zXBT&QoEnMFz>-8~8`&BC3R(9Eb>jA}iiA(sI#&qYdlOUgR zy861)iB_@2D)$CLOR9w$o=W5L&kgtA&0dTl@Kbro1fGe{Ov@^dyPxBlzOR{R-nh zfsYFR>>`$fnNa>@FW*a89>ku(enMaE$ywmP%x}?R@LVpOrb(5m=|FT}I|AgiB_457 zQ@_t8OA=}Et!hwNwNo&w*Hw9RjB((bBXRB17z*=Up>r%1I~PO2EGOb1o<)^oOKqu& zPb_F8mEzO|w_`1WB?4gEus4Vp70hCw9T`@#@_&r52T!JRBqi)qL?OfF3>2Qay;44~ zCZZf2ev^kj9SVCat*Z|4o8R-^u;(B>kAmtj);FeL*(xtd*5m6l(hI&>iu^Fld{r5li;M_h=cw(n!GtO9 zJZpKHpPXkyVD4=0ywvz~oP5Z!B_}v^7-rf2+ib&=WkW3G!Y}OvDy8l}I|gVc6}z`A zs*sgtnca~4PQYZ{b8;N*zfwvalx7`gF=Ax3XkFIMaAiHddhq2tOfB=>l7!ck;@o~m z4@gOS34@w(eV)t=1KXXGqx5H8EPx3*0#eUZlPq(zWV1(Iva9$XHLoX=9HVS2r8*BN zwp;?K+an@fXjxc|8LHlx&Bz+Nan{(62zuN;w z%UThlO93Nz#Rp*#TlLQh@5_W~_9WE-gI5A;{(izTi;^~vAR%$-*23-SE&bwjeH3bd zW(vDtPg@}m$g4sx`Rh{1Q-LHzfRQui(XYC_)>BeQlI$e#Cmry(%Ob)WtMNc8fOaQv z(uGCQ1=)n_mh@YVmN`U2vXf5hJn~Ama%9yJ@(OQ-+m;Y~&DY{#N33AYhehKBkj|N> zziVfYC|kh|!sC_L&fqE6zGqrbi1dlaiqV&_P%Ve3N;9dUbENEC>lqilJ+@DxZvG9- zTuzDFnHT+wIH%;!s5&S~;XLALnEQzb(4pAa)Fwy|F0-LHegku>L~W43bNVBEB0}0D zQe5L|5l=DMR}rH8UDoq&MAX>szQ`nXObnmZNrFZiY-96c=x(z4+0&DlAiiLp$~2}( zYRBfygTB{HG)T(sd+3brRK?hNx}^M{S%vp2=uYw*6G_!>v9lNQdjtby3?O>2k=AGy zNsrPC4###~|9agb&)Ry4FY-V7Mo(2xW=~8;Z%J*V5%M37!4? z?(-?Hh0uwXANvfyoKi=qBNxk$^wsZj+V`42S+g@5xeY?0x?`<{4ga#a!;{4ak`oP zwnl^2q4Z?IP|z8M6Dg&7CF&v)8`igG4rW1WS^YhSyXx3TJD;pZ7nMe(QWExIG|Wp9zEX|iK`|{0A2eWwfZh>+IOicwF^j*99({Gz^w9sv@B+S)rEH6f%`1g4M1_#@OoLFcJ^|`xswi1Y$LO zvZi=SoNXpq*U#;8%@wQNT3!;o*zgZIe5$wycaf!N&utRnwC1yJ@m0q4P-qd{Z1^me z|2iN{R4eDojjI>o&qCv-jj2>hCn!(JxrUbU>r*Giu-z+sWq}M!v>ErXZS~k<1h}|T_o05JYagVo#ZA*;!6R#>GYj2q`fu*-Jm5DI{(WDKL5c#qI@6g#x z9M7D0t-E4ds%PmoS3BdXwYfb>Xs zCOEM`y!&(YE2olYUtcA(jc z`RE(O71&NS&*Vol#@nweQr@cWsaf-#J(TszeeoAUL6E0Au&;JZmb_zmP)k-8Z3!;Y zlyi#OBq&S%!HqLCyvUQ$EGWx+de5xJ_^xwq=+saLs`!KUrpVDs;hd9sSzam9d+k6C zU;m6Sj0M&le@*060D8{fj8sGbQWqaIuvGi~FKi|fYAa2Ao!z2G*H_`oF0oHe^sq!( zA9i{;x(Jb70GR|-AJMmL=nDv3vtd$LWX&eUzD&CmoQPhBacM=Y(JaLdCL4BG+7!nO z%cJGxP%tAML_eGY7*kX!Md)}e+e5H@kKlN^t^BBOhQ5+m0O6uRqDXd5`WO}__quxK z4xf7l5Bm-lH>W|J-p$e3aHvly&y6mXJeVRycyDrx28%stOJ>hBSH$L9;g{`Zs9ntx z{`7FnVfJwDn`|gg`<5$W8nItf54s9s#Yo}L0!hV{>-rs5>+>vy3g}X%)mH4t4V4?f zSXpksg-?{=Cn=N=Bz8XC(FH?hiG@m}U75|i`MM+$DUB^}vx*#m_KwscD_6MjWbgHV^p@rfp8vAeB2({=UWyais3UDJQ}q zliTm4Fat2VBkKNJ`Lxz0noC^cR^MT8JM6I1$?nV6qi#DyTdqS@Q)(%7XzL9A6$pE` z$d8-@m+E-1)0t$uva4;B#e2joG@i&w!okJyVMGPND5r?VZGCJuVwLmchf(`vVth(% zUZyK!0aX$5KGA=`GW%V6(EQ%G2cR`~^FIpXr$Kq&I?HPNfrIKEz6N}i&WuUkMpbni zTh6*8n54guLOeP_LOjk-_#nY*O|=C3hiSRiizWJ(qLEsO^hl$}U>oZ}n|MBdl`|dI~|gx`{-tW{_eT>v=pPHq9`%4L`g=FnGbR;3aI4vcQ4?@x+?NI>dc>j>zO#;B3YO5IwB6j80!d1oyZN|5^i-2c{ie$ z6?-fn!l4A2qCAw5$+3>PF7%cRH|x8@H~36!I{ZU`VSiLH`$^kBDck;dDo5&@x@)OT zD1NNraL%pCb51GWcj~*kLa};M5`DFooD4}>PSqMlS2ZOD1+-wMVwxdNeI;zG`z`h8 z`t9Jv_htF0>q)JLB0IeTOEY_H&;@Z>fp`%4`QH6ll^x_*&#@?k&}Rf)?h!>-Gs!oR zx=%Lnxvjv9&P0FgOayfnbY+q?9RdJ?t zW|pbLk{50Q`i%UR3aV;wdacNmAiYpy_#U(c62idGfbahw=|R_~VXZ;y0J&vY#B` zmrZas--7Cw+-<4bsnmP!8TuE`de}YT7u{pg_poi+3OU>W(L|1%$vGD zW4L1*%&!xXT>=9#{yE38*MWL0^9nKcY@V5C662sUF!L)Og|ABxo@s31dOYFvREUoe zC)}bMXQdlJ{)W^Na-kh_>_ z80cp&l<aws=Xialv`NN_#G%TtL#q}Ag zI2ek3WrbvmLS=TWwC8dWr;cJFWgKHFK5X}RPghYLZ&LUD?BSf?nVhKj$C5qBMWE#LVj}?y6^M5r~+JV(%BhfkaO>lxy;V8U~dqB^}#0N!_gmeD)s=KnYK@ z$sy9K@hyP{aZAI%SL~&WXS{?N>1()0+?J2O2JzuE@->$W8O2Vly z>Jk&Z;hABcDSg@%g5%Lxu@+29N5JND`9|YKk;Jx0%BI;f6i7vtDPZZ42hDi zhZ&v;r?wIQa*M|Xx*EwtE0EvRRk(MYLMk^eb)IzSp9GcWw)2?L6zhr0_}Cz0i(s({^O^ z66;mCbWGH{!RVZ?a%HA)KJ!MRb3Nw>o5XZ)K&*BKB)s<}v~+txu5$Hnb_Zp4zDylo zU$M0w?Wyhe_U2-K_`FkWvdTg;dh1=*!rxA~8TIanik_#;cJ^#eRe|)@_)h9LooDvS zxIZkdl0#1n_b;*8*x8cREOB1r#UgmiebDc9-wgZNItbRmB z3P$e-yV)>?wqWZd&HTG_oR7aN7QP{mq!ql-eL2-PwZZoB^wkbFH(DHty~n$NB}Fu% zl6ApsiZy#upzj^uAOQ|)AYGxda-t~f!R+QBZa(|UWtLDG+%0WJL_h32*HS#DNC}0#f`pW%B=y zQvII^r}^(E{6F*DtqJX|ytKr3V&aiF4jTXlGDswVB$Pl%XiZ3{4+UJHK@T0^k4`>L zjFmPOoDNO6+OcG*R%v6iv|h1QXNjhj?q9aLTx_Y;p=NWTn5wB|Q{CLMlyT#??ZuRy zE=>>WdziYj`E_}+>2%{0+v|1%Dy&=rrlOcObNTp`;_Q~v)}`Z{+gVw(a}6t?)u@qh3Atm ze{%j0fmcvK0(Pv{3&e%bmMxu8>M-PS$PG+WNre(%?YwHqg>mmyaqk|5NF^ofnua8?V zp1=OY#b}CkZLQRc`hE6_bxm4p$EKd3 zHPCPJ*W!0mUHAwQVi+>di{}@+f>QH^M#UMw*(@p1MX`g(F&?WzDy~oRptf zrCln5%39|Wy@~V^IIL_&`69OTBtgj=_H zZly?>UMfo+rT3K(BL=hFVl(NBsNod$&~vBAz3I~lwYXjq$O zF4lkC1h-*bpE168ya?dc6KSuzSSS-(orZ-f;klN@m2P#uYB(g>?POjkN8Jvil=11< z0ar4&xpisd>9C)xRzO4(^2=++TR3xbDfA=vP+muC>`YSxl&z%UJ}!MgIQvCY=fUFg zM!yHgSl0*oU*iWfh3gXnYZ!(8zQq0(&{(LQ$J1c!*EEFhSK~=Raul8HYigv&S*1cb zWeF(R5JtjZHjm>SaGq&fjzXkW%9sSK91KA0UEM5wUCZL=z~DA>%0O?N7V4Yd6)ZHE z6blZH28a5P0Sst0msvJW5B!^GcglQ`m;UV^ip*)KE;f}g;`l(gdz-w?eA4oNS50ZD zs&@RgjDR?~#(i8nb?Vc)*gQQ$Ts?(N!=mr(HK)=1ZG}YhrQ6E|l(zyZM6mhVAWch6 zM}y+yBT`r!(No}{0(-;g-YD8SrcVnY&{uX>YxM|^6+5zK4kI1fTRiWJm4n>5nE~t( z_-?5*VZu#u*r=FIk;Ww@W{49+m9vW-A&1 zD345Q6)zH37}#HmL=vGG4y$R_g?hvxNGNe>Pg>DAMWy-$P^+|Zc{Ljs4;RPwMf8N3a3Soe-E=gnSRPd$0@0etwXuBiG}L3Q)6 zebg2!9Pj!)D;QHdz#eW#o!xJ)o-w+}Ew-uaxy+s+-*77J@9)lZuGD4&Tb6Ll$sqf5 z*k39nMzHTw0$e;obm8$oGE;cw+j(p%?~wYvv4JNx{3G}V@`Zj2TB|a@I;_5YbM+Fq zg_vDH?rfsJY1D}at#kxZqra(-X=IYOO{g$&@*S-I?lu6p1n-%c;l>I4N-gFM&9Cl0 zAV^GtH_D@$cvmo;J|xdGhzJM(;uHI#-WhD<5`3gAfL4se zgUS!t#|1&!u{0_iv?Gu+3qa?R-oc!WJaw%d;Yyp34~y%gs(#BECj|3VlKy?fr~bpv zO2Y8nf8N7e;sSmk<3rD*U(A;byFWwJSN{YG+~nwds;N?bpHvqU9lqq-Yb9^G;lY@^ z=7BAzw$`tlZaiU=eDT%e8@zVJ4H{N;i1K1iK@3eeyT3-28w&RU3RLRAJIlZnLb1o7 z;~vQPqtBi-X;#J^Yq1ud?aZ7rYc{~9t)nv!l}3xlrZ!4?8!V?khU6YF5~3ZvyF{3s zfRVNP3wTboL8;1$5U_2`0Sn4;_5huvQgKH_%QPz+fAD>+B%%OEDJ9&&Zjnk#qryRY z=NLWd0WK}JQ|a~$`4sJ|H@7n18&uAu;hL}qN={=3bi!P7NR_N+NG$GHK2qt3d=~7 z_vi7i?l~l_%#lnF*n5=V)V3tLEK)nPJ?ka+O!<<)22mk|3_db!8jg4*t4(GIneGx- z2=L2$6lZ3jI3Zp@K@knwrrXCyLPv>o5r1DgTaQf#4sCW&xn6%(#yrj`jjZ z;mF<9u~N{5`$~&Z<|9?mP`Ga;E(C-J`Rtz|&xtbAbKF+-m5crkUA0zUN6W6K#XX!> zc~N?iawSFK;9Vfd>B&fQ%>;?S{k2#9g-#M(@qK9j8M$(b#QJ({J-ga#_#ERh%--m1 z<{k%FQ!u5h=qtdh;CG$J4!W2uqbd6AI3-)7JIJ@*^q&CcbngR<6zVd!k5Ah#68Nha zrErJOf$#w|GwW1~PlcY}<3*TS+!E5MIbeMFN&PBW?9lW9N`F+c_}$#!L3t7=`~(l= zBr7<<%g;~884m#1exbDkQP=8cVJPPncjSxEWxwFmth}S=;;5O2-u_1U=^oJCHe=qz zAg~&ICQIzby732mlSbE~T%rWe)ZlfWh>?(Z5;E?uKIrvv{N|Zk3 z{U$p{&PnPSQO>Axf!f=dJ9YjxO^6*)#WTl6W_&~6uDz@NwD}F=qYH;~69q5vJIn}} zjGeYQoWyqJ6~RM5`r`4F_BR))i`?45{gAJoAx%H!7-v3{j7cSNB2yhyzffXrKP=i}XbSJi1sUxwpW%^rmQ zXSGH2S~te>lfVxj!PcT>jfJ3f>trH?QOUEvg@y4~*0=mY*sDQF6mKeDUhTt&=TQLE zpai~=iZAoAH>S(5UdE-%?AV=d8Z15K#xlK0$gGMg`3G_8Lp`Rz;fNp`BZOlP44>q9o;i_eV0P}|j>V_fchH+=&+^J5KC>>e5^M{tdE;GUnT@rj zMRNG8)u&j;miJQgU#qzwo*r79UZ|zzSMScvj%Yp6zvZ^t8=K0lEs`nS1$VhexLjt& zYodJaw~&xFpBQAFU8h`?orLf>y(7xTK9PIODoTnedPw$9Pfu-Mp5G(y=c;B-)BD4) zR1cjm?H|^kY-8(ClG}Mox`Ni95P;uPFKt{p1BTP1~Yu z2&;&KB7uG|IJBW|AvnK719=LIjD(tUDW<+{j#u4|N}X3%5N~>MmnUQ0fV-unh_*%2 zIcBDz8q;(X+ak-afu_KDgTMbrhsETjlo%_Lc$!{9?vX zA;Q5oL~S=44Ru{rN>VI--dqX9$v-BP)~A}^Kx&uxwVjnzS`R>c3QsXhC5k?jkG)G# z$-Tw>g~i+|CqNJVNO4?55^z_GsB+e9$4KZ7C0&W2sIT7S6x{s*2%_qDJZXrX6Pf|9Qid5K=Rg&oB8a~5l z6+^huj%lSS)VzH5CLd0>rj1cJ(?vX-8~{@IoGgio;7EErr-2~NDqIhky)>`Lm8Gi0 zTT=wKAs(|NDWec<7m47Dmt%+63mcD`+yrW(5bhd0j!SfFTGg>>4#plA&oEH$Z#q$m zW?sAukY^TH-!En3|AKXZQ|yCQ=tRJ-k)fcjtgMYw2rb6H5p$enAgTpp|9&zI(GJr& zt|$bi6P+2@iHG>@DD{LH!kKoYjaE2$2xteq_gFX_kBB&g8sV><@fZQZ-wHeq3K`%{ zg%~e)s+|HLPVVna3gYMjB2IclVx$qmxq9Tyce;^ng*;xFb+oyS$ghFOuO}%y?ZU}U zl5dJ$eosLHJ>soN|O&_2rN0p8&Q$ z^6dRwL1Y0 z=$mheKALIa3Sz^WI5<3E2h*gu!ho1|CIhFi>%hbn(b)AKL-b=iJi&LCX@UFP7P%e? zXcm)bgV-59P@tS>IU$o-**P7qY|d0U4o$3bceX*~;*WFYa<;VC1)*m<(KQ6`{EhhJ z`(FgyD)Cb&mp?LY#bIZsoPAL9cC}?RMTFZKie4X~`{=kAMJ$gHyog!u{*FGG(}eDT%JP|yT-;=q26`=T;X&< z$$XLDdyd2LafHP>5gK`d;-4&m8)gVowSq_QG}-r-8v?8G*w@=npli!5XWvNqx?=2e z&rdR6JCf`RI!~ybalMja=VTv%+tOoaXdkdXF}Z@D9#ftfy&`_2Q|tytb_2bk=Ws%8 zX+s6VDXF#!P0mq%N^Oc>@v9sM^(~uBkeVu+1w@Tvg@l3b>o{mHFj4%xkgp zUFJ26^tjEm>?alZ_K;?UV_;lY)edMS_aKwZGBE4O6Ug(2gfJ1XfXw>cxffxF)XI# zrPNJ~G1Wx6zo_`)OfH+}QNIYU{D?5|?M|TylBhKQ(%k^O(6VH3cTh`)je4&T4n>H9 zNaKbkloL7a6gaj>QmfRGq^ue};*3Tvoe@^N@S{IL-A11orXkh?^;0{TkDB9FQ?ikg z6Vi}UQSpH^@I)V7B$P9-5fARcL4TZl;-blSZeg1w@@R~90eqQC%JZ_;g{^U!x&q76ocXD6cL z$o=}$m%-7)g?QP-^O@=h6q$571B{e-y&&<(6-(f-F-AXNYa*O=Hf6s|^BR+X=->e& zFhwi|fb@RX0uyY(dF@Wh~uf(*0@?`3c3=X^kTct^KdnA}wiPD}kt}7zv}wE0lu!KP5-y=A*xqmwYU1;P6ClRE6UNT6Im2qZf+PD| z^lBM!7z_A{rYBTQfY33V#2o~hk5o&EohjwYs6D`RhM3Qzys@^Y)+RXf z@I>D+W=o8C;&M-z&p>nK>Kp+RCqSR<=!)Ii!x!JATN{#^+zAyk6y+Pj%N#V6Gug=# zPo@JJc<9K+G8-i|V2%DBD<9L8U^(mY3r%1h5+D`VQL~C>x{>PCRI6Aj{1L@YcA4-b zagsbr19$C&U-{k{*vOeK7!YJuXXnwcC!VF#eqhCqE< zYDNI|zG*nwLDZ2~?)m&`R`o6Jk$Mnpy<&;fmr z6_p8o%#z$gVRp}Au_zhsrLa;+c9>%RDZf&*0?yGj4;O#<`#%y&7KSQ05ikG%;06Al zQp5kA+D7*ur3Ps`GYeZ0cOw&f=YQhPe`^iXDjH6k$|!u2nwt(=%`TmGTXZC`iyI}? zq$UbDEsQQ#E7;6A27@u)R=c99+UHz^UrBtA{Z{(spX*g>t?XCwi%9w8 zUE@|q77LzOKg5G=Rc_U+^i-9c7xIlKw_SU5jNO<#Em9?0R9iYaOjW8&U!1`VWHw*= z7c%XGGar72HrAK#ebDRDX)_aY@bU_RH^k3S zC_z*qcl?!K%7O6_%x4GyJCMDDN^7YhA5^85ic@^*5KwI*PcI^7#zZRr7dUV7G6;&^c4a_lb$nrg%jGo_Gbd1l3I)2s z_wrSTyEtcBVu5MyN8IXRbY#WgxHl)hWew`ZE@PBT3R9{yqTp@&jS{}aI!dR}#rS~u za_2=+pIIUVTQdQIti)UF84bQcF)dOlte%I&Q&w{bKBP-7~$7%|}Z0i$T-C?K=c8X3Tg98XGZ12Y|y$;A*Wa-pzp2AVxhS5HT z2&jz?$GR_yA-GDAZ)o(Zz;u4lx4Q!ZhO_Qs0-^`q-@6+G9(rpa&=#_{>vyakJiX&V zC!g3!)z=fqOali&VR1R4$_=|W1t9yu+Z0#0a{RmcvkW`9k&XxsoNenaw2S6ef_L+t zHrAI9o=P`lh_ySxl2bC2?4KIUCPI034(WsTkpSrf_t60P&GGaO`3>@2C4F+vYGB zbadEYEx?C3`AU!%d(3p?)ZmT(FrvQWKV{g_n&;F0r?e;%$Yp>zpIa#HjD+G3a3%fW zFP3>bV4dh9FRt{_$9?2p`^KDZZ8nF-l9t)Ki8W-Zt|r9F%ON*0nN0r>EWMl z>rk4OAF%%tarGM$a(_So0FwWIWIrj}*;zZ0h&wym|8Kw76h#F)BmsmUF!O*%OIpS9 zIW+SsJaMlLF)Q!-mE>TS(L^#nTZ5pgF z$(U1DS8-8wyMR}Q>=76SUARwMwwtKFV&IjBFTuX#LTXPbn@~V@^)48p-$C#;>+mXj z#wF1S;MPiOpe-t z=5M9?gw$QImMQN@Ms%U5gWca9NOT#Nh<0~q?)xM$PBLR$k|8P>Fu)=IDYS!Y9H|Qg z)@$iQ-3_hQBnd<`Y$^0{p*>0!S_ex>Cx$_-ce25%qj@-FgY1_4_F2EI2D#zeDfuphhL&b zUkb?j@4;=&wdFR(9{Q`1gcRI&ElN%;G+IlqXivkJASv+@Ty2c;WSBkM3c%0MqQB`Bz==z5!1`P`49Js-qIAp zfiD;gh$KAx7GNHai>wbHFpeo%%9QJ=EQCbq&C^Y#JT3;2xBconJktRnJ(PlRcR^1DIudM1mb zr+~q!cH5HX`)azmOqNAWSLG&{cV7A@4y91qe>bnd7&<|cyDhkhRaN!9I645#*BYX? zjMYRG?W3)$^(Ng!QnesJK4Z(CyN%L0ZL3uFOjk!4j3NdyMF|+JrB7JO^bvRVv1^+z zJ;9<#w`1!As zY{zhce23;~rx|GjSY3J}JUGeMf~TQwj4e~GRICNk-~XPEb$rn7k6@SE=SvBA;j&VF zD$Y^XyH+%p=^Hb5q6&j(sSMxgo;;SP(w+q&17!_OlG`EF6L8hbEL_?Kw1P!MM1M5s z@LQ*bzE-Y9d}8p^=B+wm2AC7anG||tOT)b%;7VLa-M|>K->A*$981M^<6ug@94{2} z96kZO*kf*gqpW%8jCMZ`YB!{RoRjh@*HZ+r&oYRiAU{6sxGC#COj2&JjQeyHAgV-wOhwZN0f-1&5aH zrEhT~>B!9!xf4j7u%>(IG&wwH{zIF*eo1p3?>_eNvaO)JH9xBJXNm>;_ z52dZr*o>yOX?#Bm3YxHp6*146`I;Y5s#O!S#b`EvZLmJ8y+n9FZ|wZ|=>&FH zgyPcj%D}tffzqojo?(@i(mbk*+$+)PitH+-r_a&yG8bF%*rR3}k+QC7h~N%WzhxB9 z&6+5%olr?QqxHp$iq!V$D`y0Ff}U1gu5QC3i6M}J9D$gi_Bq3A$z~?h;r`Jz!wOv3 zOYHXXrJZ~Kqs!%ZKzBY)LZt}`eou}a#(yGTh2}MF{T|Fi&H@=7jL!zGs<~@6egwKb zu}PJaeh)%v{%p#+xgzm|>he6E20{tn?; z%d%_X_$F!{pCvz(6z7a9JN#jijcIuo{6XULVZ?)=6!B(5X{WI1m2ZN4KOBe*J)jQ> zJVk>!q(#-36bUVk?z=;O1K$}`d4bzOV=7k*vGmwFWhCh@ciLe2%I|TR{xmS5Q-2LhuO$+JwosR|{lp{$*Ag880 z;hL2Yba+znmU)Om(<`fvIJ+Hq#9>9gg&uy8iN(?Mf!;mQ%{zwc73xSE7ri5Ty(Vsj zeZ%XOL()09qMu)t({|efuf394xQeF!G)RfRsr++rHkQ10H=Pis3yKJOxwc@2JjWYG zzE=l{T8x6Dst*z32A`Gp1s=c|=tG{w$+XiYd`p$iq+7jpB}h6R*g0t9v35&+c%_b6 zCm!3YIcW8lNz#aP>ctJk!C()D&2@q(dj*5i-;6OkPzlZ5n&hhzyvrV6rb7R{z z*$LkmK(yn6*jqoA(K@U?A>K8SsEczaXl#q5MNPgP5TwR!kNu5Sp_bUeH*6RA6)f~T zGK&OrFvYx+>=&A|Dt|bpwrl`@Yw(A7N1r|qsqF2Q9OMW3zwkSA7_Y?!900%_?myx8 ze-3|>F|e@xUyJSwGZ2fRSXp0q`f>+h`-u6d|*wX0|iDZnC{zcHW;qKji@6@3sW-h2~cax^BC) zmx*aFZO4m<4YYUSZ{X4@n+*x4?XTng4s83Edp}!UDZGsg{0%zL*%+&cVoOv@nBW7k zUgI#pT8k4+vj~r;u9=D_JLw$74dy~aV20#HsP0QKSA?GeR)GfM>&)}OyLb}+x|uQB zz!^_5=)B{5#Ss=Qdm*v|57qxerC?#wGX#3X!U7eV2~EuVb@voo!0wK1novedgCl&8 zN?VW< z7X~|nScA9hE9)(}bj=uJN_pdV8$wJrx=-kEr6mo?$^&U#n2t(Y(O!4bB&5G&p!Lb_ z3MxIyzWGK6J;YN1wOa1u49i`v*3||%RJ0^n22=0uxo0phRwcs9aPBx!YlCD%SD;;i z51iM~&~g|nbY)Q?WiZU>Ly1T_<|qOtl0|tp!F*UtAx|l!Rw<^UPQPD}j(S>~Y&}l2 zZ7#(Yk5C$}n~-XZ!pzS=wQfLH338DqgX~9s`rh<^JOZF}B^qApdu$Z6p6l zfd0Rp^X=bo^MAWj|98sh|3l3({m-UTWmgGB4B_Xby(`2C_6UYbI0k8n8)OAP;t$Y3 zKV;-iK%_{Di0(=1z4rEI$3~8l_k>>JDbJ^)Dyd2Z&uN_Gah3^XB?Qt1o@L8ms+QYU9_eNxQSWMw0cHARS(VcO(1!$9{ zhm|b5WIG%b&{}*Gt7X^}l7Lt;D<+t%1wU%}Z1}={8VDHW$}FJw%pFxyn7v?V@F1X} zX97j5ZC9lcdShl~pySRLlXl9(eqXaFk4G+X5VDJ3^zZEc{Mg*8Vr(oxCC|$Ssl-htV=48Ugc?K7TI%X&khk)CM@GINr4OWwY_x*<+x9Z7DT>;zgNKQZDF3 zYqSa;xEk0x*L{v@eHf^^x`U(A?d>J@2It9jyrU!nkVQ9JMmSRO)f**Uto|N!9UM?m z0foFe=&Mf(n*4h}Wi&CuDis)re-YfA9&oC!y0_$um+I!d%y^U>bxEnm)g50!(xE%N zP{uvBOPkTZ?He^6IJ}{p0j@ z08F-mgyGf@L=P&N&6)ir1y){v{AH%PCBGN3naHA(anQhk@GDD?lBqJFaN9YYneP-H!I`DpgPRXvz=#A=$Rd+RzcQJ z+9!G+XVZhA#{@^DSIvD>DEa`=O_ehd?-1$Yyk@rqP|mnb^BT-gjcD1{fgPNirgzNd zgL{_ZW{>Hx6IP2Jlts z9XZKBE$z;KU<2Tx0(7C7XYlXQ!T=7 zB_Y%rmQ3f>W&jDoMJ6^sn7}9*phfNKyv4t0L=M~3XR>cfZz~WHc%Y!}1*hJMr^JX{ zGK?vQ=xSlwhzMVMDxLM{Lc4MxkkQ{Qle$s|p6P?R3z!2}6cB8x0eo*vQcqt(4*#|{ zh6`njPJuZV8_DgE=ARf}NimSB8XdMAw5}~%XS)t{0zs2*eg4oQ)<#2Y`+?xU8srEl zC)T~oP*qu3Y}p$LT8>~ZR+4x!de6xhDG8{zp-6zlF0o^%OsP&J&&`;Rp%Du=KxHRG zQXRu}Xt+)lSYFDhgs+~#REWq+S>J8APf{&wT;Xl*8x@DCS(h)H&*?@@m0B18*yQXL zbR?($?Vc1l$Sb!aPMSZ)zxwfLBw4%1OwxP4LprLms z4E9W+J|RorlTP``P>IYBGYFw*g*)df$D9!97A>Pw3v{DVy!7vtP1<>2`sA&Y|CV28mkKZ zvjMs*^;sU*CGuN*HTGh$C()bkm58)}vc5`esxi@o>xWatAjmAZp4{f>%S&x;%XSY? zmD32vgku!UDIcnYddB0EXj=b%PLdJKTNy@iT zb_<1jHtE6GSOocI+zcj?~p zejroN>gH?MbMSNmm9E_CLWFe8U&QM;w6vvcxF)cwpuZIJd>k z1~xl_*&ZlO!{lcRoR3UXOi9ml!P2z`>{8ct&GPs77anNgZn3Fn=xr*TS6&x?&~&HV zY&_bd&t7zf_P0)^Z(bz=pE~64wwN~rb(uI3W~tSiM+9YNm^;rYA353AO$t;6y_mkD z21j<`RL{EAYrI%H)faW_LE%xsanI4~#{~&DT<;-*gJ-5#afpk_v3Pya^=;ld+!g1g z=9)z5gsr)(4MYu90&(sgJ74nLHbmjzU>l?KyZj6m)g$~VGx6o3BX?lWW5&!=d`W9~ zg-gDR)d}rlz;D8w0l>n%I!=#TrVtB1ZNW9#{s!bD z8M8wivd9hy%hi4he+1<#eb%r?{~`SCaft1!`TCS{rF;|Si|snQTy&=M37w^UWpILn z(~*RS{Y#HgQ3ur>J+O)qoac*n2y`sc+E=12b}nzbm$js4`bl*xJ8?_#`f$Ag^+&CT zdHa|5d3FC6`@i5!M+q&~2Mho}3h6(=*?*QNZS0Iqtm*&z0^0wYlS(uoy-`e3{puwFgSBx0Sx9gK?8U?M0peuc5?Ici!}$CGa@`4t@Z6&U{r6)0`R}lB zM}fzjaKvzP48X+HUhU1?T(=!G#yob_w$CfmHMqxb(|$gDo@;--ZoO`+PGb6aKZyWP z4%N6QAl?Jatqhd%=kOs%3k&oOs{X7Pl0tpk6b!DI&q1NjBx4VWp63%j=^f~u(8GKZ z%Y-yxr>O@7!*xKgDvGgeptM458qNzhGj_DsZ$yF{7PJbppy9KTqO>wS)n|$iMv8px zPpO*l;8{khGX`(n7l>0ZA_`37>&E4)G$4EA3)&$&Ga!5{hZ3z+8(S5jRz0$Z(t^m@ zuJiER(diC0OL4jv3?!Kseiu}6!C z8$$T#%uBat%N{BjltchKS}i8Qeby)#vZo8ef24iX89voU79I4+kdG6j__~+x8mtx~ z96Y-bF4fdN{Ru{u9yn=N-`6i`MrpCqd}EjhHl+CbCO?HZL&OV5?o8o?tFA|c7RiFi zfF)38ZH2tgrcWa{6Cy#qVhfPx-%aIOO^Iby2Z_ZHfX|rs=E+B$i7&}ANd>1lkU4%( z4wwSbV>%Y-jZjiamHJBh)gTPpRL!8z6v)XrC|cvL!h$J*!H}}Q6jps4s27Gs*G?lx z-i4TFMJuD}V9UXbF#4=*yH;#WG1Yq_062xxV~i$PFD9X*zR8-38k z3yD6sCC$WHci7dIBjQr*ypq8%t5IBH=+p~|&RJDDid%Ei{BfX@>$T$M)9v|f>OM|k(NnIUF7Z+UgqtBJ!x9308U|3Vo9v&aQS4E?W96|oIUr*nh2>jAX zF}@_hx(AC^9x00S!*A$V^#_G*Po~$jeR)OWpJ8|tbB1$z9>U5q4OjenstxO~0Oa;N zvaEm}q3KO<6-TCc`-4>|139Wy)JCOmKYO|bNIPF;ng_1B9T2}E`v_s}Z4?ViQvugE z>)Qb_!ag+-F3;3YyAz6A>B9>-mP1LCNAl`tKDcP6``9hHrP+< zUJzw6)6bExZi&ivZ>FG%Uc{CyEOSqU;3RMUA3dV zuhHOdd;LV{eGTOA<)CKm&@W;1`Fj1{z|wmCZ>asiy(G81y)vQ>#qgc*vhZ|>Vf5NG ztAbkrhLwKZl!@Gw%vB7-3&)pai_KM#yvNpotoFC`)$Onf(I}ax^b?muO8CbxAQ_zV z0Tt!S{n6DeRc)3KmjDMw!38;my&>oFFd-d{q5r`-8Jvp&;&Yf;rh6*1R7SwC4wX?+ z4;P9Z^yell&zQ^gephGgS1j|-Teqy)op$g=Uf}@b7Y{PDcK=BB2obVahyP?EEn~wH zsCRV0vGz`(NPR)4c@!$6Jq&w{M?xyZ>y-jntkH|)riAS;2i|~|4eg=9cvi2zl&9#S z@Cq}%?TBRuAh}03mOG#vR0FXW+bmf2a6|SsS?$)mx=DM@x}AQD`E9`pU6<0E4r>o9 z^}6N#6{~&bxO^yUOWnUr77z(3$`{zC^T^R))_P?qx~whM7edhnLr7x<*;|v`qI5 zWZeo3={0l1eo#3)_Q~N9I`B9$}33yu>c55dqi;vRAc?*zVMW zklQR@n@xEb7U?%@I|<*zXR-mz=5878ZOrB-jx*a<2R<|TDSsVzjSqlp^HVU|HM%3z z?~T*<`I0R%M!;+*UVR(iY%PzBO0_qsF)ovN?SaW&*;0%G`iDKNrn|{%IF=;94cY(aq2LJsd5yI?w zoBmeI?0GEmg@+g=iVPvb`%S3%^@brc3Y5Bbx?{ktK;Rp9ILgS01R-|#rOLN>z#f-> zhLr%J2Rv-&d?04Vdz^Ar$n-|DWCG-1*y(C-dh5Nm${YLMZPNbny@&D*xc`JNFdm-$ zXXe!fSQO(c?iX8RY!*?}^!d{esy+4#j-3V@lCBH?hYV5(P~f-^2SEN!4m_wr_p2sY z?TFQE7;t=(7C-ANgM7`L!2GKoez9~K#HRqi4#$dPKsDcQXd<26?4Sd8@7zD>b*SP( zfI}%Dji3)$lm{FX7FT|$Zxvd8Bj0nv2R73zx{h#+d1f{K67$w-ju+VnHuMxoPv}>B zmgHxNclpc0z4VP|k!KN}-v)fD_1O}$hfmASC$^?lpuFbA1I?2z6)0^3h!Zp5-QWo~b;K z+?=oV%|{Bq%-pf}rnpmyJhL>jw&u>X=i9LFSQ^~s8os>N4`zdB6NBgY`j5!^P9=38 z8BJcAnjb|?A1O^AF-;#iO&>kYZ+^}1xzqQx$B5<+Zfq+*G3j6ZtZ$l>B>Ldx>A{P% z!HYl8RlgUH-q-I<%6EB`ps{y9Z8dv!RMdAkkKW|(y>j;^g^`g*LpU;64~6@WhPmi6 z193h|Up-7;A;>%#*5|0NAUz7w<^{BxTYYX5EliX=n!*8(*_R^?IAHXu_D?+=0>Qgcr%`WS4T>cFQ7S~hy4f^} zdm|Or^`lYD#RD0XL8ha7IGg#i3S+v}X}!9`h0xvY;*q+ENY_b-&zpq<&L~;we~w1b z{_bWT+-B|DHN78lQvR4MtU#q|o{uamUO@R?QHgYKpmnZ@Lv9m<*e1j6kN`V2!Hm;Z zpRm!}CR^S}W8S9CJH^$U`tp{X4$QQBIz%lsrLbDR9>7)XCnSgdV8X_2V&zH>ZBKuB z^|Z@9;O~Lkj^(wi>z(CY27V?szd2dlqc1$FnNaDO+1ROAng<)y(LHPL!=CtDZ}Z_nZKou_A_EZ?BHY8WpN0RNMWJWJqK+P0aw1<@Lt5yzNE62pm z!|;eN-g{(5(9hHG2sfn!u!wPH&?$o{)i5P{OCnCINSfy|WnQE>u;^vTp;N*x<WmCz*$E zrEe?~CdYPGBJ0%H<}Y91Hj8e{u9kD3b3HqB>iR_5 z%EQlVKC5&p@Jg>%-pwai+yy^!)2 z_{ey*+?vb5&Gq8Myqumn6O@H>IZB@C%X0E2G3Vx{B>Cm@ZYw3__3eATQ9I=HzluyB z)ZGK?vfe$k?6H5L2LXAgA^f`D-vD8NbQz%gj$e*-H|4C#?HNhP9crCu>Xr?$NYER9 znCQ}nh9vThKGk&lf{%g39H@R^)sdb2Jw;sk<*KtmNO)TP`Xbi-h0&ApL|wde@4-=( z@WfpVbJu~tEbaxB_M5sS(k3`ZSnNA)0ToKr{rg1TT|1hR*c-Fzs>}YsF0gv{DCdzA zz?!%-`E={P9p**)4OZvn?vvC9>B;@)m$#1FzN=Wy&=a`sOJ?C+8vn!v68Qhj5Oe%ThWP(A zQVZDIlL)$4SR0!-{x@sfqY3VduPJW@mdq;uCC(vZGd`8({t(CL7 zWvmI)3shioHdff|r7N5AWgxm@#Lx?lzP?@oYAdKWp`VMB&c^dhIcRr5&1-2|jHe|l z1&{(IerPuKU<`I*kFY}wxAN6fSX|LFbsl3vLK`Obzk*`M(CzU8_Oo{%%^K4&%bNPV zWt{@VM>BV;?pSD^K)NbyREvUAJpzN{DA{60Y643jEH|hI&iC;z>f=C!n<2HqiAVDq z<3a%!ChUS5|D39@8tH%Gpg|YrBlap|V+GLb=!-$Ub3@NH&1)HPhLkQ4of32x^F7po zd?0<~UT9vES>3&#O;liEHG9eobi*w&I~zr4&I3^4F>^!sF!DXQ;^Xyrik2_B<@+zI@XNsX!emxyvd%4-z>*(?J*Z8ZCL#mi-5I$q9;ta{Kg3qh@bc1q*_Fihj8_f<+TJ6L6q*2n|_ zYdsz=`KLig_uJptW{coS_h_H)Ggdu-3gPL+n6@jFCjb@AMU~{OMap;tsqln!=Yri< zXx8v0q*Bab1k7`!XDo#Y+_Q^*W76AW{PV-SH={y(@2D0tmKYUDrE6Jl@)qrLe9p94 zDCJQigOXM3K=9Uc=K5PsBU5O?RO%X!FbJTRili|{)luy_z9?~vrC5EzCS_h;H1orx zhY;HrL#qTMQi4<2qnI*C}V>p{iJA%H_#u z+9d3%6{EEh2}ROmNBg5$!o8V3^v_CJx-07ZOl066=5FaAG zO3ivfObW9Mz(Q368)MzYwwyaHC6g}`oZOp>mK;F}C#b?+u=*PeZy} zIaksnwR3Q(ijwZf0i}tKQLQ{U22i8$B<(x#5~jvf{`<0J$gHt zUM*_7tcLv<4G8&XmJi|c6W{F+4K|qdWun5DA0NxF{JAX!^q=~ohKB{$UnS$C} z5D+}2k)p-)S9raaejF2dP^y^68ugv|Qhve7cmxN095hdXFtOG%zK5{8FqjD*SU0uB*CJlZU4G z>IOIv{sA!`<+)}PhNgaBfyVWkms97*-HdB*j}9vc&2s4pf*nt0nM1Y>wa%jD@QLNK z?hd!w^j+vi2T<1?C86BzZTC-O<$7rn!hQ~ocdTFgo!g*4i8{g?klsV(MA`5fuHBE_ z{_Mg83vu7*ADy>Q1_n$d&|Z}T$BL!}Z}__A&wD%cUgG4^J!O5G9i?J#`n#aSs0H_I z^`)U-sITBWk8MjuGsQ=v!Sz0q@tksT0eqE<=wDV}L=Yc2WoO}7c5NA45Eo?{lk$s- z-jh)pN%FL)w^k0GmLmUrmW}n_5A|bc6;)#eIu{oOyxWB9EhY7*WV!UMA6WXElzy`3(^eX);#|6a z^T`)G*0B@keb4#RuEnhL+3M<&n7kepQ+XcV9sA??bNWGL>&&xc^Y#3Dd`M*P&&6na z%6f4?Ae^EZqzhf-ABkeGpCZJX2P7mZ|&8+jLDgv`S&N+g<1S zd?9m~*I^~4AtAo_S+HZuo=lBFp=sAqNUr43whhi;uf#;$&sC|8h~@6e^SY|1BpewO zmcKZ^7%H41bIPdFr3##d*%B)P^HR9DgzjIX>6y{;En@$cM>ET`pavr=U5Zw!vE3BU z2{BtTdHl^IJ~KZ^Uo@T0WmOqrm7Du&H>Xy)78Hm&=;UOwta?@zl>))V2FES2j6-)8 z#Bp{;+3-Xsj?2H`I2)*JRgFgj=OvM}eL@qJ0`)lb|0t(HUeX6swTEwV(Z6~T@fDCU zH4fpU0Td8`%CMwXRIx}o=!p8Oaiu6m4N?>BRN>@RnZJ1EtVHY7_2gFqGHEzl5NpAn zSzoyQDQyjDv5Om{_QiS;UTRx3I(cpJb||K*c9i*Z`j z)}W=svS1*&5fs+L-{fem8AaM|Z5jDqK9Rh$KC6CI>hzM%zb!{k+0eH7B-GMaf4 z=A4zkc?c7&+~Nk&$vpF0uKrfjCLq`_6f)}xsuV_Zu<0%L%;w<_Jnjr&AoFU|m164< zwvc}|<$W>VV-lNUk$DX^8yE>=J961Ayn&b2q|9UAI zF?5ZF5llC8ONb;yC#Tr&V2g)Z&QG7>rJdjAsD7e9no*V98`@%(vLfW8so$7MsPXtU z9e`z%spiu#8OwrI3#Z95a_VvElPmA!pSM&hJX&ylK4`Gzp>S*zm4wYRkdNj(FXfFc zK7*7uypEO!ZWLyQ=+|bCX-0+Kb8=TWU?8sj6gqT?2Hh`WC-MhR3v0tq+Ie2jgYh%v zg@@mC*bA;sy&8DG5FRH`_H0`$IM;^7d7hldCNbNJ?qjMzs&o`%K*33HuFl1u{3n@<$x7B_=3Q^r zOrCk<-+8W(pYsLJbX#m6XPPeEej<+?^J-Y7H_!anfPZevNxY~Op||97Uoh?Hhvb3gsjVi+jFSv;RD)=-u$ZePNhpTnqc?z%)KB%{b4K9P`Af&IHG1-3mDI zoX6jidx1NDJ1s6dxW-0PfNT{f!8Fl|oa1(Vh9Is;vZdO`G#k^Aev**gkg#3xoOx|U zv!QOw{^FrpY}Rhs6>0hhVx2P!A{#?`BpY$c3(&h`>vK4_rwY8 z`cv($vG5m|JrsNPMBd{CeTM>HzB@U0vwEK6Tymz+QxAFJ?3ANqK5!vg7Bf*+rz-tq zD40`^@$rx+GZ*%Lix&LIFuf!8e#?G+hV(joEA?jli^tK4!(!Yl-yo&hxl8aNxS`2; zss93Zvm~0Bcp;LltS)sdPt-M9xT9+Z#|yi1&wRuH4_zNPrsqD8H9j>GpzfaK>Mlxg z;i3O){Eaj6aZ0uNFbw7RXYr&V9lH`ugAyflh-8@4 z@i5*hH0E!n^4}VhanG6z9lMmP#QLj{a`n{eV_TXOuRA}rf+l_oSEfKZBoO^w2Ys_i z2z2Zr3J|P^Qkcl|kU|;As7Jb-Z~`#VUsY9dAg_O{)SiQlBFYO9H_|Rz{a(KL+N9Iw zly=vnWTYfzL|rt%*n@=^JI|A2dH~dG1oeKU@Ph~UaNeBq{G$a+(M{R%Ua2Fx;%De% z6bIao(yFG}8J%>OHa5`6k`feeeGfjXHb{kWSQjSby7*MFQ2b*7FXKOCAG~Q7e0-m- z;X2tq0DLQM`;?4M5r=c|qA>B|;NP%Fdh%4qV>$+A1`&d=Y!X%K!shu8IL>0{(UaM0 zb*2aPd0~O$1=j(YF+NUTw~`UH6e6xr+fwgc7`hXvcm4>(Nvf+PSLP9ENkG?UBY?&h z444W63u8iLgrj1=5-&iPHAZU|o%w6AblqZxVXk<%$Z3{^U@iuB_%b1Vd zT2^)bVT!|@<>S>~KG!Yn(<5DEtSS-V(5!06q%S68m_=&OlrBwtWjux;kRH&ieVvI3 zab_a6FMv%_;^mvQKq^L8?Q@mB1&#iL$7eeG2al_yF5>n81SGmCd6kgPkmR7Dq94s~yZqxy!>xY<|ZE9}_bl$>v#(J6AmllPJ6v(}C)tI)V z3hsz0tAfQV8XJR$)75h!E;tWdD??7n4q#l8xbssw#~Ru0!m5ybQfmgZaa~XXP-2Ls z%OgdlxIu*lyOGOo7orOV#|~8XMw^@AfVMF+Kg#=UkF)11&F2lP35hJsoF;Xl%laYj zggxhgKJWpQPz!6$BTLRBTMmCJ@HHOfoKBI0X$)8r7fgS)F%r5o7b2|%HS~o66RH3g z&7gr8DsMnR60ocJ>Dy1KE8fkW+fgVXQgfjkL!lgFp&T=z9LIwOfoz}_t569(z>V{1 zAaxw^aa=TF|~Rwa~KmlS=~Q$6Vo)z}Qa1@OTM7vgL&fTnnP!CjJp)5(8}#rblN?+>R-P`%EcqgvG{rhj^wcNaIe(;{fq=i;j5P znBVIKva^T7`I~2hOI1r-(M{*)=POn*+s10!9{imzmqb#f_HB9HYVao+y(bx?CmE9` z8T}_2C#Bu&dyDR9Ra``*wmj1@&N#*F1s{_(Bz-pOWI&(7F$LdA1)(f4bdrnkd+WgK zL(}lSQ?JC6o8ktYqfWV_0))D7#1(t@?zp;B#<)j$ubKk?ribpH_Uu-3@(Dr2&5efH zc|llF-YN&+kme&m)`^)#jORPfE*2)H<&om9G2IehwsEoq1V1o3%p^5zXw;RtPH<>r zzp$dCs-16EU4uVUz3E(CPi=kAovNu^?>Eca2$Y^>Wd+~TqViHwimR(reZ?9mx?)YN zPR-VPp&$(?emFl;k-qJw=G_|x#G%h2(-9(Z+H+1x0%A8m2})gi2KRv%;Q`s>fb3yF zb|0YHObGb7%GN~Bo#eyd>QV{z9CP*@FiQ@2?dG`@Gbcv#vtyEDs59NdMk=2oY_Apg zFECD{^!8qYNc6@9+aon@Cj3lOT4xLH5$%cn>z-b=?qb@grH z<`eJ5FrY>y!0xlpkg4yx%!anDBmCBtd~}fRZRL)XQoS1!u;*^*PdX+($09jqADEio zzpeYyDEVZSTk zwiT5=7CJ?AL^4}ja97ljI-X$(UJq$`<9d4ULH_tNyDbtj$5*yIyrf4>66i^50y8Vh z)hV>W^;_X2Rzf*gb;auU=XLm_8sU#^*WX9hLRMV=X?#;CgcEeXW_cL1fBhl{D*Z`0pWc4qef4_cZ2Nd*#n81Z9@BLN3wOYIFJl zv5OG^8#F+(j1diuP5jAJku~d|3>v^*#&*TF7wCf&`}!}Ri3a7Xs_G!-C1K3Hww_*1 z&&PcaNyI-5K|yvw!A+xYZz;f%c{ROv{jQfKZ?zgPkB6OVi7%=%p-jKg{Xgl}uiz?A<%)C$^=((mCaDl_WF$=pr5oQH!>fM_DwW>A=+KOG*J zy!vVXm*r5BF)T`2Ta|FZqcf;He^0$a<%go)(GNVwpmMC%S*iXbSv)sXl&y_qcbT7smhWo@6O)Dk6;8fg%l=Jd+k>otuRLRH8wkcZ__Buow4!=N2 z)l-0S_Mzo_!-9VHG}{z!XT)+OM?ZC97UQm>06psFe6JW!7DR0$do_6p@(8)6Fca;a zp@z%JcoDucVLBN>qASp8GJD6vbgT!sOdWZ*E&1UQO7Q}1Kpmcs|4t}FVhu!fO& z{$zX6O+=|jvaiH5z*@NsiJuR>iy_)y1Ib*5u!K`T$jQe;s(P)$om-tqJo zQjl6or*x8-LN__6%m}9q991@EcBys95-yB2$;lw?*OFULzA5q?l_Bdqc(kR%_9KFX zW(&lsFv>Ix<8-l{R`!igV@T-io}dVNQL;?5(_K(66;(6a(Swop{m&D(@ zsCy%}X)3A*!6u21zu035$+qo6?-5bp8>hSMb@dTp5G*vgvfl{ScKERc&WdFnVC|IZIIIJ&058CJe;BH) zv+1F}!&|mGm2SyzTGEWEkKv*9lFa{m`C_;NqDJcdCm$ZQ zmp@)HH`G?5IO4H>7)<{<1Z-g!dE&y(a0kStl$vLyRl9n{^MD$n=l$%@`fGa#Qb||O zdp19LD@p+6Rh?=YuC%4g{v|}tFx=7mn8$u#REzw4!iOImfQhriB!sF7^Mm%PNc93` zwW;H}sh9hS%W75jpRq9i6jaS&#lDHMU+7@}n|2h=lE&U8RQJd~hk#P>B#s#SIX7Vi z$?I08d~)Zhu62zD35utfjSa%>c#S6ko$dBq$~4+QYW3o6I_^OdGl0WQ3-^P&x!em9 zw5TGt`fb-5T6kXr*O%;09x|-A$1zrgcsg+(e2ib^Z|O;2*MLqlAolAh0Yyo~_V+^D z?{1y}l^R7Ir?$Tekwu}iWxX_j2}K&6SaKhU7r%J$s5n`vAn594hUV7EnSJ+dX|e}1 ze83^uYU=?{H#--A9}qr>F2{9X(vpi3uiOmKJx4_?i`_q_EN$qHzDeejL*()hRkr1f zDX!8;mpw|^%Eb#aYYL~{VVMLc=%_g5q6jc3XU+u)-V4lG;aU|%BF-FUngh)U+LcncZ3(zLBfJ5dKtg^rku(HhHU+emwv)~S$kRqla3@t`m zLd;b>taJHzWfTOv!VC(YEfW>$dtx$LB3;+CY|K@fdv<1I9%W`0z0owej3hPKGc&6w;Lb%||(Yv+_o6~Q^`Unf*LW+v&O<%zbCvtMP=3-26-@~-#eim$O35>n2j^ntqdS=wy?_z5^ z&3>}+y<>MV$DHaZpHYAAI)&}O`BzI;T=dlWPjz`Z2RuwXwk%XZ5OymP<}6f_7W$A# z*=FYNJL)c^T%0aIBL^#ga!BTn;F3}#0p&G{GC{n+)4+FQ;I$_m{pQYU`LYk8#^#oo z{zIi!J!2=SBa0x3CSje>Xv`=NfAi$)n4qfatCmj^5EH?Y3|CN&M#`WnA{$i6*7eAn zU<`jTV}n4-Wzr)uAAtgv4dr#6oj@tEjrbFxAB9X;wLPzU$5#^)>X8GUWw=frfM4fx zXX4v2bQwR|`tD-AD~8(zbWAa;Z9jqxB}>yEHoPMG`o=B#p*UH@-g@v8M|kW|n|C|x z(pJXp$Leq}65PkSypU?Os5eu@5#p!_(>C_=d<7YRjqSc!zC*;>Eq7-je$xS%M||}3 ztv%5u%6cM>iiVq9Mk@kkyuEda!H!paIi1$M2`izwU_w1Ys%0(pm(x2-5H23oeSE({ z-n-phrix-KX#HJ*c{KxU*6qd`ivRTRhyIYlvyonWzjwG}Dl9Hj~M;DVmmXJI*n)VN?3OPT6|V%KCL%(@>Kj zG99B)GqH1_3z7&xgOm_GlQ7-ZBZFvnMxq}E^mlaC>OeZ{DZH-G3hM8Q5}StHPKlv2 zQl5i_?K*5*@-~n)6>sjDcHBmtTk8S^Ez`4hpV_SBsTRkyd}ZFA%8%EDLVbc4`%*p- z(Bmq_`ux<7+P$bF!xC=%!s9#MMXPaCr_qIveD}T!HosuCSV=fc zmPAq$k2~7{eVf6aZuRdrz=)%=&LESd6xKhNpz#X4^3IUB@zeIGto%(vE)-De{ZYc4 zhD3bacHl&3AK{_blkKx_%G}6~KBAKHXOzwyx{S1Yu3PiiE}|yE_`1!+*8|$i8`)0t zlbVRx90tZ8U9+U~WAhz^Xy?)0f9LYDi_Tm!cvM@G#cLHWxdVpKq0DXte=nqnJ3QF< zI-ba9%4ml6!LW3-<2={56IOUYx6OPRjhcOA9{;n@xHjYB38gXi!YTg#0=G2&G9~Wg z14a1Tr$DKPK7g^_H%Dn3r_W7m+i1aE?5eg>*lOWX{Hm~0*ks{R;wrzg$9TaYW`|MB zZ=|$`v@f*&BTVTZLjbecM85|5TMPb+*b}knKe*NL5u|ra7d0WVyc_)RBp|EoGsJ$P zpK<#QwpEgSt>iNf8Hhi#3J{|a`M3XE(u z_N(&rFi0yMKxO+?aC-2i8nkc)U6ay!LjGZ_&Q!sLm9KGrnYm4VTjRG2P3X~y=_$tX z3Awj<@H?yu!v~Gvw}QBo?PdnS7>Y}SsV7T>n3tB_G-CFaqpd*t=Wsp@hpz?^Piuo3 z6b6sCu3QE;|2ncpmKy+7ho{KhOIP>k282&9={0(Q_sM1Yjg*aUlpo@BS5Mtr=yNjTGMti(hVqM5jfllJXtX)mHY-Q$uBzlvlK#Bo7}AHUE`CZCgM z?e!ZS(F?H#GetFwh13|k!kj-_VIp~>+LFce3LnkCTfDMR`cG)X+k?)G^rCgkBS0p=Rfqh zH8GQ0!9SE1dFV0@I9u`RE7D&T^92c-@_3KK0m`F4-G{z+t0?p`pM>$0Mt@Jy9wK4? zbbu#!RaVH;KPhvmoV8hTND3cS=o`C>9%RL&7U6t(ubv35F zWbE}M6z0EpK0u(IV7Mp-9#x0PBH9a(%qB=%{xIG(rLZs*ST5yqikhxZ;1W0Qgt^5t z7EE_ya;1G8V{=hWS-0_~{O2Ad7!#WWmewJesO#7FEmQjt(0O*Qor}#ezG7g(OCIxX zF(b%i%U2V~M~p4ew=mW~GuP-n^ODlB&?H*rfzUkz2Tz7$AG-J%N?b(1W9+#f$ZkKI~Vc;qC?926=*3B@m7d;Tw7IY~a0sa{X z-owhyVFC8A1A(bv;Z!jA_~wrPMi&pO4UL?X_}ABVME7<9pyNRs$F#Ff zrNn1e$7BQh?V0g}a|tGpSUp?N##7*6@Dpq_&#QXNZuF?;@W@W-Z{WT?8xVM91%6C6 z(CB4X5P4Qd-fm!@&Q3NYdZHL+L)v-@T@2nT(E|~5NM18NE}CwL%;^8QXbUj2czk>h z20KnVQ{Gno&i;Jn>*E{U^U>P?9$;4;$&`SCakfb+SW_n($a@VK9(T@XjKR&U&wE#Y zRcsO^~E88rsbS( z_DI8Xn`Pv)q?Vat%|z9sG#&a!*~wxyUY1&gi5CsNUnKnYox>^$U48_8tkpj?FNJMy z^IgM6UO%t{>ayPYJG;d2EkYURW5~I5-5VL|Z?DAMh^r-ot76XVv<9aow6Ttj_}@Zx zaOwy@$bLN#WlQ34&J@&s#HXWeiNt96arjPBc2ag{-_1hb<)pppe7E~6m5Y3y^xdof z$*nmi`{0#!w7BF5-wQ==_i)a4GzV(qPN01b@eV^UCrz$q#`+FM*k08BiB`u5{v%B0vt?`?-l4>K}n))@Qh}ciGA^R#f z_X@WT>vh`}Qae4J4!2YF^%H4e*QK13GZ^Blu3yIXigC&>K9xruESNhZ!OnwMEr^ODN`+q`+8>BhA9JnLmNSCrei zyy7f!-tX);H=y6No*xZM@|>U!Z_YkQ2E??6{;5Q*dgNH}A|xEMw08|pBf9CB3U3P8 zb95Rer2J8RF7Hi_#Z(19gn1A-i)R)6gn7;yZkU%}Eqm`vg__(_T~}6KTs+&ck2R2;afAo5#gZcdEM_OEk(S36}%E#D& z%e4&9nK3gly>{b?hZZ*MQA|4=o{byb?ZtHN2_?^4zKF~_%^9~&AOI)?C=bA-&KrM#*-g5$eJyG6gtqe7|XPo`Jc%I@xi3uGY z_C1?7YO7e40@_WSS3FtMdM^*kK-8ZEg3X1b3L>VY+OfOlm~zZh2su!e6UI0hJFMjw z=Gfh21U)$$cWHN@#_4>BC6pX}4p_61(@J8*MyC1mM|a=;!vbd;SYvVOmZLaVLWK#l zy$?Y%E~q0IVg7SSi|8&3<<}%=jLZz z5Ox9UbkwJuCk0U0SPCyz+5WJ^sa`qOLuGSq%RrFJ@?^Pi#}Gty=MSA$3-R?Sm&r61 zdbP7DTtw)1`cCK{#HAVIqb-$@EhoCC4VyRH z<3*Y_+r#}~*(~WW8Og@00O;nQR^d zJ9bHM0T}}4mO*`84*cJL=vH16LCd7+9V{XRWqAMTbKmJW;4o5td0wh45L4U@fVIR_ z*@eR=la7-UAVOuQk%Up?Q)oM3g`tS2J1#vaheQ&0R1;SIj{1|yFTM|t3A`Vxz+3H| zE&{)dEDJBN9qk$O$?C&yr^;KP8%EKfZL9nPJRik%p9`0f{WUU2bL9R&A9rLw>1 zUb6*i>Bh-~lMo7ObPxAtHKw#1M%M=KC%Ef;+=87Jn=!wam&`C zzC$}GwH|gKA${Igq%LMk+}e9@NcamT?;gawrZ=xw{)it5Ts^9cf!lqTmX5y$S2vxd z`0=N&{S2=R95AQ85ZAjdB)#59WH0x>3$uCzb;Mi=3*-f#VZyw6!l8fkvullh4DaMJ zzGj-&#rpK^(2^A_ogEpPF2_3xA2xg7>o+a z5RJ1CP1NF*>5o%D)bCT4>wP&+Se!80$CvL_4*v^@S!P-A%PU+y0WaBzcU7uR57+jF z`&LlZI_IY=>i{btV;boN(|5gk_Aq9ss;!anTjdP%6K_TWCARseUhoQouGi(TD-Ic} z(@@Y4<=24o+H!T1@lCdW5|a71#R#*(HJ%bdEEMfVv`upZ1uQ;s8XvQLB3yN{Nj?b` zq)kn^S(_%~DR~Z`uBhU;s_qHMW$w_h%nVI>`VXp+ z_-r^Y80W7z$zQ4sPPEPgkQO*WWioVd}QQqE%3+H&dzn zjmbvrF@D`E`6>%!)l`1(B{W_=oxkC3k7n@ejwV;Uhy!Q4*duBiQcwVH{~U^Y|Q9vn(!l`wVZhY+=n`iXf@Xoscb6lWDZEdlhr3*D}>=Lbgo9LlDN z>CYE3Y6nQ!yMCct(@G(3O{K{GjWTC^ys-IqgKWJP)ha`RP4XC5iPZV==J`#Svd$i3 zipRwFEvG$B!h-X;ohY3K|*^8V@5@| zy5?2wSMY17(>t|}yDHS4&+1>80DQ+5HQgnyMzH6QCC3Vm@#qrhRGF)|Z*Z%E&`bcX z=Yq2|KcLK_SousaFo*IdZ5{wUZwHH5?}^Q}y=$XP@99KpkJ>dv>IZzE-@3oiTMCX9 zGBob*_=Q|If>f7#NUAlhSjIcvc%hVP0f`(1r|L`QW7ru^G?>|2!)t+{JJIj&EbRzH zZw|12*@eP6)#%Z_g#&*6g*~y=O3~djvj&vM67!tHv$(u3b@AP))ff`O)3Y%tcbG?X zu6LNk@03yo;u>uQIcG=A$#*J8=_f}ey!#nU$IN*Z{j(Z;Px$e^RC*0W?=}(!-;cpF zAh)~4pE<*R;d!qZFPVt9rC@;9p4*eb2WzjXM6WlT6E2kZoE(&ac4n4kyK0+XRaYqtLLp^+6Al z;F+8SUk{5a+6kb{N0k^QJ0g`wr5O5O!z>Wm_ZiPa(~rWCA~*PiR){qdULm&*<7?#2 zd?^%$=2URGegr9-m}*eQYS5qOiBG}`wh_OccewS12DCv(K*W^PS3M#m$TW=1-K8K6I_|n zc{JbvU^N#ewrnqCS?kqZ|5;VV3F?u^y7f}Qk_LC6sd87xF{J9@Tm*JSLwEmrRyA`* zgqGO-;PCj`UGn0XRm(Pdajdyp6*_1v@j?HGit1I>+-?B{jBfiwNA*gc(IY7NSqU3Z zfzxS_@#}P9cDoolW{yp`nr*uXnsk9JRPC^%X@^z&kXrTdwP~lMaS}c0`72}VuL*#p z=~f9e=@MH@*(9oUUy=49O49QmoQ*Qm=(0)JrX457TcxDuS{#7vM5baIf8$P>_My4j zp?TBJ{+e2o2()ksw1!1mjz%A|bsw|UNT(F>Exq;?1LLg>-ED^U6}|Q$Bi$`(qhU+( zvs%)#E#s3b<1IGbEkA(+37{v!GZRu?M#IvNfo#6rVjB%KjrxbQ0`6b0?GCjnn@U-b z))4WPg1d;i6q9||;@8WWb3L-r;w1(Co$aHCiGnL@ueL2%$YIjpZSw6mYZ)i!VI_AA zz+Z>QFx1j@35XP#s(;Onq=+IUO&>NoAF6OSW%n97S7~TSxl8}n0x*BFw6;Pj!PUl~ zAr+{98b`y6d~HI~nNfh7E>Ta;9U>yb6R8sDknkhJldJM?HmpTURJ1PrG?O{*Mej5| zrRZ-67gBWF?Z2CZ-D(7BvO;|p@6$l!(@3ZejJ&i*BX7+|s z%_02ermdg1{h}k ziIEHHNwZ9~E2dy)ALNKWu;)xo5|Cs?lpw2VEe=Fv&NtyimPqgrI5+@h=khAJe{J89 zxI4KO`XUwbGo8YJqgwdK$7xxXgykce2n@bmKIMkCR%|ma8^Xh5StC1nN$>Puc?NAg zOE6T}FL{@}*2N?rGZ)a%_v2T?oteAeW(&xq+hLd*z#WV@f=gT^13j%+yT_7~0x`Td zNj$7Ea-_B6pX6~&Qfmsql9aN_cWG#0iBjS6aB-3Z5`*(0zsPOl$y3n62BpGZ;Nv8T zN8qysC^5zo&K3>+{(7Ml3;diFi{@AXP0W*)2(9{xdv+;ZI(GOi)ffdPhZpK(Do^zaHDuB3E7a638aps_>JVcih2 zz)Xl9?vnn{Lyo6~PN;4c`kf%Huwq`!+exid`|07^NnTBh_G|J60_t>U$8uiOlC;}d zTc%!ZXELr-PIAGBp^w>vLUWjx9epLRoWFGD&nk{9-mol>~~%29_5_%H|qK80)7geLT7GSQ7j;sJgk_}MR=by<#3fL!r&fZozxMkq-K-9Zklh~$aQ~K z9s-F)Pedr3-e7c1e0AcLWP-&?!7Xa-)DM`p^mGjuTr}<30>QNr zeNUkf)NMwdV1iY+tS@rst#;*IK}^xPW3s18X^EZ4P}sjw)ph4fSw7Y4mUiUb`^B4X zY~Q`l=B#Ts|I~rZHg!4%wvF$ZtQ*&n@-yF&RW!I^t$u0ldZmZ{a7HL)e%8z*ceBvH z;awMp)j1rboR1FEMoqtY)uXbjqbK^Hkd`)D46`ya-OAL~1gXdE>kwaw>FuC&N`IXP zMXLSib__vl#i^P7Q7y>%dmaBL4O)AhuAkLkJBE@!Gi$x}(y<(0c_Fr_y?fuI+j4@XRj+&S#2@Q zQnJD7*bO568{sX-EGcEFQ5a?|+2%Rnt4v0A%eRfCsl*tED1yKOxf9c%HHI9}_ zg}oC1R;1#7pLD<5UoAA&k7wClyzMMB?q)XXE&;FR8*jz3pq_Z@tFa0vvY;M&Rx7gF zyZ%!ScpU@}Ji%QVFe3r50IfOtwCJD4=0-Hr#Y|jQs%tg^XZ?(J$F83o#nn&vFY#F(#WS`{OO&LQJQqN*(&dT!aB(JOy5a zF}Gu}T4&wXx}&4Xt!3dtecjf!MZH7kJllCYV{9r5ak6&8{`R%Y^D)c$AK34L7rg1c z?d^HnkRlK9gO?u^K!zj@$eXTrGf3k;LJfuZsF%0*D8Qz@b%P$~6ZNeqs1!j6FYjpA zjUCUGd_WCe<4eSH8(f6+#*Dpx3w?NkNHCy->Fe44=2FAaqm3CEEHP;n456`!j z(oRFQ$SrIU)dl!YT*6nQ=E2Lf{le6sME^&=h($%dEfu8hHkbwcgIX9s$2gB`OL1Cy zX!RI>(!Mr)67uvV#yD2&>%$Azp3m&j`5?<}wLg77|FH}A;^01_O=p5KHwwgc223@Y zuy*lMS7T98^K2LSbUzOa?<`h_cfS$+(RzS*$AUF4LjBy1V+%*q@G9PAWB?2DR|B2} zxdOb_p8(&IMSO$}<7b^Jhu(EEou|NiPT(>+91OX}{*;!0D}JEr4L>HH?tl^eg3;r-Ni*UfK-Qa(ixC-@zcpcpkKN9m!giWYpq0B5eDCpo+dg(-wyw^4&3$Hr7!s zOm)RyFWOMk0}Z=xcy;|E_9OXKW41Xj&;q0*E>%whDR$sI(e)* zllx^Q{jKMWupx6r^nfBiaGI7JMhlX00Zf`BhF(s$(6GXhgI~C~IG5tv?ul-UD4Vz( zXc}ql4jj@pPj*;l?Vx#O>vZ&pq{##^`_UY~Qq|o+*yEuH*20f4K~~G%sm+!e^!i8& zZB6DOnJJ#)pfuR@*zdC}+imt4krb+&Iuqfn)bsN$tkeUYON)-FIP1y&3}j>{((@o< z4Why&*el%4W0q1?#dnYH3bo==%hdow=}l%QrD06+)zr+zaG)zu{F)Ym^Y2w%aR_{( z7{g&@rkS0e5YF&+GF52pJCm@oYn<@JRV)cm5)SKjN3mO!l}ECOoXSl2+!E<2;CqIR zpy1h+@N_=L6A?oDSguif=cW<++F&=gSdHHO{f;r)S%ie>mALMbj`R!A<-+4aXaIUO)Sx}ddjHh z7BTyXw6~_|(#_ee?H{!C&|ON_q5UEv+9zGUsUBK}TUrqKW`*y4werar5WRAs>V)5R z?AvBfO+>>FZQ1ES3Xx(yC+G*|u3#EysidG!2rJr3b(1=*hyjqcis$0%Nu52gNG1kp zZ*q9v*ohi%t%0ovtNcX12$%V)bBi$Ee07--f+Xt?J&IaV{KDX?LfcndRTbq285D1u z)gBcQsnu7aht+xm6+x+0KZh0j315jtO4A;&!xxlz*neZYF$W^WcfFXAs);J0!b)0W z)j1A4P#LACevVJ}Pcn_xdOQpB!Ae6jsSu|d%l9kuVGHJ}QNJ+|F`}hoR?z5v(aL~k ztS3U0p{2F>LVa)I>tyK!Y4?frn_o?phNQGmLKED21g4pc2F@|`2sZGLY*EI;pidpf zwamzybSkjR#(zKCBu4CxbFlhf5Xlczv>t{2h9{E=_#X8rW({@O31gqau5y?^5$H~c z=ggJdFo9?19r@2j@MhdwD_Pb`*@=g=ofdhMK6V)zt z^!d}2!H1RMQv)on+PiMlvT|V|Qm2Yt)%+L_FXXd}YWJ5`(}xYv<7`4HeeHXQ__p!u zajHGsd!{TG08!&wQ0D;G3Ft+FUOi%wr1y(Woi!^yGwqM2#J^&#Mjdeal&RF6yNsJi zfpe5kSI=D@i~WTo-9f|pK*Pf?JVq&@mD;0**bvNSPU&NP*7%j(-?D>7_L!<;Y*_-v z`brq~CqkmBM zzjK(xi*h?Ohy2W@2G8;|r7RrTuk*U){HsWOrTx~r!6+B~ZP!Raev%=u3ZBn_wSwYD zUu#^S;J==3B<(N!Jg0@w!p&dyoU-_9pGHXH611_HH?lHlevz$_%z9A7^HE?pwa=gw zg}TwK6x=cBXqtjK4e=ehopB2Nvu#fa4RkPpz;BG(!@DFa(>wLfk10MaPD^t7iQjRj zP4C#&&5y066}EGPFXM_`pyk zsAEYF(y#W=`#kisZBhlx2|?k6prhfC2<$(7mn$%Be<fr&HHv!%O4W@?hUzrDRlVqD%^_a>LJ|7+Y= z++Q<<{~H;nRnz_ssWx!>{9p9@Qa2ik(rf7Ktcl78=CqG%G?K+-!u7%Hp__0 z(DF+!2cFzE^-%{>>o?*e{5xoLwre~X-Dc?DQa;W3z&?uQSupR54A#4YfH=USN;vY)qd?WkJv6Y>dj?{&nik5jEcnxtK6~%viK`PjBH&G0Ngz!Y2u+A*7uV8K#=z6C?^Fn`J>U4KY^ihHJzUcA! zVTwouXv#PE8@fKbEcu4^BL4>rdg_2XsRbK%lJnoCJhIhdkMubsoxJ8bdI~oZ$EAV_ z16BV-2FIqo6Z|&qL21L+=yO$;8HrD=;=T&seSV4Gug#~lH)XC&?%_@(3U2B$9E)&! zCXDSN1lgNQNizpYzw8$4uP}VqIk>E%?9tonLqWr8sdH@tb z5r&}f6pq|2F(mgRF1~5WjqE{gc;Z(a0{-CiBRzQvRRju$;C$dS;5Ha>?pe}oxDj0> z7iE7Htlh*{ja&FqND}-qz_4kMA|gA&&W~tZ*Pnb+i~R#}qoUz{0N2Gv zG?EefB9xdoHuM@$@VE_;s^lmZLeWZ%FX8fIl>+w z6FCVynG|LVK3JW)rRn^s|B@4UmJmGV__dBL#dlj1wL?eYoHPCAP0_lY3SM`;B8}X67C*$~d%~o6GTl#Y zIWhTYKtJPR>&a*Tw+JU>Np#DF%+UK~I#`AE&=SQ%vOHQ=DOS|Dv1C`R(+k-GWOBv* zJCJyQk+CX=H0iFd#SM~KZfKa$=gQsVg+#B!X#e%$9@Smc?O4&~trYd64%IiHDn|(y zm+NEk!YQPBzV15P=iRRyfgspemP){T!;ER#U`%ik|3(vJjg@HqE?*y+X0L zAty?UA1H63o+oRe8bCY67+Kty6P41Rqr{!IV9~-(8D|+K%~H1->}Fh$k6I{M%tiN7 zg*A5Y&>*G!S(dT8hX!NX7uE3J0mR>m@Wj}Ll$6r3#whulX{Ko6Eu$YWlqoS8y|I<6 zUspI(arV^Pt_&GKHM11qr9m95xUH=i^}nzq(QdyP=mwYN#FQC)8OkRZ4<@We2Cf*mvBWv-pkOwl>dM;ZZ|Vo8eyB zUbFGl-_^IJ@ryt@7K@~k)eT>_Brd{mousty5o!&=9#q~JJl-;yY2P!>b~n`v2q*JP zEbEX%!uVOA))Qa9t+UEj@ipU({q1)aN~vM(=+tv=>vL?o?quRl)9WVH+wy1Hu4&sq z13N_sZJ#i;r0e+_#!gJEIE{c#_s)))YFIitG4-~BnJ$SA>TNYY6%x;S-CJijCjW=D zw~VbE;FbhC>7>KV%-rF0n37- z_Xe3AAi946AJDs0FI1i1TCs*dmTQ#W8Vk?=IW=?72zpPUrJ74JZ&rC6PYVphwQfO) z2XK+=aCWNo6xY>snB~YJI%p;OpwILS?KM$zEF8N5D0rxTT^ha0Vk4MUAlH&fK(6=M zGVchsk%0Ww%aX)33C9?DfQ#79wtR#-j0nX6pGD$NG>L=lS5RkjE(^hgMFxf? zDYfB`9dxC@;0l}?GLZB%Xoy-V*S}=FR9Li8;;2P%!!E>_w@$)Iw{qZ!#j*9zk zf*Z$q{0zEiZu~AH>LtqWB`&pCX{fzWztj5AU3KVPzQ-$&N53}!Fun$TD8M{*$9YHr zeOP`@H0Q>8mg0&!-gh3`ywZKGDG+$h(&nOG{LT(G*VAglChiPNA#W}b&1E0Ym}#?(j$|JCtR4$k}nHWM59uaM5uJ!VowKz z*EQm{DSn}8|8V#Yc+N+xiz<~zh*8&^I=@V3W41fb?&|#dQ4^lbiVj)bu74iIt#&Mc zTH?!vJ|l+JMy!0vjw!yyBY|KUY~bdDH@a$t<1Tohs13D*;jy3fNMDGtRs$KCKm#e- z3FxB?@%Lc@aB(KZqWfH^Q|wiR9fU$cEq2aQ^Ahf3Pv8^%?QfABHW=}Z6cKDGuYZq; zcw^$k@YX|CZS|#i&k9LcF$;cq7L z8XSu=8D~8Ws7yU=oFTM+hmll&|7m*gd5STmzJ*&2`o+ef`yO~(HN1(hWvFHDEpqaW zHte5u3}LKErjlKkor(z8MN(-~B}~BVma(mKU*Tx7Z6PaIa#DX)%YbOq+~98$l{gNw zoMFjiGX64YDAT(>W}T{sbjltQJ>?mUpXWW;96zD%%D!8b{`jV6s)}O|S9V3yRAcXK z^G(qH{`^mwkxcac{P~>;#sA-CLb3dBm)U3lbh;nUM)Qb^QF*AM&tB>wga5(PQN&9WDRWpEkB?jX=tkAb5XVE8 zw`9aAV*!778Z$A`<*+HI9~yu>_?okz;=)LSQ;>jW9QntFQqhe$6Cpy2{G7SDBlRIh zEXvPJvn>m%Dlkn@)`g?d0Qr2==t}z7_;|dn$IMJwZ%mNl#ZUjcuyz&frE^_mw zKSh2*5eLB6GeW`An}|K!r2LsxV4~wr{;PZ#OsPH8A!PxOV#21V!J(3zj;}bSMP+A6#ZhoDZjf|`1r=#tHYDYyA?#(7QZ*;u93rJmL@LhD zOyjS}B|E9BhH_XFLZeKi6%zHY2oC%&xlzsU=3GJ|!$#<0HuSClj>CFk!BkfA@ORnQ z#)Ou%vyI3xamnUEMcO#1fwPm=fBuCb;7U|~N((?mnX*-#o!(6aC(<-UU5Q1E%KWe{ zG^=!`QZDZ5O=MPV{d(+**p*0y{O{ii==w?1n zJloOz(W07lifIB%UEZwS#J+b`r5Jx>uqP=xw(Lk^v+~NAw>KN5elx)u2eT9E%F}%% zV85;NHhZ7TQkJ2o@R@|6Pg^bR$22S-M?eeA)b!$A6b4tw*EeD)b9W%`*o5~WxKl~@Mg0ds_No9 zx7jyH96SMgX>Ae>-i!65v@C<`3HgQtU$cdPK-kYy$(n8h?s>KQLoB;-?E;r)Siw$5 z2Tu&aslIQ=-hO^ap^GvM_rmd0ptNyp-PRDd#TODBLe2mW42}4gMz;g!U)ex`81~j(d6!2JXN&<}q)=xyvMZ(iu&VC@ZB zUT-vht^{l2@%xKr$LDu#%!{+R*Y;GI_xgk2cG3tyaf38LutNPz$va3v`o+{E2Sp9W zNAk?k*}nw8)b*dnq_#(D!}c8@Lxk|(;UE70t;Xb}XyV{(;sp3#d?YlXzK5(^zW$oU zeMfZ|jQlcyiv0tF2sw;ytcMF5{#&4%TF4Pal$_ZBos~`dl&)D{Yrav{B7Z@%o+(rW z*mxz;aO~Moy}0{*TIl4p)}y7BvqpQ(li^PKmAh{vbQ3LU&`4@s9|Ue6V?rKw$}}h0Fvdc{&Z2F5O*2bqD;5!r6Gr+;t$=DAdy@hx)@@upC;ul z3`)^rpY84x8t#%7LvtE9{7?+<1>q(k4{d{ zUilMPN0|*IbFWqhQSZ4fJ5sa=#~k83yJT<1ZCIzdqi@WaFi|eKH!U4%j=Bh62t!9Z zTZQWUQO!>>GML(ZtyHa#r8`!maU6E036V_)IgyM0?-jH%`F75^1 z=&qL4i#v-6{H-*Gxn?&t|3&P_U+*i;{}>!|hprF;#@x=mOgJ0c^Ty};;S*2blhmXE zxv2Td`}t5J2j7WSO9B46f1N5NW4Ki}YHV7H7ckviNVb1EOfSk~B?Q{tg1>$CzDR5`QQU$AB zcb6%#hps3%GeWITG*qTJV?Y}&DCLf%@KnZK$~^8gyXhR+tZ8kd|G6m19N9dyYNo8)={pP7tKHcBU@1B~s#QEt@~l+zg7 zV`|kJ*`++b_@li^OyLb_r_`?P`5wf%<}QeV?iK5AC^!$gbrJ{qOQVfk(v78i(-W4` zOJ*zxQv8r3c=|5^-G1x_ozszIvQ9sL;QEPIUbV@XvM_=KcSQ9d)9|~O?Mp4M=Yw;o zSc2NeO8I~f9SUtd1LDouTay?Wejky~pigS{Nmfgu*;br+-`+Zj@dabk`i9w7C+$ta zEp4)Q`I9Br-pUO-sj{N85Nv+9;LY}yKlr}q9QhlD4E*Pz)v^UMz>vjrnN+J&C5 zrM8bpj|GrWinK*Y3Ksfz+J?rCdn~GcoS+5Gx@5Ka4d+dJf)~Ip=9Js(=r){kn_AkV zQ~(KGdjtW;jZkk1ehtx$+_RZ3k2`%TyF}FmOmvcN5h;6=TIMsO0YGjz!A&NyQt6^( z(IZWV-Ip!HEmJ-*NFh|iT&>`}ykAab6&6yXR*vUAwZCiU$cxfSg-h+*kT%jA>s48~ zAeO?`8JRswPrSYIcvuzi`%z3&n?3Ze>n@&i9nEOGcjj+~=a7x@JshKo0 z#kE!FSHE3~Vh8eq)Q`W*gf@;XYneWd?G!hit1QjR5x|KkX3~lt`xx~BCUI`}$xOTeL(R*^p1Z4|yPu`hp1X-*qp>k61B5+z!$aMh8NEoy0 zSd=fRl8Zh-g%@9WBX-9f4`cbA>SlRd3PYor#iU4{#$AFGQ)Iv)9zUu3Vpfc5(RC}{ zqkU40R$+jdS;weRl#$puC)I{B`S{7&^__dWoY6KZMQ*)QdKdBTT_yDKRWRp~^Qa(Q zb>4nlf>a#I6AQ~V)1S06L(yv8V(W?$wbxgPQ@Nj<4-!(*)uoCdH zioOMcj)+XE71}`c7Pa3NF&yiulIp}3kZ=ciOabu}Nb4O=tB)P3K5C2@jh9yM+F~T6 ziBv<#ywa+(v2mhg?y7xll6WZq(>!3@AX#oPrA1)DDCzxt^UAYDD7koA3Rt_m1cgLe z25IKt0Wem+z~4qz1&~`{ArW#S$tg4|on{i}$SVBVRo8Qw(Ca@f_ryaq)m$*E02lCGfYR*$trp~YJsuywRnB4S8aUM?(#1-Sm-(Y(m)5j`{jmgZWZDPC9 z?EQ4^OR9sdj00H2S@75`ifc-pNh?mKUmvkrXHtMYNUFPX(T(5eJ$_0MkJW_x0NnF7F81yHr?J#1zsiENwRuMR8i{o~^Fwg8{pJ}&j2 zFkDb++XZr8V$Uh6rJ~b9Ie`rFv+hSt0dAD|Z)LPSO_UHYoO&|d2O&AziaX&3>D&6c z!L{?J01^S8U8(R4-Vb5+V2M~;J}cehy8uDWVTq+{)3GTx8BFc0O_TeLe|6tx<0eU+A-$a>5)Ydao6 zc3`A`&8Ubv!niw=f$+z{pI*+T1T=8h1H;qVXawLk=3<{@iDC*hzN-oVFn<~Ziuwm7 zx@jomxiiWFHe}7Zmk~rAt02wx*5-TMUj&WK_eGIX1w~Ll*NvN51bx4k$SEb+_LCco z_N8>ZoQ^GnDHV@t*-tQr3!7qxmV5!oeJ6PFrAR@gjGR#k4M3=LjN0HbC0mF=syYQ_ z^$nk;0vfiRM=)s?WoZ_}$z%Qow6`p%^w{o2(q|@vVs&6w(|~Lr;HQ?6ew~rel-sD^ zmp@c?X7`ljauwUP5ZWi&zM81Q8=<30`OiAN-NSa-G9!y?iu-&71?gg$vS9K#t#RIK z;nA&dKo?ZFvy~d=;;(`6d**Rr;JhIfYYD+kj?cKiM-uIS&gd`quJH>3BdT{A&4frA zF(Q7|eG{Se+H$1m^D4;23M$0|id9t8?(A6cG;Vg^U)Sqv*i%Z&MT;+{3-&+Wkt^CnO^lg&zvHbBv^i4{EyJS_5d37sfH@)m5V8(|!tnX}L!bt&; zB2+Dg6r2@}tI(Z`ktd9rFAXagNZCWm2*y0XFpko<^Nsx_6Ab(@LnjPT+YMng2h`8e z50+`D?b}Lvc?`MX!$RGZmD7*85^}B(=P(Fpq10r*p0g+SV2X^r6&R_rj$R}V`WAuozH!$fWT7t` zWu_747@{JlLph>OY1f$ZDM`OtU`0-^oet>X4k4hQPRh(D7V3-Rx@$~3|qCV_}- zYgLHp?1kSpn!jlhnitUjlCk1E+YEB6YdYh$h*4PyahaSc*^5FPlvt@i9HbTn7#@P} z!cT^C5e;lmqP{UmpR*+bEb?Y&g=3@c6pM??A;9)BMUO{6xm?()iZ zy~WbQr}$AxgU!W+Nk=D+`!^c1+-Mtw+ttUt)X;uXli$>h{AL=)T@M_uW=@S}NR4Jn zjb=;@R*d8LojN{gle$Le6eD1&V11I+%h*r*?YnBkOCT2O)@#~8{_utQ==EIT#cMM* z^r-Ch>-)+m9N{TsO3{A`ruF&-_s%`w#oCPb+r0J2bM)vq!7GXU8TLOf@$!A~ihbcW z9Xpy-_7bh|`W#M*<|%z%H#xXN(|T{<*>#HOF>}Y@)idGMGvbwF$gXD2w!2T5DogN+ zlDKZ6vHdolluMmrOP$JIxou%X%U;rW@mfoYPFLKqtJ&QG4s7{p!M#KKPkH(G-JEjP z`ud^rtoG~p__cW*%02}aky2_I%O}~%vu-xKEPQA!e&C<^Z0+0l^saF! zig>2~SygJB*^KmleCDcLc@ool?`W=uSYcZj?mW?{y%L)2*)d0O}Wu~m1Wu_vc5ss zD-WG_I;O|pEoBqa5d%znSqVo;8*|k%bni%~dW1jBYZ*%Nh$)_)v^t#w+SFa?&XO8S zpTwyfJ53G77^hiRho0s2!@q*i^vuKU`u3=xol6x;##)70LP)T`*BT0pVK}vD6w$wz zTUS+{7#4XloRe2;AB?FRvuZ@SMp;+Cp|j_^Qj(x^M8g1I_|-#>yc%|3>#Al+6tpor zH4)yP!g0z!gQ!p{m_N)d@@Gour=#k*Rnh6p@f@im6#|_`l1qYkH6d)5IB=Oph<`WG z3T4pApW}4>8)ig%DSw z-A8Nsp_kZ-vuneD%$TZI45=oUH0?}(xQr}$K; zv}XG)KJmCRu+&!$%o$tAdA4M#1fMU=TTnac*eJ~TkS~|N^%o-Lg@au z>4vyg2mzwxl_AKZN}Z){a5$MhMm!!>U-A7oH&E+C&NXR8F|x)M)abO*8WeuEGckvp zVkNI4!^=;`RbI`)XivH##tKO6w3GOnNTr~W`&00})a^hGD^>!WA;=PEo{u3@MloH& z2o0TN%ZMq==)REOLgruqiM9)8 zDlvwuc1SWHb}II1BfQR5y9#rvr6t9KHcM(pJ~aww*>XL82WW+KAEh|UXD^I6%-{F3 zck@earbcGDMH|1|i7tL2)wLv7bh$GD8yg>q_3Ibe?=KLi0VnERd^y?yn!alGfp9&@ zE5~ylBPnaIkBen-|u)KER%v~^1@@pS%G1gm$nQe%pih^Z@UH2@4DB z^=Ib|nPlLdC$1k2;eI>h+keiSXq1rb=06{IoOHd_`MY(1`}unG^!8)bL8qH3XwuD* zDJBGh)J9p3I^S19B0DDXUxFfN{D^`E+yj-0e)#*^dvR~Kh+i~y0* zn|yzPTtM++#u^6IV)hb{0g=;TpvmSdAr8XLUtp$LIvZYq78w%*JQ# z^|la0d)?W~2x=%9CZ^VL2HjeHGj{>!Sc4&Z1}4-nrgJV`IzhBBR_bgMeS=jw2VBfD z!44swEO4B}Ob3-2)co+C!v{DeNBEdsNk}?|3Jf3!+`dBbK`3L60QJmEgZ|*iEhG2&I6s6`1A#+z&z4Oq_LJmq}*Y-Ek z`8GJgVJe@tW>HHN=nbR?_&q~CZ)!mZ@4XpJHz1Vhg8a@j+XPkwPB@`{rsvFnKLF>C z3TA)JzuZ8o_FbWA`#ef_t1Th20LTzC>%UcU4!Kt)MJKubQU4k*>OLZ>Ro4$ zY9vFsEa|8R3BPi%3K)C*o|1p;kmv4-0{4ogsn5l^Mih2x7(L_tc#sJdpL z90?uD6z0Ze@FnVbj7e_r7C_^a(YO`*olDrBo^!;^RZ%)d;v`@ z9Za#f=mAvvkYKSUyA&>=DS!=3`VMMJ%RmC?ad`Mi@bCZ$`e!j!ZA(MzUu2C}h~(s3i&CvH*} z>KcM}8Z2M4+kS43-dx$`bJ*rrgHC>&J$pjsELc?1Syk@RDBMR7Z64I?1)-H3MPseD zz5LOyYVgw0n95cVb}HqpAPQ{|{(ysc-YWFeXMEyJpI{AsU0XJfi*#w*AZ1J6PYMfz zj=xXYR}Jnnh?D6h5MDC{GGfSxuQM{ zgKoG#)+DPyQBdQ;B2)TV&Do>ESyt$$b2>%4w1?a^>37k2^CVvUsGy*0e`cz>foNh? zqJ8QCpN>Qp;P2$wMEZaKd`vaxEIsl|x?W4N_xzwm$^TLNm-Ur(rYW$K{56d#2Maow z7r|SG*?Mq)H|bQyi`l#%m7D!1{bU~a+;SA#ZAFurQvk*Ziu{bYMNKRXgnbO|Bsr^b z>ptTOh#);f9chM>J0xH)2CZM0bEj)@e6O&LU639318&B|?ccH@c=8>08Sq+NB!-|- zxk1xySzo0CV}W9J0fZ7s`4oPbT&c|wf|gBcQTnRwKk8 z1cS9Meo@V!O!=oFK09X{v%$kkMl)8;s4{& zoD6!J*nm(~@D`8k6DTRbSe4bzi(p*!maZ#YDSJTj@{>E^7CbYnA2k2SSfr`>lbgfTbmcj0i6si6TR?Y$>ED~Uvz{0x+9^p-5i``sX?L5 zloHo;?u6c|Mm#ookLjeH+%=LEnaaYhy%53}U*ETYhc7up{lFTJ7Ixdo7V+MD3*TRs z0f|x%z1>2+yIVQqp3sK@M;;+<+;yl|uwPrKcAvOjW5CA*GT``p7vWcEB2|jlp#~^l zjOh{D;y4ndnu5N>&HWJAl=|SZ^b5@)Zx)hq{J(68>t09(_^1Y)W+-Y~W*H0Vy3rKO z#L8s8y+x5M1tcI}Z~37FK;bTm3Myv!ORLqBpQLcC@oFrnfP0v@!wE8`xXW|F1!! z|F^XIKMV4|P*tItmXeYh>SrSqE;4+WKq>LOvY|vC@_>icv>$X@np?QOQso08{EfJy zEH{V1@rO@W)8AbBOj!sZsAR(=peXZ1ir{q`>rI}^``D!DZ|+=!9Q?kadH#s>a&pC3 zQ)k2CX8P4vi_1@b3|^#~03ysKMPFfV!qUFhB3KB;I9_TT5UNTr#nqY&SmALvIXliw z4m!QzQLH}Zl3@%v=>iiFm!QI3}6&wU4o zfxkHrhLBZZ>7*8M707ZWMOBlr62j2h%EJs0UMlg<;SlacupTqY;-axd@REkG)I$!9 zGQfjgJNtejO|^%&Ub-nNpcx?)cAw#pUOvWdaDIDq)Q711tAftkgjU=J-DyN&x8{-i z<;oAU9TT3si9nW=`}@=5BkpX&Q0Tb{vnvdlA%v;>ih}5lI-}*fH?q%w@C7f8PuQX= zAjD2_iu@MJM@gR{(}&@x7!MDrbPLHPBEoq)kk(e44Ju*=xOmtQN*;{DLX6-Q;E)J zr`ukBhiW4vAr3=P<}wa3Afu1*vct#Xq#ugR`Ehz&`P2>H7nY}byadPsr!ZtE+jcNK zzjPXD;gtcXbUPzWnc1s$#{*o{s>lR)al=u6B18#Mq`_VBph-GM9`*kS5*cnE2kVV* zqep=~yIp}Mi+2>1d^`=cmQ;=GylKv0MU|=a@7<>HAE`86FEecxGarqHZW2)C%EauU z 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

e_?6R*-m?arF@(F85#cwHI8&UJ0e9G5Fil)A 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

ELW+ZsOG+`~7qeH4*aefrMCv@({6Gg$ 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

8Q2q`3$OsJiP&E5`%KaICf)~Gtm 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 diff --git a/marketcheck/make.sh b/marketcheck/make.sh deleted file mode 100755 index aec4fb1f..00000000 --- a/marketcheck/make.sh +++ /dev/null @@ -1,2 +0,0 @@ -#!/bin/sh -javac -classpath androidmarketapi-0.6.jar test.java diff --git a/marketcheck/protobuf-java-2.2.0.jar b/marketcheck/protobuf-java-2.2.0.jar deleted file mode 100644 index 7a0ccde10c4b8ef4bb0a20dba8e483e1f63bd9b5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 320306 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

=>MOQxw8R=T3BT4pd?V~Ec)e*a9< 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 apps = new ArrayList(); - String[] metafiles = dir.list(); - for (int i=0; i Date: Fri, 13 Jan 2012 10:29:05 +0000 Subject: [PATCH 70/75] Metadata: version updates --- metadata/com.fsck.k9.txt | 5 +++-- metadata/cz.hejl.chesswalk.txt | 4 ++++ metadata/net.androgames.level.txt | 4 ++++ metadata/net.sylvek.sharemyposition.txt | 5 +++-- metadata/org.adw.launcher.txt | 1 + metadata/org.coolreader.txt | 6 ++++-- metadata/org.fdroid.fdroid.txt | 2 ++ metadata/org.torproject.android.txt | 5 +++-- metadata/tkj.android.homecontrol.mythmote.txt | 8 +++++--- 9 files changed, 29 insertions(+), 11 deletions(-) diff --git a/metadata/com.fsck.k9.txt b/metadata/com.fsck.k9.txt index a5d42db2..05d636ff 100644 --- a/metadata/com.fsck.k9.txt +++ b/metadata/com.fsck.k9.txt @@ -15,6 +15,7 @@ Repo:https://github.com/k9mail/k-9.git #Note - k9 is currently developer's binary only #Build Version:3.906,14006,3.906,oldsdkloc=yes,patch=target9to10.patch,target=android-10 -Market Version:4.002 -Market Version Code:14020 +Update Check Mode:Market +Market Version:4.003 +Market Version Code:14021 diff --git a/metadata/cz.hejl.chesswalk.txt b/metadata/cz.hejl.chesswalk.txt index 74028d93..0922d068 100644 --- a/metadata/cz.hejl.chesswalk.txt +++ b/metadata/cz.hejl.chesswalk.txt @@ -14,3 +14,7 @@ Repo:https://git.gitorious.org/chesswalk/chesswalk.git Build Version:1.5,7,4007173d,buildjni=yes +Update Check Mode:Market +Market Version:1.4 +Market Version Code:6 + diff --git a/metadata/net.androgames.level.txt b/metadata/net.androgames.level.txt index 0fa414d6..d32a0505 100644 --- a/metadata/net.androgames.level.txt +++ b/metadata/net.androgames.level.txt @@ -21,3 +21,7 @@ Repo:http://androgames-sample.googlecode.com/svn/Market-apps/Level/trunk/ Build Version:1.8.0,27,75 +Update Check Mode:Market +Market Version:1.8.0 +Market Version Code:27 + diff --git a/metadata/net.sylvek.sharemyposition.txt b/metadata/net.sylvek.sharemyposition.txt index f5e4fd30..b983fe87 100644 --- a/metadata/net.sylvek.sharemyposition.txt +++ b/metadata/net.sylvek.sharemyposition.txt @@ -23,6 +23,7 @@ Repo:http://sharemyposition.googlecode.com/svn/trunk/ Build Version:1.0.11,16,64,subdir=ShareMyPosition-android Build Version:1.1.0-beta3,20,70,subdir=ShareMyPosition-android,target=android-11,prebuild=mv lib libs -Market Version:1.1.0-beta3 -Market Version Code:20 +Update Check Mode:Market +Market Version:1.1.0-beta4 +Market Version Code:21 diff --git a/metadata/org.adw.launcher.txt b/metadata/org.adw.launcher.txt index 7732c013..56fdc4f1 100644 --- a/metadata/org.adw.launcher.txt +++ b/metadata/org.adw.launcher.txt @@ -14,6 +14,7 @@ Repo:https://github.com/AnderWeb/android_packages_apps_Launcher.git Build Version:1.3.6 Standalone,34,b28e9e417c81857cfd2e0265c3c6d409d6c8d0f1 +Update Check Mode:None Market Version:1.3.6 Standalone Market Version Code:34 diff --git a/metadata/org.coolreader.txt b/metadata/org.coolreader.txt index 04728ee2..240994b5 100644 --- a/metadata/org.coolreader.txt +++ b/metadata/org.coolreader.txt @@ -52,7 +52,9 @@ Build Version:3.0.54-9,279,cr3.0.54-9,subdir=android,rm=android/build.properties Build Version:3.0.54-33,303,cr3.0.54-33,subdir=android,rm=android/build.properties,buildjni=yes Build Version:3.0.54-38,308,cr3.0.54-38,subdir=android,rm=android/build.properties,buildjni=yes Build Version:3.0.54-47,447,cr3.0.54-47,subdir=android,rm=android/build.properties,buildjni=yes +Build Version:3.0.55-5,505,cr3.0.55-5,subdir=android,rm=android/build.properties,buildjni=yes -Market Version:3.0.54-47 -Market Version Code:447 +Update Check Mode:Market +Market Version:3.0.55-5 +Market Version Code:505 diff --git a/metadata/org.fdroid.fdroid.txt b/metadata/org.fdroid.fdroid.txt index 299b2d9a..9c68ac5f 100644 --- a/metadata/org.fdroid.fdroid.txt +++ b/metadata/org.fdroid.fdroid.txt @@ -27,3 +27,5 @@ Build Version:0.23,14,aa58a8aad1a1c3832eafb9f1bdd6db8292d2c172 Build Version:0.24,15,9b5fe2976443255b95027abd412f1c1e7f3d27b2 Build Version:0.25,16,43977cc493e47a4dc841c4192ae8a40fb14b639b +Update Check Mode:None + diff --git a/metadata/org.torproject.android.txt b/metadata/org.torproject.android.txt index f65c7920..79082fc4 100644 --- a/metadata/org.torproject.android.txt +++ b/metadata/org.torproject.android.txt @@ -10,6 +10,7 @@ A Tor client allowing private internet access via a local SOCKS or HTTP proxy. O device, the proxying can be completely transparent. . -Market Version:0.2.3.7-alpha-orbot-1.0.6 -Market Version Code:21 +Update Check Mode:Market +Market Version:0.2.3.10-alpha-orbot-1.0.7-RC1 +Market Version Code:23 diff --git a/metadata/tkj.android.homecontrol.mythmote.txt b/metadata/tkj.android.homecontrol.mythmote.txt index 7ee80013..92a64389 100644 --- a/metadata/tkj.android.homecontrol.mythmote.txt +++ b/metadata/tkj.android.homecontrol.mythmote.txt @@ -12,7 +12,9 @@ A network remote control for MythTV. Repo Type:svn Repo:http://mythmote.googlecode.com/svn/trunk/ -Market Version:1.5.1 -Market Version Code:10 - #Build Version:1.4.0,8,126,rm=src/tkj/android/homecontrol/mythmote/R.java + +Update Check Mode:Market +Market Version:1.6.0 +Market Version Code:11 + From b36eeadce324c821fe1f7ec7880a561954daa636 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Fri, 13 Jan 2012 10:29:19 +0000 Subject: [PATCH 71/75] More update check wip --- checkupdates.py | 59 +++++++++++++++++++++++++++++++++---------------- common.py | 3 ++- 2 files changed, 42 insertions(+), 20 deletions(-) diff --git a/checkupdates.py b/checkupdates.py index 0d631061..caa27c82 100755 --- a/checkupdates.py +++ b/checkupdates.py @@ -31,20 +31,11 @@ import common execfile('config.py') -# Parse command line... -parser = OptionParser() -parser.add_option("-v", "--verbose", action="store_true", default=False, - help="Spew out even more information than normal") -(options, args) = parser.parse_args() - -# Get all apps... -apps = common.read_metadata(options.verbose) - -html_parser = HTMLParser.HTMLParser() - -for app in apps: - - print "Processing " + app['id'] +# Check for a new version by looking at the Google market. +# Returns (None, "a message") if this didn't work, or (version, vercode) for +# the details of the current version. +def check_market(app): + time.sleep(5) url = 'http://market.android.com/details?id=' + app['id'] page = urllib.urlopen(url).read() @@ -60,9 +51,41 @@ for app in apps: vercode = m.group(1) if not vercode: - print "...couldn't find version code" - elif not version: - print "...couldn't find version" + return (None, "Couldn't find version code") + if not version: + return (None, "Couldn't find version") + return (version, vercode) + + + + +# Parse command line... +parser = OptionParser() +parser.add_option("-v", "--verbose", action="store_true", default=False, + help="Spew out even more information than normal") +(options, args) = parser.parse_args() + +# Get all apps... +apps = common.read_metadata(options.verbose) + +html_parser = HTMLParser.HTMLParser() + +for app in apps: + + print "Processing " + app['id'] + '...' + + mode = app['Update Check Mode'] + if mode == 'Market': + (version, vercode) = check_market(app) + elif mode == 'None': + version = None + vercode = 'Checking disabled' + else: + version = None + vercode = 'Invalid update check method' + + if not version: + print "..." + vercode elif vercode == app['Market Version Code'] and version == app['Market Version']: print "...up to date" else: @@ -72,7 +95,5 @@ for app in apps: metafile = os.path.join('metadata', app['id'] + '.txt') common.write_metadata(metafile, app) - time.sleep(5) - print "Finished." diff --git a/common.py b/common.py index c825d7ce..262208d1 100644 --- a/common.py +++ b/common.py @@ -473,10 +473,11 @@ def write_metadata(dest, app): mf.write('\\\n'.join(build['origlines']) + '\n') if len(app['builds']) > 0: mf.write('\n') + writefield('Update Check Mode') if len(app['Market Version']) > 0: writefield('Market Version') writefield('Market Version Code') - mf.write('\n') + mf.write('\n') writecomments(None) mf.close() From e44406f7518fcb0873f54e2a64b3be10f09cfa57 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Fri, 13 Jan 2012 12:27:46 +0000 Subject: [PATCH 72/75] Metadata: fixed Crosswords build --- metadata/org.eehouse.android.xw4.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/metadata/org.eehouse.android.xw4.txt b/metadata/org.eehouse.android.xw4.txt index 5a640fba..73204beb 100644 --- a/metadata/org.eehouse.android.xw4.txt +++ b/metadata/org.eehouse.android.xw4.txt @@ -17,9 +17,9 @@ Repo:git://xwords.git.sourceforge.net/gitroot/xwords/xwords #Build Version:4.4 beta 18,11,android_beta_18,subdir=xwords4/android/XWords4,fixtrans=yes #Build Version:4.4 beta 23,16,!Translation files are not valid #Build Version:4.4 beta 26,19,!Missing resources? android_beta_26,subdir=xwords4/android/XWords4 -Build Version:4.4 beta 33,26,android_beta_33,subdir=xwords4/android/XWords4 -Build Version:4.4 beta 38,30,android_beta_38,subdir=xwords4/android/XWords4 -Build Version:4.4 beta 39,31,android_beta_39,subdir=xwords4/android/XWords4,target=android-8,prebuild=cd .. && ./scripts/genvers.sh >ant_out.txt +Build Version:4.4 beta 33,26,android_beta_33,subdir=xwords4/android/XWords4,buildjni=yes +Build Version:4.4 beta 38,30,android_beta_38,subdir=xwords4/android/XWords4,buildjni=yes +Build Version:4.4 beta 39,31,android_beta_39,subdir=xwords4/android/XWords4,buildjni=yes,target=android-8,prebuild=cd .. && ./scripts/genvers.sh >ant_out.txt Market Version:4.4 Market Version Code:33 From 2f182febfb14d8895aa89863149599d2fc044dc0 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Fri, 13 Jan 2012 12:28:11 +0000 Subject: [PATCH 73/75] Allow for subdirectories being present only in relevant commit --- common.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/common.py b/common.py index 262208d1..358ba824 100644 --- a/common.py +++ b/common.py @@ -555,8 +555,6 @@ def prepare_source(vcs, app, build, build_dir, sdk_path, ndk_path, javacc_path, # Optionally, the actual app source can be in a subdirectory... if build.has_key('subdir'): root_dir = os.path.join(build_dir, build['subdir']) - if not os.path.exists(root_dir): - raise BuildException('Missing subdir ' + root_dir) else: root_dir = build_dir @@ -564,6 +562,11 @@ def prepare_source(vcs, app, build, build_dir, sdk_path, ndk_path, javacc_path, print "Resetting repository to " + build['commit'] vcs.reset(build['commit']) + # Check that a subdir (if we're using one) exists. This has to happen + # after the checkout, since it might not exist elsewhere... + if not os.path.exists(root_dir): + raise BuildException('Missing subdir ' + root_dir) + # Initialise submodules if requred... if build.get('submodules', 'no') == 'yes': vcs.initsubmodules() From b4ea881db9c24b0dfa548dac8211a116b2467c72 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Fri, 13 Jan 2012 19:28:05 +0000 Subject: [PATCH 74/75] Metadata: added AardDict --- metadata/aarddict.android.txt | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 metadata/aarddict.android.txt diff --git a/metadata/aarddict.android.txt b/metadata/aarddict.android.txt new file mode 100644 index 00000000..c49dfa24 --- /dev/null +++ b/metadata/aarddict.android.txt @@ -0,0 +1,17 @@ +Category:Office +License:GPLv3 +Web Site:http://aarddict.org/android/ +Source Code:https://github.com/aarddict/android +Issue Tracker:https://github.com/aarddict/android/issues +Donate:http://aarddict.org/android/ + +Summary:Offline dictionary +Description: +An offline dictionary and wikipedia reader. +. + +Repo Type:git +Repo:git://github.com/aarddict/android.git + +Build Version:1.3.1,10,1.3.1,prebuild=mv lib libs + From 373f892558f2e52662f942627026fa232c365435 Mon Sep 17 00:00:00 2001 From: Ciaran Gultnieks Date: Fri, 13 Jan 2012 19:28:49 +0000 Subject: [PATCH 75/75] Add check for unbuilt jni to scanner --- scanner.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/scanner.py b/scanner.py index f4d63e35..2f30b439 100755 --- a/scanner.py +++ b/scanner.py @@ -102,6 +102,14 @@ for app in apps: msg += ' in ' + app['id'] + ' ' + thisbuild['version'] problems.append(msg) + # Presence of a jni directory without buildjni=yes might + # indicate a problem... + if (os.path.exists(os.path.join(root_dir, 'jni')) and + thisbuild.get('buildjni', 'no') != 'yes'): + msg = 'Found jni directory, but buildjni is not enabled' + msg += ' in ' + app['id'] + ' ' + thisbuild['version'] + problems.append(msg) + except BuildException as be: msg = "Could not scan app %s due to BuildException: %s" % (app['id'], be) problems.append(msg)