chiark / gitweb /
Rework build into a class
authorDaniel Martí <mvdan@mvdan.cc>
Sat, 28 Nov 2015 16:55:27 +0000 (17:55 +0100)
committerDaniel Martí <mvdan@mvdan.cc>
Wed, 2 Dec 2015 19:03:11 +0000 (20:03 +0100)
This simplifies usage, goes from

    build['flag']
to
    build.flag

Also makes static analyzers able to detect invalid attributes as the set
is now limited in the class definition.

As a bonus, setting of the default field values is now done in the
constructor, not separately and manually.

While at it, unify "build", "thisbuild", "info", "thisinfo", etc into
just "build".

15 files changed:
fdroidserver/build.py
fdroidserver/checkupdates.py
fdroidserver/common.py
fdroidserver/import.py
fdroidserver/lint.py
fdroidserver/metadata.py
fdroidserver/scanner.py
fdroidserver/update.py
tests/common.TestCase
tests/metadata.TestCase
tests/metadata/net.osmand.plus.pickle
tests/metadata/org.adaway.pickle
tests/metadata/org.smssecure.smssecure.pickle
tests/metadata/org.videolan.vlc.pickle
tests/metadata/update-pickle.py [deleted file]

index 5e8054dabaa4fc298f6bc97a4b6f0dffa14246d9..44d48bba93e3888e4bfa2617070830b1168dbb7c 100644 (file)
@@ -245,7 +245,7 @@ def release_vm():
 
 
 # Note that 'force' here also implies test mode.
-def build_server(app, thisbuild, vcs, build_dir, output_dir, force):
+def build_server(app, build, vcs, build_dir, output_dir, force):
     """Do a build on the build server."""
 
     try:
@@ -333,9 +333,9 @@ def build_server(app, thisbuild, vcs, build_dir, output_dir, force):
         ftp.mkdir('extlib')
         ftp.mkdir('srclib')
         # Copy any extlibs that are required...
-        if thisbuild['extlibs']:
+        if build.extlibs:
             ftp.chdir(homedir + '/build/extlib')
-            for lib in thisbuild['extlibs']:
+            for lib in build.extlibs:
                 lib = lib.strip()
                 libsrc = os.path.join('build/extlib', lib)
                 if not os.path.exists(libsrc):
@@ -350,8 +350,8 @@ def build_server(app, thisbuild, vcs, build_dir, output_dir, force):
                     ftp.chdir('..')
         # Copy any srclibs that are required...
         srclibpaths = []
-        if thisbuild['srclibs']:
-            for lib in thisbuild['srclibs']:
+        if build.srclibs:
+            for lib in build.srclibs:
                 srclibpaths.append(
                     common.getsrclib(lib, 'build/srclib', basepath=True, prepare=False))
 
@@ -389,7 +389,7 @@ def build_server(app, thisbuild, vcs, build_dir, output_dir, force):
             cmdline += ' --force --test'
         if options.verbose:
             cmdline += ' --verbose'
-        cmdline += " %s:%s" % (app.id, thisbuild['vercode'])
+        cmdline += " %s:%s" % (app.id, build.vercode)
         chan.exec_command('bash -c ". ~/.bsenv && ' + cmdline + '"')
         output = ''
         while not chan.exit_status_ready():
@@ -406,7 +406,7 @@ def build_server(app, thisbuild, vcs, build_dir, output_dir, force):
         if returncode != 0:
             raise BuildException(
                 "Build.py failed on server for {0}:{1}".format(
-                    app.id, thisbuild['version']), output)
+                    app.id, build.version), output)
 
         # Retrieve the built files...
         logging.info("Retrieving build output...")
@@ -414,8 +414,8 @@ def build_server(app, thisbuild, vcs, build_dir, output_dir, force):
             ftp.chdir(homedir + '/tmp')
         else:
             ftp.chdir(homedir + '/unsigned')
-        apkfile = common.getapkname(app, thisbuild)
-        tarball = common.getsrcname(app, thisbuild)
+        apkfile = common.getapkname(app, build)
+        tarball = common.getsrcname(app, build)
         try:
             ftp.get(apkfile, os.path.join(output_dir, apkfile))
             if not options.notarball:
@@ -423,7 +423,7 @@ def build_server(app, thisbuild, vcs, build_dir, output_dir, force):
         except:
             raise BuildException(
                 "Build failed for %s:%s - missing output files".format(
-                    app.id, thisbuild['version']), output)
+                    app.id, build.version), output)
         ftp.close()
 
     finally:
@@ -457,32 +457,33 @@ def capitalize_intact(string):
     return string[0].upper() + string[1:]
 
 
-def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_dir, tmp_dir, force, onserver, refresh):
+def build_local(app, build, vcs, build_dir, output_dir, srclib_dir, extlib_dir, tmp_dir, force, onserver, refresh):
     """Do a build locally."""
 
-    if thisbuild['buildjni'] and thisbuild['buildjni'] != ['no']:
-        if not thisbuild['ndk_path']:
-            logging.critical("Android NDK version '%s' could not be found!" % thisbuild['ndk'])
+    ndk_path = build.ndk_path()
+    if build.buildjni and build.buildjni != ['no']:
+        if not ndk_path:
+            logging.critical("Android NDK version '%s' could not be found!" % build.ndk or 'r10e')
             logging.critical("Configured versions:")
             for k, v in config['ndk_paths'].iteritems():
                 if k.endswith("_orig"):
                     continue
                 logging.critical("  %s: %s" % (k, v))
             sys.exit(3)
-        elif not os.path.isdir(thisbuild['ndk_path']):
-            logging.critical("Android NDK '%s' is not a directory!" % thisbuild['ndk_path'])
+        elif not os.path.isdir(ndk_path):
+            logging.critical("Android NDK '%s' is not a directory!" % ndk_path)
             sys.exit(3)
 
     # Set up environment vars that depend on each build
     for n in ['ANDROID_NDK', 'NDK', 'ANDROID_NDK_HOME']:
-        common.env[n] = thisbuild['ndk_path']
+        common.env[n] = ndk_path
 
     common.reset_env_path()
     # Set up the current NDK to the PATH
-    common.add_to_env_path(thisbuild['ndk_path'])
+    common.add_to_env_path(ndk_path)
 
     # Prepare the source code...
-    root_dir, srclibpaths = common.prepare_source(vcs, app, thisbuild,
+    root_dir, srclibpaths = common.prepare_source(vcs, app, build,
                                                   build_dir, srclib_dir,
                                                   extlib_dir, onserver, refresh)
 
@@ -490,26 +491,27 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
     # different from the default ones
     p = None
     gradletasks = []
-    if thisbuild['type'] == 'maven':
+    method = build.method()
+    if method == 'maven':
         logging.info("Cleaning Maven project...")
         cmd = [config['mvn3'], 'clean', '-Dandroid.sdk.path=' + config['sdk_path']]
 
-        if '@' in thisbuild['maven']:
-            maven_dir = os.path.join(root_dir, thisbuild['maven'].split('@', 1)[1])
+        if '@' in build.maven:
+            maven_dir = os.path.join(root_dir, build.maven.split('@', 1)[1])
             maven_dir = os.path.normpath(maven_dir)
         else:
             maven_dir = root_dir
 
         p = FDroidPopen(cmd, cwd=maven_dir)
 
-    elif thisbuild['type'] == 'gradle':
+    elif method == 'gradle':
 
         logging.info("Cleaning Gradle project...")
 
-        if thisbuild['preassemble']:
-            gradletasks += thisbuild['preassemble']
+        if build.preassemble:
+            gradletasks += build.preassemble
 
-        flavours = thisbuild['gradle']
+        flavours = build.gradle
         if flavours == ['yes']:
             flavours = []
 
@@ -522,8 +524,8 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
             adapt_gradle(libpath)
 
         cmd = [config['gradle']]
-        if thisbuild['gradleprops']:
-            cmd += ['-P'+kv for kv in thisbuild['gradleprops']]
+        if build.gradleprops:
+            cmd += ['-P'+kv for kv in build.gradleprops]
 
         for task in gradletasks:
             parts = task.split(':')
@@ -534,16 +536,16 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
 
         p = FDroidPopen(cmd, cwd=root_dir)
 
-    elif thisbuild['type'] == 'kivy':
+    elif method == 'kivy':
         pass
 
-    elif thisbuild['type'] == 'ant':
+    elif method == 'ant':
         logging.info("Cleaning Ant project...")
         p = FDroidPopen(['ant', 'clean'], cwd=root_dir)
 
     if p is not None and p.returncode != 0:
         raise BuildException("Error cleaning %s:%s" %
-                             (app.id, thisbuild['version']), p.output)
+                             (app.id, build.version), p.output)
 
     for root, dirs, files in os.walk(build_dir):
 
@@ -575,12 +577,12 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
             del_dirs(['obj'])
 
     if options.skipscan:
-        if thisbuild['scandelete']:
+        if build.scandelete:
             raise BuildException("Refusing to skip source scan since scandelete is present")
     else:
         # Scan before building...
         logging.info("Scanning source for common problems...")
-        count = scanner.scan_source(build_dir, root_dir, thisbuild)
+        count = scanner.scan_source(build_dir, root_dir, build)
         if count > 0:
             if force:
                 logging.warn('Scanner found %d problems' % count)
@@ -590,7 +592,7 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
     if not options.notarball:
         # Build the source tarball right before we build the release...
         logging.info("Creating source tarball...")
-        tarname = common.getsrcname(app, thisbuild)
+        tarname = common.getsrcname(app, build)
         tarball = tarfile.open(os.path.join(tmp_dir, tarname), "w:gz")
 
         def tarexc(f):
@@ -599,9 +601,9 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
         tarball.close()
 
     # Run a build command if one is required...
-    if thisbuild['build']:
+    if build.build:
         logging.info("Running 'build' commands in %s" % root_dir)
-        cmd = common.replace_config_vars(thisbuild['build'], thisbuild)
+        cmd = common.replace_config_vars(build.build, build)
 
         # Substitute source library paths into commands...
         for name, number, libpath in srclibpaths:
@@ -612,16 +614,16 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
 
         if p.returncode != 0:
             raise BuildException("Error running build command for %s:%s" %
-                                 (app.id, thisbuild['version']), p.output)
+                                 (app.id, build.version), p.output)
 
     # Build native stuff if required...
-    if thisbuild['buildjni'] and thisbuild['buildjni'] != ['no']:
+    if build.buildjni and build.buildjni != ['no']:
         logging.info("Building the native code")
-        jni_components = thisbuild['buildjni']
+        jni_components = build.buildjni
 
         if jni_components == ['yes']:
             jni_components = ['']
-        cmd = [os.path.join(thisbuild['ndk_path'], "ndk-build"), "-j1"]
+        cmd = [os.path.join(ndk_path, "ndk-build"), "-j1"]
         for d in jni_components:
             if d:
                 logging.info("Building native code in '%s'" % d)
@@ -640,15 +642,15 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
                 del manifest_text
             p = FDroidPopen(cmd, cwd=os.path.join(root_dir, d))
             if p.returncode != 0:
-                raise BuildException("NDK build failed for %s:%s" % (app.id, thisbuild['version']), p.output)
+                raise BuildException("NDK build failed for %s:%s" % (app.id, build.version), p.output)
 
     p = None
     # Build the release...
-    if thisbuild['type'] == 'maven':
+    if method == 'maven':
         logging.info("Building Maven project...")
 
-        if '@' in thisbuild['maven']:
-            maven_dir = os.path.join(root_dir, thisbuild['maven'].split('@', 1)[1])
+        if '@' in build.maven:
+            maven_dir = os.path.join(root_dir, build.maven.split('@', 1)[1])
         else:
             maven_dir = root_dir
 
@@ -656,12 +658,12 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
                   '-Dmaven.jar.sign.skip=true', '-Dmaven.test.skip=true',
                   '-Dandroid.sign.debug=false', '-Dandroid.release=true',
                   'package']
-        if thisbuild['target']:
-            target = thisbuild["target"].split('-')[1]
+        if build.target:
+            target = build.target.split('-')[1]
             common.regsub_file(r'<platform>[0-9]*</platform>',
                                r'<platform>%s</platform>' % target,
                                os.path.join(root_dir, 'pom.xml'))
-            if '@' in thisbuild['maven']:
+            if '@' in build.maven:
                 common.regsub_file(r'<platform>[0-9]*</platform>',
                                    r'<platform>%s</platform>' % target,
                                    os.path.join(maven_dir, 'pom.xml'))
@@ -670,7 +672,7 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
 
         bindir = os.path.join(root_dir, 'target')
 
-    elif thisbuild['type'] == 'kivy':
+    elif method == 'kivy':
         logging.info("Building Kivy project...")
 
         spec = os.path.join(root_dir, 'buildozer.spec')
@@ -690,8 +692,8 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
         modules = bconfig.get('app', 'requirements').split(',')
 
         cmd = 'ANDROIDSDK=' + config['sdk_path']
-        cmd += ' ANDROIDNDK=' + thisbuild['ndk_path']
-        cmd += ' ANDROIDNDKVER=' + thisbuild['ndk']
+        cmd += ' ANDROIDNDK=' + ndk_path
+        cmd += ' ANDROIDNDKVER=' + build.ndk
         cmd += ' ANDROIDAPI=' + str(bconfig.get('app', 'android.api'))
         cmd += ' VIRTUALENV=virtualenv'
         cmd += ' ./distribute.sh'
@@ -731,27 +733,27 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
         cmd.append('release')
         p = FDroidPopen(cmd, cwd=distdir)
 
-    elif thisbuild['type'] == 'gradle':
+    elif method == 'gradle':
         logging.info("Building Gradle project...")
 
         # Avoid having to use lintOptions.abortOnError false
-        if thisbuild['gradlepluginver'] >= LooseVersion('0.7'):
+        if build.gradlepluginver >= LooseVersion('0.7'):
             with open(os.path.join(root_dir, 'build.gradle'), "a") as f:
                 f.write("\nandroid { lintOptions { checkReleaseBuilds false } }\n")
 
         cmd = [config['gradle']]
-        if thisbuild['gradleprops']:
-            cmd += ['-P'+kv for kv in thisbuild['gradleprops']]
+        if build.gradleprops:
+            cmd += ['-P'+kv for kv in build.gradleprops]
 
         cmd += gradletasks
 
         p = FDroidPopen(cmd, cwd=root_dir)
 
-    elif thisbuild['type'] == 'ant':
+    elif method == 'ant':
         logging.info("Building Ant project...")
         cmd = ['ant']
-        if thisbuild['antcommands']:
-            cmd += thisbuild['antcommands']
+        if build.antcommands:
+            cmd += build.antcommands
         else:
             cmd += ['release']
         p = FDroidPopen(cmd, cwd=root_dir)
@@ -759,10 +761,10 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
         bindir = os.path.join(root_dir, 'bin')
 
     if p is not None and p.returncode != 0:
-        raise BuildException("Build failed for %s:%s" % (app.id, thisbuild['version']), p.output)
-    logging.info("Successfully built version " + thisbuild['version'] + ' of ' + app.id)
+        raise BuildException("Build failed for %s:%s" % (app.id, build.version), p.output)
+    logging.info("Successfully built version " + build.version + ' of ' + app.id)
 
-    if thisbuild['type'] == 'maven':
+    if method == 'maven':
         stdout_apk = '\n'.join([
             line for line in p.output.splitlines() if any(
                 a in line for a in ('.apk', '.ap_', '.jar'))])
@@ -782,14 +784,14 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
             raise BuildException('Failed to find output')
         src = m.group(1)
         src = os.path.join(bindir, src) + '.apk'
-    elif thisbuild['type'] == 'kivy':
+    elif method == 'kivy':
         src = os.path.join('python-for-android', 'dist', 'default', 'bin',
                            '{0}-{1}-release.apk'.format(
                                bconfig.get('app', 'title'),
                                bconfig.get('app', 'version')))
-    elif thisbuild['type'] == 'gradle':
+    elif method == 'gradle':
 
-        if thisbuild['gradlepluginver'] >= LooseVersion('0.11'):
+        if build.gradlepluginver >= LooseVersion('0.11'):
             apks_dir = os.path.join(root_dir, 'build', 'outputs', 'apk')
         else:
             apks_dir = os.path.join(root_dir, 'build', 'apk')
@@ -801,14 +803,14 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
         if len(apks) < 1:
             raise BuildException('Failed to find gradle output in %s' % apks_dir)
         src = apks[0]
-    elif thisbuild['type'] == 'ant':
+    elif method == 'ant':
         stdout_apk = '\n'.join([
             line for line in p.output.splitlines() if '.apk' in line])
         src = re.match(r".*^.*Creating (.+) for release.*$.*", stdout_apk,
                        re.S | re.M).group(1)
         src = os.path.join(bindir, src)
-    elif thisbuild['type'] == 'raw':
-        src = os.path.join(root_dir, thisbuild['output'])
+    elif method == 'raw':
+        src = os.path.join(root_dir, build.output)
         src = os.path.normpath(src)
 
     # Make sure it's not debuggable...
@@ -850,12 +852,12 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
         nativecode = nativecode.strip()
         nativecode = None if not nativecode else nativecode
 
-    if thisbuild['buildjni'] and thisbuild['buildjni'] != ['no']:
+    if build.buildjni and build.buildjni != ['no']:
         if nativecode is None:
             raise BuildException("Native code should have been built but none was packaged")
-    if thisbuild['novcheck']:
-        vercode = thisbuild['vercode']
-        version = thisbuild['version']
+    if build.novcheck:
+        vercode = build.vercode
+        version = build.version
     if not version or not vercode:
         raise BuildException("Could not find version information in build in output")
     if not foundid:
@@ -871,13 +873,13 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
     if index != -1:
         version = version[:index]
 
-    if (version != thisbuild['version'] or
-            vercode != thisbuild['vercode']):
+    if (version != build.version or
+            vercode != build.vercode):
         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), build.version,
+                                str(build.vercode))
                              )
 
     # Add information for 'fdroid verify' to be able to reproduce the build
@@ -895,7 +897,7 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
 
     # Copy the unsigned apk to our destination directory for further
     # processing (by publish.py)...
-    dest = os.path.join(output_dir, common.getapkname(app, thisbuild))
+    dest = os.path.join(output_dir, common.getapkname(app, build))
     shutil.copyfile(src, dest)
 
     # Move the source tarball into the output directory...
@@ -904,7 +906,7 @@ def build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_d
                     os.path.join(output_dir, tarname))
 
 
-def trybuild(app, thisbuild, build_dir, output_dir, also_check_dir, srclib_dir, extlib_dir,
+def trybuild(app, build, build_dir, output_dir, also_check_dir, srclib_dir, extlib_dir,
              tmp_dir, repo_dir, vcs, test, server, force, onserver, refresh):
     """
     Build a particular version of an application, if it needs building.
@@ -923,7 +925,7 @@ def trybuild(app, thisbuild, build_dir, output_dir, also_check_dir, srclib_dir,
     :returns: True if the build was done, False if it wasn't necessary.
     """
 
-    dest_apk = common.getapkname(app, thisbuild)
+    dest_apk = common.getapkname(app, build)
 
     dest = os.path.join(output_dir, dest_apk)
     dest_repo = os.path.join(repo_dir, dest_apk)
@@ -937,20 +939,20 @@ def trybuild(app, thisbuild, build_dir, output_dir, also_check_dir, srclib_dir,
             if os.path.exists(dest_also):
                 return False
 
-    if thisbuild['disable'] and not options.force:
+    if build.disable and not options.force:
         return False
 
     logging.info("Building version %s (%s) of %s" % (
-        thisbuild['version'], thisbuild['vercode'], app.id))
+        build.version, build.vercode, app.id))
 
     if server:
         # When using server mode, still keep a local cache of the repo, by
         # grabbing the source now.
-        vcs.gotorevision(thisbuild['commit'])
+        vcs.gotorevision(build.commit)
 
-        build_server(app, thisbuild, vcs, build_dir, output_dir, force)
+        build_server(app, build, vcs, build_dir, output_dir, force)
     else:
-        build_local(app, thisbuild, vcs, build_dir, output_dir, srclib_dir, extlib_dir, tmp_dir, force, onserver, refresh)
+        build_local(app, build, vcs, build_dir, output_dir, srclib_dir, extlib_dir, tmp_dir, force, onserver, refresh)
     return True
 
 
@@ -1060,7 +1062,7 @@ def main():
     if options.latest:
         for app in apps.itervalues():
             for build in reversed(app.builds):
-                if build['disable'] and not options.force:
+                if build.disable and not options.force:
                     continue
                 app.builds = [build]
                 break
@@ -1078,7 +1080,7 @@ def main():
 
         first = True
 
-        for thisbuild in app.builds:
+        for build in app.builds:
             wikilog = None
             try:
 
@@ -1098,8 +1100,8 @@ def main():
 
                     first = False
 
-                logging.debug("Checking " + thisbuild['version'])
-                if trybuild(app, thisbuild, build_dir, output_dir,
+                logging.debug("Checking " + build.version)
+                if trybuild(app, build, build_dir, output_dir,
                             also_check_dir, srclib_dir, extlib_dir,
                             tmp_dir, repo_dir, vcs, options.test,
                             options.server, options.force,
@@ -1112,10 +1114,10 @@ def main():
                         # alongside our built one in the 'unsigend'
                         # directory.
                         url = app.Binaries
-                        url = url.replace('%v', thisbuild['version'])
-                        url = url.replace('%c', str(thisbuild['vercode']))
+                        url = url.replace('%v', build.version)
+                        url = url.replace('%c', str(build.vercode))
                         logging.info("...retrieving " + url)
-                        of = "{0}_{1}.apk.binary".format(app.id, thisbuild['vercode'])
+                        of = "{0}_{1}.apk.binary".format(app.id, build.vercode)
                         of = os.path.join(output_dir, of)
                         net.download_file(url, local_filename=of)
 
@@ -1148,7 +1150,7 @@ def main():
             if options.wiki and wikilog:
                 try:
                     # Write a page with the last build log for this version code
-                    lastbuildpage = appid + '/lastbuild_' + thisbuild['vercode']
+                    lastbuildpage = appid + '/lastbuild_' + build.vercode
                     newpage = site.Pages[lastbuildpage]
                     txt = "Build completed at " + time.strftime("%Y-%m-%d %H:%M:%SZ", time.gmtime()) + "\n\n" + wikilog
                     newpage.save(txt, summary='Build log')
index 685d59fe0e684f0012831b575601867774f44e5a..b7aaae5c5473c97872226bd48aad838556173916 100644 (file)
@@ -108,10 +108,12 @@ def check_tags(app, pattern):
 
         vcs.gotorevision(None)
 
-        flavours = []
+        last_build = metadata.Build()
         if len(app.builds) > 0:
-            if app.builds[-1]['gradle']:
-                flavours = app.builds[-1]['gradle']
+            last_build = app.builds[-1]
+
+        if last_build.submodules:
+            vcs.initsubmodules()
 
         hpak = None
         htag = None
@@ -143,7 +145,7 @@ def check_tags(app, pattern):
                     root_dir = build_dir
                 else:
                     root_dir = os.path.join(build_dir, subdir)
-                paths = common.manifest_paths(root_dir, flavours)
+                paths = common.manifest_paths(root_dir, last_build.gradle)
                 version, vercode, package = common.parse_androidmanifests(paths, app)
                 if vercode:
                     logging.debug("Manifest exists in subdir '{0}'. Found version {1} ({2})"
@@ -199,10 +201,12 @@ def check_repomanifest(app, branch=None):
         elif repotype == 'bzr':
             vcs.gotorevision(None)
 
-        flavours = []
+        last_build = metadata.Build()
         if len(app.builds) > 0:
-            if app.builds[-1]['gradle']:
-                flavours = app.builds[-1]['gradle']
+            last_build = app.builds[-1]
+
+        if last_build.submodules:
+            vcs.initsubmodules()
 
         hpak = None
         hver = None
@@ -212,7 +216,7 @@ def check_repomanifest(app, branch=None):
                 root_dir = build_dir
             else:
                 root_dir = os.path.join(build_dir, subdir)
-            paths = common.manifest_paths(root_dir, flavours)
+            paths = common.manifest_paths(root_dir, last_build.gradle)
             version, vercode, package = common.parse_androidmanifests(paths, app)
             if vercode:
                 logging.debug("Manifest exists in subdir '{0}'. Found version {1} ({2})"
@@ -313,14 +317,12 @@ def possible_subdirs(app):
     else:
         build_dir = os.path.join('build', app.id)
 
-    flavours = []
+    last_build = metadata.Build()
     if len(app.builds) > 0:
-        build = app.builds[-1]
-        if build['gradle']:
-            flavours = build['gradle']
+        last_build = app.builds[-1]
 
     for d in dirs_with_manifest(build_dir):
-        m_paths = common.manifest_paths(d, flavours)
+        m_paths = common.manifest_paths(d, last_build.gradle)
         package = common.parse_androidmanifests(m_paths, app)[2]
         if package is not None:
             subdir = os.path.relpath(d, build_dir)
@@ -344,10 +346,9 @@ def fetch_autoname(app, tag):
     except VCSException:
         return None
 
-    flavours = []
+    last_build = metadata.Build()
     if len(app.builds) > 0:
-        if app.builds[-1]['gradle']:
-            flavours = app.builds[-1]['gradle']
+        last_build = app.builds[-1]
 
     logging.debug("...fetch auto name from " + build_dir)
     new_name = None
@@ -356,7 +357,7 @@ def fetch_autoname(app, tag):
             root_dir = build_dir
         else:
             root_dir = os.path.join(build_dir, subdir)
-        new_name = common.fetch_real_name(root_dir, flavours)
+        new_name = common.fetch_real_name(root_dir, last_build.gradle)
         if new_name is not None:
             break
     commitmsg = None
@@ -458,25 +459,25 @@ def checkupdates_app(app, first=True):
             gotcur = False
             latest = None
             for build in app.builds:
-                if int(build['vercode']) >= int(app.CurrentVersionCode):
+                if int(build.vercode) >= int(app.CurrentVersionCode):
                     gotcur = True
-                if not latest or int(build['vercode']) > int(latest['vercode']):
+                if not latest or int(build.vercode) > int(latest.vercode):
                     latest = build
 
-            if int(latest['vercode']) > int(app.CurrentVersionCode):
+            if int(latest.vercode) > int(app.CurrentVersionCode):
                 logging.info("Refusing to auto update, since the latest build is newer")
 
             if not gotcur:
                 newbuild = latest.copy()
-                if 'origlines' in newbuild:
-                    del newbuild['origlines']
-                newbuild['disable'] = False
-                newbuild['vercode'] = app.CurrentVersionCode
-                newbuild['version'] = app.CurrentVersion + suffix
-                logging.info("...auto-generating build for " + newbuild['version'])
-                commit = pattern.replace('%v', newbuild['version'])
-                commit = commit.replace('%c', newbuild['vercode'])
-                newbuild['commit'] = commit
+                if newbuild.origlines:
+                    del newbuild.origlines[:]
+                newbuild.disable = False
+                newbuild.vercode = app.CurrentVersionCode
+                newbuild.version = app.CurrentVersion + suffix
+                logging.info("...auto-generating build for " + newbuild.version)
+                commit = pattern.replace('%v', newbuild.version)
+                commit = commit.replace('%c', newbuild.vercode)
+                newbuild.commit = commit
                 app.builds.append(newbuild)
                 name = common.getappname(app)
                 ver = common.getcvname(app)
index 87fd3c28d5c5c4f49c378d469fecdc8319950acd..f20b0b5fc2cf7a34cec3e055aac91faefbccfd2e 100644 (file)
@@ -221,15 +221,6 @@ def read_config(opts, config_file='config.py'):
     return config
 
 
-def get_ndk_path(version):
-    if version is None:
-        version = 'r10e'  # falls back to latest
-    paths = config['ndk_paths']
-    if version not in paths:
-        return ''
-    return paths[version] or ''
-
-
 def find_sdk_tools_cmd(cmd):
     '''find a working path to a tool from the Android SDK'''
 
@@ -363,10 +354,10 @@ def read_app_args(args, allapps, allow_vercodes=False):
         vc = vercodes[appid]
         if not vc:
             continue
-        app.builds = [b for b in app.builds if b['vercode'] in vc]
+        app.builds = [b for b in app.builds if b.vercode in vc]
         if len(app.builds) != len(vercodes[appid]):
             error = True
-            allvcs = [b['vercode'] for b in app.builds]
+            allvcs = [b.vercode for b in app.builds]
             for v in vercodes[appid]:
                 if v not in allvcs:
                     logging.critical("No such vercode %s for app %s" % (v, appid))
@@ -419,11 +410,11 @@ def apknameinfo(filename):
 
 
 def getapkname(app, build):
-    return "%s_%s.apk" % (app.id, build['vercode'])
+    return "%s_%s.apk" % (app.id, build.vercode)
 
 
 def getsrcname(app, build):
-    return "%s_%s_src.tar.gz" % (app.id, build['vercode'])
+    return "%s_%s_src.tar.gz" % (app.id, build.vercode)
 
 
 def getappname(app):
@@ -1250,17 +1241,17 @@ gradle_version_regex = re.compile(r"[^/]*'com\.android\.tools\.build:gradle:([^\
 def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=False, refresh=True):
 
     # Optionally, the actual app source can be in a subdirectory
-    if build['subdir']:
-        root_dir = os.path.join(build_dir, build['subdir'])
+    if build.subdir:
+        root_dir = os.path.join(build_dir, build.subdir)
     else:
         root_dir = build_dir
 
     # Get a working copy of the right revision
-    logging.info("Getting source for revision " + build['commit'])
-    vcs.gotorevision(build['commit'], refresh)
+    logging.info("Getting source for revision " + build.commit)
+    vcs.gotorevision(build.commit, refresh)
 
     # Initialise submodules if required
-    if build['submodules']:
+    if build.submodules:
         logging.info("Initialising submodules")
         vcs.initsubmodules()
 
@@ -1270,19 +1261,19 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=
         raise BuildException('Missing subdir ' + root_dir)
 
     # Run an init command if one is required
-    if build['init']:
-        cmd = replace_config_vars(build['init'], build)
+    if build.init:
+        cmd = replace_config_vars(build.init, build)
         logging.info("Running 'init' commands in %s" % root_dir)
 
         p = FDroidPopen(['bash', '-x', '-c', cmd], cwd=root_dir)
         if p.returncode != 0:
             raise BuildException("Error running init command for %s:%s" %
-                                 (app.id, build['version']), p.output)
+                                 (app.id, build.version), p.output)
 
     # Apply patches if any
-    if build['patch']:
+    if build.patch:
         logging.info("Applying patches")
-        for patch in build['patch']:
+        for patch in build.patch:
             patch = patch.strip()
             logging.info("Applying " + patch)
             patch_path = os.path.join('metadata', app.id, patch)
@@ -1292,9 +1283,9 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=
 
     # Get required source libraries
     srclibpaths = []
-    if build['srclibs']:
+    if build.srclibs:
         logging.info("Collecting source libraries")
-        for lib in build['srclibs']:
+        for lib in build.srclibs:
             srclibpaths.append(getsrclib(lib, srclib_dir, build, preponly=onserver, refresh=refresh))
 
     for name, number, libpath in srclibpaths:
@@ -1307,8 +1298,8 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=
 
     # Update the local.properties file
     localprops = [os.path.join(build_dir, 'local.properties')]
-    if build['subdir']:
-        parts = build['subdir'].split(os.sep)
+    if build.subdir:
+        parts = build.subdir.split(os.sep)
         cur = build_dir
         for d in parts:
             cur = os.path.join(cur, d)
@@ -1324,26 +1315,27 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=
             logging.info("Creating local.properties file at %s" % path)
         # Fix old-fashioned 'sdk-location' by copying
         # from sdk.dir, if necessary
-        if build['oldsdkloc']:
+        if build.oldsdkloc:
             sdkloc = re.match(r".*^sdk.dir=(\S+)$.*", props,
                               re.S | re.M).group(1)
             props += "sdk-location=%s\n" % sdkloc
         else:
             props += "sdk.dir=%s\n" % config['sdk_path']
             props += "sdk-location=%s\n" % config['sdk_path']
-        if build['ndk_path']:
+        ndk_path = build.ndk_path()
+        if ndk_path:
             # Add ndk location
-            props += "ndk.dir=%s\n" % build['ndk_path']
-            props += "ndk-location=%s\n" % build['ndk_path']
+            props += "ndk.dir=%s\n" % ndk_path
+            props += "ndk-location=%s\n" % ndk_path
         # Add java.encoding if necessary
-        if build['encoding']:
-            props += "java.encoding=%s\n" % build['encoding']
+        if build.encoding:
+            props += "java.encoding=%s\n" % build.encoding
         with open(path, 'w') as f:
             f.write(props)
 
     flavours = []
-    if build['type'] == 'gradle':
-        flavours = build['gradle']
+    if build.method() == 'gradle':
+        flavours = build.gradle
 
         gradlepluginver = None
 
@@ -1372,13 +1364,13 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=
                         break
 
         if gradlepluginver:
-            build['gradlepluginver'] = LooseVersion(gradlepluginver)
+            build.gradlepluginver = LooseVersion(gradlepluginver)
         else:
             logging.warn("Could not fetch the gradle plugin version, defaulting to 0.11")
-            build['gradlepluginver'] = LooseVersion('0.11')
+            build.gradlepluginver = LooseVersion('0.11')
 
-        if build['target']:
-            n = build["target"].split('-')[1]
+        if build.target:
+            n = build.target.split('-')[1]
             regsub_file(r'compileSdkVersion[ =]+[0-9]+',
                         r'compileSdkVersion %s' % n,
                         os.path.join(root_dir, 'build.gradle'))
@@ -1387,38 +1379,38 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=
     remove_debuggable_flags(root_dir)
 
     # Insert version code and number into the manifest if necessary
-    if build['forceversion']:
+    if build.forceversion:
         logging.info("Changing the version name")
         for path in manifest_paths(root_dir, flavours):
             if not os.path.isfile(path):
                 continue
             if has_extension(path, 'xml'):
                 regsub_file(r'android:versionName="[^"]*"',
-                            r'android:versionName="%s"' % build['version'],
+                            r'android:versionName="%s"' % build.version,
                             path)
             elif has_extension(path, 'gradle'):
                 regsub_file(r"""(\s*)versionName[\s'"=]+.*""",
-                            r"""\1versionName '%s'""" % build['version'],
+                            r"""\1versionName '%s'""" % build.version,
                             path)
 
-    if build['forcevercode']:
+    if build.forcevercode:
         logging.info("Changing the version code")
         for path in manifest_paths(root_dir, flavours):
             if not os.path.isfile(path):
                 continue
             if has_extension(path, 'xml'):
                 regsub_file(r'android:versionCode="[^"]*"',
-                            r'android:versionCode="%s"' % build['vercode'],
+                            r'android:versionCode="%s"' % build.vercode,
                             path)
             elif has_extension(path, 'gradle'):
                 regsub_file(r'versionCode[ =]+[0-9]+',
-                            r'versionCode %s' % build['vercode'],
+                            r'versionCode %s' % build.vercode,
                             path)
 
     # Delete unwanted files
-    if build['rm']:
+    if build.rm:
         logging.info("Removing specified files")
-        for part in getpaths(build_dir, build['rm']):
+        for part in getpaths(build_dir, build.rm):
             dest = os.path.join(build_dir, part)
             logging.info("Removing {0}".format(part))
             if os.path.lexists(dest):
@@ -1432,12 +1424,12 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=
     remove_signing_keys(build_dir)
 
     # Add required external libraries
-    if build['extlibs']:
+    if build.extlibs:
         logging.info("Collecting prebuilt libraries")
         libsdir = os.path.join(root_dir, 'libs')
         if not os.path.exists(libsdir):
             os.mkdir(libsdir)
-        for lib in build['extlibs']:
+        for lib in build.extlibs:
             lib = lib.strip()
             logging.info("...installing extlib {0}".format(lib))
             libf = os.path.basename(lib)
@@ -1447,10 +1439,10 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=
             shutil.copyfile(libsrc, os.path.join(libsdir, libf))
 
     # Run a pre-build command if one is required
-    if build['prebuild']:
+    if build.prebuild:
         logging.info("Running 'prebuild' commands in %s" % root_dir)
 
-        cmd = replace_config_vars(build['prebuild'], build)
+        cmd = replace_config_vars(build.prebuild, build)
 
         # Substitute source library paths into prebuild commands
         for name, number, libpath in srclibpaths:
@@ -1460,20 +1452,20 @@ def prepare_source(vcs, app, build, build_dir, srclib_dir, extlib_dir, onserver=
         p = FDroidPopen(['bash', '-x', '-c', cmd], cwd=root_dir)
         if p.returncode != 0:
             raise BuildException("Error running prebuild command for %s:%s" %
-                                 (app.id, build['version']), p.output)
+                                 (app.id, build.version), p.output)
 
     # Generate (or update) the ant build file, build.xml...
-    if build['update'] and build['update'] != ['no'] and build['type'] == 'ant':
+    if build.update and build.update != ['no'] and build.method() == 'ant':
         parms = ['android', 'update', 'lib-project']
         lparms = ['android', 'update', 'project']
 
-        if build['target']:
-            parms += ['-t', build['target']]
-            lparms += ['-t', build['target']]
-        if build['update'] == ['auto']:
-            update_dirs = ant_subprojects(root_dir) + ['.']
+        if build.target:
+            parms += ['-t', build.target]
+            lparms += ['-t', build.target]
+        if build.update:
+            update_dirs = build.update
         else:
-            update_dirs = build['update']
+            update_dirs = ant_subprojects(root_dir) + ['.']
 
         for d in update_dirs:
             subdir = os.path.join(root_dir, d)
@@ -1770,9 +1762,9 @@ def replace_config_vars(cmd, build):
     cmd = cmd.replace('$$NDK$$', env['ANDROID_NDK'])
     cmd = cmd.replace('$$MVN3$$', config['mvn3'])
     if build is not None:
-        cmd = cmd.replace('$$COMMIT$$', build['commit'])
-        cmd = cmd.replace('$$VERSION$$', build['version'])
-        cmd = cmd.replace('$$VERCODE$$', build['vercode'])
+        cmd = cmd.replace('$$COMMIT$$', build.commit)
+        cmd = cmd.replace('$$VERSION$$', build.version)
+        cmd = cmd.replace('$$VERCODE$$', build.vercode)
     return cmd
 
 
index 4ead1547442d3cd3e7fab8c6289207014ca03858..f729207a82f0b9eba5bdba0680c1fc4f2bba0ecc 100644 (file)
@@ -223,20 +223,15 @@ def main():
         sys.exit(1)
 
     # Create a build line...
-    build = {}
-    build['version'] = version or '?'
-    build['vercode'] = vercode or '?'
-    build['commit'] = '?'
-    build['disable'] = 'Generated by import.py - check/set version fields and commit id'
+    build = metadata.Build()
+    build.version = version or '?'
+    build.vercode = vercode or '?'
+    build.commit = '?'
+    build.disable = 'Generated by import.py - check/set version fields and commit id'
     if options.subdir:
-        build['subdir'] = options.subdir
+        build.subdir = options.subdir
     if os.path.exists(os.path.join(root_dir, 'jni')):
-        build['buildjni'] = ['yes']
-
-    for flag, value in metadata.flag_defaults.iteritems():
-        if flag in build:
-            continue
-        build[flag] = value
+        build.buildjni = ['yes']
 
     app.builds.append(build)
 
index fae800e8fa1666ba0c13b4a4159b6f7c9f718fe5..e3ca9ea3b812b4b7406f932b9a74b4d585d6dba1 100644 (file)
@@ -122,11 +122,11 @@ def get_lastbuild(builds):
     lowest_vercode = -1
     lastbuild = None
     for build in builds:
-        if not build['disable']:
-            vercode = int(build['vercode'])
+        if not build.disable:
+            vercode = int(build.vercode)
             if lowest_vercode == -1 or vercode < lowest_vercode:
                 lowest_vercode = vercode
-        if not lastbuild or int(build['vercode']) > int(lastbuild['vercode']):
+        if not lastbuild or int(build.vercode) > int(lastbuild.vercode):
             lastbuild = build
     return lastbuild
 
@@ -134,14 +134,14 @@ def get_lastbuild(builds):
 def check_ucm_tags(app):
     lastbuild = get_lastbuild(app.builds)
     if (lastbuild is not None
-            and lastbuild['commit']
+            and lastbuild.commit
             and app.UpdateCheckMode == 'RepoManifest'
-            and not lastbuild['commit'].startswith('unknown')
-            and lastbuild['vercode'] == app.CurrentVersionCode
-            and not lastbuild['forcevercode']
-            and any(s in lastbuild['commit'] for s in '.,_-/')):
+            and not lastbuild.commit.startswith('unknown')
+            and lastbuild.vercode == app.CurrentVersionCode
+            and not lastbuild.forcevercode
+            and any(s in lastbuild.commit for s in '.,_-/')):
         yield "Last used commit '%s' looks like a tag, but Update Check Mode is '%s'" % (
-            lastbuild['commit'], app.UpdateCheckMode)
+            lastbuild.commit, app.UpdateCheckMode)
 
 
 def check_char_limits(app):
@@ -285,12 +285,12 @@ def check_bulleted_lists(app):
 
 def check_builds(app):
     for build in app.builds:
-        if build['disable']:
+        if build.disable:
             continue
         for s in ['master', 'origin', 'HEAD', 'default', 'trunk']:
-            if build['commit'] and build['commit'].startswith(s):
-                yield "Branch '%s' used as commit in build '%s'" % (s, build['version'])
-            for srclib in build['srclibs']:
+            if build.commit and build.commit.startswith(s):
+                yield "Branch '%s' used as commit in build '%s'" % (s, build.version)
+            for srclib in build.srclibs:
                 ref = srclib.split('@')[1].split('/')[0]
                 if ref.startswith(s):
                     yield "Branch '%s' used as commit in srclib '%s'" % (s, srclib)
index c23f798d89834e502a066983b676db84a4e8cf7b..a06d190537e6a960fd96e38eff5ed349cc3750b0 100644 (file)
@@ -38,8 +38,6 @@ except ImportError:
 # use the C implementation when available
 import xml.etree.cElementTree as ElementTree
 
-from collections import OrderedDict
-
 import common
 
 srclibs = None
@@ -155,7 +153,16 @@ class App():
     # Constructs an old-fashioned dict with the human-readable field
     # names. Should only be used for tests.
     def field_dict(self):
-        return {App.attr_to_field(k): v for k, v in self.__dict__.iteritems()}
+        d = {}
+        for k, v in self.__dict__.iteritems():
+            if k == 'builds':
+                d['builds'] = []
+                for build in v:
+                    d['builds'].append(build.__dict__)
+            else:
+                k = App.attr_to_field(k)
+                d[k] = v
+        return d
 
     # Gets the value associated to a field name, e.g. 'Auto Name'
     def get_field(self, f):
@@ -184,44 +191,156 @@ class App():
     # Like dict.update(), but using human-readable field names
     def update_fields(self, d):
         for f, v in d.iteritems():
-            self.set_field(f, v)
+            if f == 'builds':
+                for b in v:
+                    build = Build()
+                    build.update_flags(b)
+                    self.builds.append(build)
+            else:
+                self.set_field(f, v)
+
+
+def metafieldtype(name):
+    if name in ['Description', 'Maintainer Notes']:
+        return 'multiline'
+    if name in ['Categories', 'AntiFeatures']:
+        return 'list'
+    if name == 'Build Version':
+        return 'build'
+    if name == 'Build':
+        return 'buildv2'
+    if name == 'Use Built':
+        return 'obsolete'
+    if name not in app_fields:
+        return 'unknown'
+    return 'string'
 
 
 # In the order in which they are laid out on files
-# Sorted by their action and their place in the build timeline
-# These variables can have varying datatypes. For example, anything with
-# flagtype(v) == 'list' is inited as False, then set as a list of strings.
-flag_defaults = OrderedDict([
-    ('disable', False),
-    ('commit', None),
-    ('subdir', None),
-    ('submodules', False),
-    ('init', ''),
-    ('patch', []),
-    ('gradle', False),
-    ('maven', False),
-    ('kivy', False),
-    ('output', None),
-    ('srclibs', []),
-    ('oldsdkloc', False),
-    ('encoding', None),
-    ('forceversion', False),
-    ('forcevercode', False),
-    ('rm', []),
-    ('extlibs', []),
-    ('prebuild', ''),
-    ('update', ['auto']),
-    ('target', None),
-    ('scanignore', []),
-    ('scandelete', []),
-    ('build', ''),
-    ('buildjni', []),
-    ('ndk', 'r10e'),  # defaults to latest
-    ('preassemble', []),
-    ('gradleprops', []),
-    ('antcommands', None),
-    ('novcheck', False),
-])
+build_flags_order = [
+    'disable',
+    'commit',
+    'subdir',
+    'submodules',
+    'init',
+    'patch',
+    'gradle',
+    'maven',
+    'kivy',
+    'output',
+    'srclibs',
+    'oldsdkloc',
+    'encoding',
+    'forceversion',
+    'forcevercode',
+    'rm',
+    'extlibs',
+    'prebuild',
+    'update',
+    'target',
+    'scanignore',
+    'scandelete',
+    'build',
+    'buildjni',
+    'ndk',
+    'preassemble',
+    'gradleprops',
+    'antcommands',
+    'novcheck',
+]
+
+
+build_flags = set(build_flags_order + ['version', 'vercode'])
+
+
+class Build():
+
+    def __init__(self):
+        self.disable = False
+        self.commit = None
+        self.subdir = None
+        self.submodules = False
+        self.init = ''
+        self.patch = []
+        self.gradle = False
+        self.maven = False
+        self.kivy = False
+        self.output = None
+        self.srclibs = []
+        self.oldsdkloc = False
+        self.encoding = None
+        self.forceversion = False
+        self.forcevercode = False
+        self.rm = []
+        self.extlibs = []
+        self.prebuild = ''
+        self.update = None
+        self.target = None
+        self.scanignore = []
+        self.scandelete = []
+        self.build = ''
+        self.buildjni = []
+        self.ndk = None
+        self.preassemble = []
+        self.gradleprops = []
+        self.antcommands = None
+        self.novcheck = False
+
+    def get_flag(self, f):
+        if f not in build_flags:
+            raise MetaDataException('Unrecognised build flag: ' + f)
+        return getattr(self, f)
+
+    def set_flag(self, f, v):
+        if f == 'versionName':
+            f = 'version'
+        if f == 'versionCode':
+            f = 'vercode'
+        if f not in build_flags:
+            raise MetaDataException('Unrecognised build flag: ' + f)
+        setattr(self, f, v)
+
+    def append_flag(self, f, v):
+        if f not in build_flags:
+            raise MetaDataException('Unrecognised build flag: ' + f)
+        if f not in self.__dict__:
+            self.__dict__[f] = [v]
+        else:
+            self.__dict__[f].append(v)
+
+    def method(self):
+        for f in ['maven', 'gradle', 'kivy']:
+            if self.get_flag(f):
+                return f
+        if build.output:
+            return 'raw'
+        return 'ant'
+
+    def ndk_path(self):
+        version = self.ndk
+        if not version:
+            version = 'r10e'  # falls back to latest
+        paths = common.config['ndk_paths']
+        if version not in paths:
+            return ''
+        return paths[version]
+
+    def update_flags(self, d):
+        for f, v in d.iteritems():
+            self.set_flag(f, v)
+
+
+def flagtype(name):
+    if name in ['extlibs', 'srclibs', 'patch', 'rm', 'buildjni', 'preassemble',
+                'update', 'scanignore', 'scandelete', 'gradle', 'antcommands',
+                'gradleprops']:
+        return 'list'
+    if name in ['init', 'prebuild', 'build']:
+        return 'script'
+    if name in ['submodules', 'oldsdkloc', 'forceversion', 'forcevercode',
+                'novcheck']:
+        return 'bool'
+    return 'string'
 
 
 # Designates a metadata field type and checks that it matches
@@ -230,18 +349,18 @@ flag_defaults = OrderedDict([
 # 'matching' - List of possible values or regex expression
 # 'sep'      - Separator to use if value may be a list
 # 'fields'   - Metadata fields (Field:Value) of this type
-# 'attrs'    - Build attributes (attr=value) of this type
+# 'flags'    - Build flags (flag=value) of this type
 #
 class FieldValidator():
 
-    def __init__(self, name, matching, sep, fields, attrs):
+    def __init__(self, name, matching, sep, fields, flags):
         self.name = name
         self.matching = matching
         if type(matching) is str:
             self.compiled = re.compile(matching)
         self.sep = sep
         self.fields = fields
-        self.attrs = attrs
+        self.flags = flags
 
     def _assert_regex(self, values, appid):
         for v in values:
@@ -257,13 +376,13 @@ class FieldValidator():
                                         % (v, self.name, appid) +
                                         "Possible values: %s" % (", ".join(self.matching)))
 
-    def check(self, value, appid):
-        if type(value) is not str or not value:
+    def check(self, v, appid):
+        if type(v) is not str or not v:
             return
         if self.sep is not None:
-            values = value.split(self.sep)
+            values = v.split(self.sep)
         else:
-            values = [value]
+            values = [v]
         if type(self.matching) is list:
             self._assert_list(values, appid)
         else:
@@ -337,11 +456,11 @@ valuetypes = {
 # Check an app's metadata information for integrity errors
 def check_metadata(app):
     for v in valuetypes:
-        for field in v.fields:
-            v.check(app.get_field(field), app.id)
+        for f in v.fields:
+            v.check(app.get_field(f), app.id)
         for build in app.builds:
-            for attr in v.attrs:
-                v.check(build[attr], app.id)
+            for f in v.flags:
+                v.check(build.get_flag(f), app.id)
 
 
 # Formatter for descriptions. Create an instance, and call parseline() with
@@ -554,14 +673,14 @@ def parse_srclib(metadatapath):
             continue
 
         try:
-            field, value = line.split(':', 1)
+            f, v = line.split(':', 1)
         except ValueError:
             raise MetaDataException("Invalid metadata in %s:%d" % (line, n))
 
-        if field == "Subdir":
-            thisinfo[field] = value.split(',')
+        if f == "Subdir":
+            thisinfo[f] = v.split(',')
         else:
-            thisinfo[field] = value
+            thisinfo[f] = v
 
     return thisinfo
 
@@ -640,54 +759,6 @@ def read_metadata(xref=True):
     return apps
 
 
-# Get the type expected for a given metadata field.
-def metafieldtype(name):
-    if name in ['Description', 'Maintainer Notes']:
-        return 'multiline'
-    if name in ['Categories', 'AntiFeatures']:
-        return 'list'
-    if name == 'Build Version':
-        return 'build'
-    if name == 'Build':
-        return 'buildv2'
-    if name == 'Use Built':
-        return 'obsolete'
-    if name not in app_fields:
-        return 'unknown'
-    return 'string'
-
-
-def flagtype(name):
-    if name in ['extlibs', 'srclibs', 'patch', 'rm', 'buildjni', 'preassemble',
-                'update', 'scanignore', 'scandelete', 'gradle', 'antcommands',
-                'gradleprops']:
-        return 'list'
-    if name in ['init', 'prebuild', 'build']:
-        return 'script'
-    if name in ['submodules', 'oldsdkloc', 'forceversion', 'forcevercode',
-                'novcheck']:
-        return 'bool'
-    return 'string'
-
-
-def fill_build_defaults(build):
-
-    def get_build_type():
-        for t in ['maven', 'gradle', 'kivy']:
-            if build[t]:
-                return t
-        if build['output']:
-            return 'raw'
-        return 'ant'
-
-    for flag, value in flag_defaults.iteritems():
-        if flag in build:
-            continue
-        build[flag] = value
-    build['type'] = get_build_type()
-    build['ndk_path'] = common.get_ndk_path(build['ndk'])
-
-
 def split_list_values(s):
     # Port legacy ';' separators
     l = [v.strip() for v in s.replace(';', ',').split(',')]
@@ -709,7 +780,7 @@ def get_default_app_info(metadatapath=None):
 
 
 def sorted_builds(builds):
-    return sorted(builds, key=lambda build: int(build['vercode']))
+    return sorted(builds, key=lambda build: int(build.vercode))
 
 
 def post_metadata_parse(app):
@@ -726,60 +797,30 @@ def post_metadata_parse(app):
             text = v.rstrip().lstrip()
             app.set_field(f, text.split('\n'))
 
-    supported_flags = (flag_defaults.keys()
-                       + ['vercode', 'version', 'versionCode', 'versionName',
-                          'type', 'ndk_path'])
     esc_newlines = re.compile('\\\\( |\\n)')
 
     for build in app.builds:
-        for k, v in build.items():
-            if k not in supported_flags:
-                raise MetaDataException("Unrecognised build flag: {0}={1}"
-                                        .format(k, v))
-
-            if k == 'versionCode':
-                build['vercode'] = str(v)
-                del build['versionCode']
-            elif k == 'versionName':
-                build['version'] = str(v)
-                del build['versionName']
-            elif type(v) in (float, int):
-                build[k] = str(v)
+        for k in build_flags:
+            v = build.get_flag(k)
+
+            if type(v) in (float, int):
+                build.set_flag(k, v)
             else:
                 keyflagtype = flagtype(k)
-                if keyflagtype == 'list':
-                    # these can be bools, strings or lists, but ultimately are lists
-                    if isinstance(v, basestring):
-                        build[k] = [v]
-                    elif isinstance(v, bool):
-                        build[k] = ['yes' if v else 'no']
-                    elif isinstance(v, list):
-                        build[k] = []
-                        for e in v:
-                            if isinstance(e, bool):
-                                build[k].append('yes' if v else 'no')
-                            else:
-                                build[k].append(e)
-
-                elif keyflagtype == 'script':
-                    build[k] = re.sub(esc_newlines, '', v).lstrip().rstrip()
+
+                if keyflagtype == 'script':
+                    build.set_flag(k, re.sub(esc_newlines, '', v).lstrip().rstrip())
                 elif keyflagtype == 'bool':
                     # TODO handle this using <xsd:element type="xsd:boolean> in a schema
-                    if isinstance(v, basestring):
-                        if v == 'true':
-                            build[k] = True
-                        else:
-                            build[k] = False
+                    if isinstance(v, basestring) and v == 'true':
+                        build.set_flag(k, 'true')
                 elif keyflagtype == 'string':
-                    if isinstance(v, bool):
-                        build[k] = 'yes' if v else 'no'
+                    if isinstance(v, bool) and v:
+                        build.set_flag(k, 'yes')
 
     if not app.Description:
         app.Description = ['No description available']
 
-    for build in app.builds:
-        fill_build_defaults(build)
-
     app.builds = sorted_builds(app.builds)
 
 
@@ -826,16 +867,16 @@ def _decode_list(data):
 def _decode_dict(data):
     '''convert items in a dict from unicode to basestring'''
     rv = {}
-    for key, value in data.iteritems():
-        if isinstance(key, unicode):
-            key = key.encode('utf-8')
-        if isinstance(value, unicode):
-            value = value.encode('utf-8')
-        elif isinstance(value, list):
-            value = _decode_list(value)
-        elif isinstance(value, dict):
-            value = _decode_dict(value)
-        rv[key] = value
+    for k, v in data.iteritems():
+        if isinstance(k, unicode):
+            k = k.encode('utf-8')
+        if isinstance(v, unicode):
+            v = v.encode('utf-8')
+        elif isinstance(v, list):
+            v = _decode_list(v)
+        elif isinstance(v, dict):
+            v = _decode_dict(v)
+        rv[k] = v
     return rv
 
 
@@ -897,16 +938,14 @@ def parse_xml_metadata(metadatapath):
         if child.tag == 'string':
             app.set_field(name, child.text)
         elif child.tag == 'string-array':
-            items = []
             for item in child:
-                items.append(item.text)
-            app.set_field(name, items)
+                app.append_field(name, item.text)
         elif child.tag == 'builds':
-            for build in child:
-                builddict = dict()
-                for key in build:
-                    builddict[key.tag] = key.text
-                app.builds.append(builddict)
+            for b in child:
+                build = Build()
+                for key in b:
+                    build.set_flag(key.tag, key.text)
+                app.builds.append(build)
 
     # TODO handle this using <xsd:element type="xsd:boolean> in a schema
     if not isinstance(app.RequiresRoot, bool):
@@ -935,7 +974,7 @@ def parse_txt_metadata(metadatapath):
 
     linedesc = None
 
-    def add_buildflag(p, thisbuild):
+    def add_buildflag(p, build):
         if not p.strip():
             raise MetaDataException("Empty build flag at {1}"
                                     .format(buildlines[0], linedesc))
@@ -943,13 +982,10 @@ def parse_txt_metadata(metadatapath):
         if len(bv) != 2:
             raise MetaDataException("Invalid build flag at {0} in {1}"
                                     .format(buildlines[0], linedesc))
-        pk, pv = bv
-        if pk in thisbuild:
-            raise MetaDataException("Duplicate definition on {0} in version {1} of {2}"
-                                    .format(pk, thisbuild['version'], linedesc))
 
+        pk, pv = bv
         pk = pk.lstrip()
-        if pk not in flag_defaults:
+        if pk not in build_flags:
             raise MetaDataException("Unrecognised build flag at {0} in {1}"
                                     .format(p, linedesc))
         t = flagtype(pk)
@@ -958,45 +994,45 @@ def parse_txt_metadata(metadatapath):
             if pk == 'gradle':
                 if len(pv) == 1 and pv[0] in ['main', 'yes']:
                     pv = ['yes']
-            thisbuild[pk] = pv
+            build.set_flag(pk, pv)
         elif t == 'string' or t == 'script':
-            thisbuild[pk] = pv
+            build.set_flag(pk, pv)
         elif t == 'bool':
-            value = pv == 'yes'
-            if value:
-                thisbuild[pk] = True
+            v = pv == 'yes'
+            if v:
+                build.set_flag(pk, True)
 
         else:
             raise MetaDataException("Unrecognised build flag type '%s' at %s in %s"
                                     % (t, p, linedesc))
 
     def parse_buildline(lines):
-        value = "".join(lines)
+        v = "".join(lines)
         parts = [p.replace("\\,", ",")
-                 for p in re.split(r"(?<!\\),", value)]
+                 for p in re.split(r"(?<!\\),", v)]
         if len(parts) < 3:
-            raise MetaDataException("Invalid build format: " + value + " in " + metafile.name)
-        thisbuild = {}
-        thisbuild['origlines'] = lines
-        thisbuild['version'] = parts[0]
-        thisbuild['vercode'] = parts[1]
+            raise MetaDataException("Invalid build format: " + v + " in " + metafile.name)
+        build = Build()
+        build.origlines = lines
+        build.version = parts[0]
+        build.vercode = parts[1]
         if parts[2].startswith('!'):
             # For backwards compatibility, handle old-style disabling,
             # including attempting to extract the commit from the message
-            thisbuild['disable'] = parts[2][1:]
+            build.disable = parts[2][1:]
             commit = 'unknown - see disabled'
             index = parts[2].rfind('at ')
             if index != -1:
                 commit = parts[2][index + 3:]
                 if commit.endswith(')'):
                     commit = commit[:-1]
-            thisbuild['commit'] = commit
+            build.commit = commit
         else:
-            thisbuild['commit'] = parts[2]
+            build.commit = parts[2]
         for p in parts[3:]:
-            add_buildflag(p, thisbuild)
+            add_buildflag(p, build)
 
-        return thisbuild
+        return build
 
     def add_comments(key):
         if not curcomments:
@@ -1010,7 +1046,7 @@ def parse_txt_metadata(metadatapath):
     mode = 0
     buildlines = []
     curcomments = []
-    curbuild = None
+    build = None
     vc_seen = {}
 
     c = 0
@@ -1020,13 +1056,12 @@ def parse_txt_metadata(metadatapath):
         line = line.rstrip('\r\n')
         if mode == 3:
             if not any(line.startswith(s) for s in (' ', '\t')):
-                commit = curbuild['commit'] if 'commit' in curbuild else None
-                if not commit and 'disable' not in curbuild:
+                if not build.commit and not build.disable:
                     raise MetaDataException("No commit specified for {0} in {1}"
-                                            .format(curbuild['version'], linedesc))
+                                            .format(build.version, linedesc))
 
-                app.builds.append(curbuild)
-                add_comments('build:' + curbuild['vercode'])
+                app.builds.append(build)
+                add_comments('build:' + build.vercode)
                 mode = 0
             else:
                 if line.endswith('\\'):
@@ -1034,7 +1069,7 @@ def parse_txt_metadata(metadatapath):
                 else:
                     buildlines.append(line.lstrip())
                     bl = ''.join(buildlines)
-                    add_buildflag(bl, curbuild)
+                    add_buildflag(bl, build)
                     buildlines = []
 
         if mode == 0:
@@ -1044,74 +1079,74 @@ def parse_txt_metadata(metadatapath):
                 curcomments.append(line[1:].strip())
                 continue
             try:
-                field, value = line.split(':', 1)
+                f, v = line.split(':', 1)
             except ValueError:
                 raise MetaDataException("Invalid metadata in " + linedesc)
-            if field != field.strip() or value != value.strip():
+            if f != f.strip() or v != v.strip():
                 raise MetaDataException("Extra spacing found in " + linedesc)
 
             # Translate obsolete fields...
-            if field == 'Market Version':
-                field = 'Current Version'
-            if field == 'Market Version Code':
-                field = 'Current Version Code'
+            if f == 'Market Version':
+                f = 'Current Version'
+            if f == 'Market Version Code':
+                f = 'Current Version Code'
 
-            fieldtype = metafieldtype(field)
+            fieldtype = metafieldtype(f)
             if fieldtype not in ['build', 'buildv2']:
-                add_comments(field)
+                add_comments(f)
             if fieldtype == 'multiline':
                 mode = 1
-                if value:
-                    raise MetaDataException("Unexpected text on same line as " + field + " in " + linedesc)
+                if v:
+                    raise MetaDataException("Unexpected text on same line as " + f + " in " + linedesc)
             elif fieldtype == 'string':
-                app.set_field(field, value)
+                app.set_field(f, v)
             elif fieldtype == 'list':
-                app.set_field(field, split_list_values(value))
+                app.set_field(f, split_list_values(v))
             elif fieldtype == 'build':
-                if value.endswith("\\"):
+                if v.endswith("\\"):
                     mode = 2
-                    buildlines = [value[:-1]]
+                    buildlines = [v[:-1]]
                 else:
-                    curbuild = parse_buildline([value])
-                    app.builds.append(curbuild)
-                    add_comments('build:' + app.builds[-1]['vercode'])
+                    build = parse_buildline([v])
+                    app.builds.append(build)
+                    add_comments('build:' + app.builds[-1].vercode)
             elif fieldtype == 'buildv2':
-                curbuild = {}
-                vv = value.split(',')
+                build = Build()
+                vv = v.split(',')
                 if len(vv) != 2:
                     raise MetaDataException('Build should have comma-separated version and vercode, not "{0}", in {1}'
-                                            .format(value, linedesc))
-                curbuild['version'] = vv[0]
-                curbuild['vercode'] = vv[1]
-                if curbuild['vercode'] in vc_seen:
+                                            .format(v, linedesc))
+                build.version = vv[0]
+                build.vercode = vv[1]
+                if build.vercode in vc_seen:
                     raise MetaDataException('Duplicate build recipe found for vercode %s in %s' % (
-                                            curbuild['vercode'], linedesc))
-                vc_seen[curbuild['vercode']] = True
+                                            build.vercode, linedesc))
+                vc_seen[build.vercode] = True
                 buildlines = []
                 mode = 3
             elif fieldtype == 'obsolete':
                 pass        # Just throw it away!
             else:
-                raise MetaDataException("Unrecognised field type for " + field + " in " + linedesc)
+                raise MetaDataException("Unrecognised field type for " + f + " in " + linedesc)
         elif mode == 1:     # Multiline field
             if line == '.':
                 mode = 0
             else:
-                app.append_field(field, line)
+                app.append_field(f, line)
         elif mode == 2:     # Line continuation mode in Build Version
             if line.endswith("\\"):
                 buildlines.append(line[:-1])
             else:
                 buildlines.append(line)
-                curbuild = parse_buildline(buildlines)
-                app.builds.append(curbuild)
-                add_comments('build:' + app.builds[-1]['vercode'])
+                build = parse_buildline(buildlines)
+                app.builds.append(build)
+                add_comments('build:' + app.builds[-1].vercode)
                 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)
+        raise MetaDataException(f + " not terminated in " + metafile.name)
     elif mode == 2:
         raise MetaDataException("Unterminated continuation in " + metafile.name)
     elif mode == 3:
@@ -1130,18 +1165,18 @@ def write_plaintext_metadata(mf, app, w_comment, w_field, w_build):
         for line in app.comments[key]:
             w_comment(line)
 
-    def w_field_always(field, value=None):
-        if value is None:
-            value = app.get_field(field)
-        w_comments(field)
-        w_field(field, value)
+    def w_field_always(f, v=None):
+        if v is None:
+            v = app.get_field(f)
+        w_comments(f)
+        w_field(f, v)
 
-    def w_field_nonempty(field, value=None):
-        if value is None:
-            value = app.get_field(field)
-        w_comments(field)
-        if value:
-            w_field(field, value)
+    def w_field_nonempty(f, v=None):
+        if v is None:
+            v = app.get_field(f)
+        w_comments(f)
+        if v:
+            w_field(f, v)
 
     w_field_nonempty('Disabled')
     if app.AntiFeatures:
@@ -1175,10 +1210,10 @@ def write_plaintext_metadata(mf, app, w_comment, w_field, w_build):
 
     for build in sorted_builds(app.builds):
 
-        if build['version'] == "Ignore":
+        if build.version == "Ignore":
             continue
 
-        w_comments('build:' + build['vercode'])
+        w_comments('build:' + build.vercode)
         w_build(build)
         mf.write('\n')
 
@@ -1211,39 +1246,37 @@ def write_txt_metadata(mf, app):
     def w_comment(line):
         mf.write("# %s\n" % line)
 
-    def w_field(field, value):
-        t = metafieldtype(field)
+    def w_field(f, v):
+        t = metafieldtype(f)
         if t == 'list':
-            value = ','.join(value)
+            v = ','.join(v)
         elif t == 'multiline':
-            if type(value) == list:
-                value = '\n' + '\n'.join(value) + '\n.'
+            if type(v) == list:
+                v = '\n' + '\n'.join(v) + '\n.'
             else:
-                value = '\n' + value + '\n.'
-        mf.write("%s:%s\n" % (field, value))
+                v = '\n' + v + '\n.'
+        mf.write("%s:%s\n" % (f, v))
 
     def w_build(build):
-        mf.write("Build:%s,%s\n" % (build['version'], build['vercode']))
+        mf.write("Build:%s,%s\n" % (build.version, build.vercode))
 
-        for key in flag_defaults:
-            value = build[key]
-            if not value:
-                continue
-            if value == flag_defaults[key]:
+        for f in build_flags_order:
+            v = build.get_flag(f)
+            if not v:
                 continue
 
-            t = flagtype(key)
-            v = '    %s=' % key
+            t = flagtype(f)
+            out = '    %s=' % f
             if t == 'string':
-                v += value
+                out += v
             elif t == 'bool':
-                v += 'yes'
+                out += 'yes'
             elif t == 'script':
-                v += '&& \\\n        '.join([s.lstrip() for s in value.split('&& ')])
+                out += '&& \\\n        '.join([s.lstrip() for s in v.split('&& ')])
             elif t == 'list':
-                v += ','.join(value) if type(value) == list else value
+                out += ','.join(v) if type(v) == list else v
 
-            mf.write(v)
+            mf.write(out)
             mf.write('\n')
 
     write_plaintext_metadata(mf, app, w_comment, w_field, w_build)
@@ -1254,26 +1287,26 @@ def write_yaml_metadata(mf, app):
     def w_comment(line):
         mf.write("# %s\n" % line)
 
-    def escape(value):
-        if not value:
+    def escape(v):
+        if not v:
             return ''
-        if any(c in value for c in [': ', '%', '@', '*']):
-            return "'" + value.replace("'", "''") + "'"
-        return value
+        if any(c in v for c in [': ', '%', '@', '*']):
+            return "'" + v.replace("'", "''") + "'"
+        return v
 
-    def w_field(field, value, prefix='', t=None):
+    def w_field(f, v, prefix='', t=None):
         if t is None:
-            t = metafieldtype(field)
+            t = metafieldtype(f)
         v = ''
         if t == 'list':
             v = '\n'
-            for e in value:
+            for e in v:
                 v += prefix + ' - ' + escape(e) + '\n'
         elif t == 'multiline':
             v = ' |\n'
-            lines = value
-            if type(value) == str:
-                lines = value.splitlines()
+            lines = v
+            if type(v) == str:
+                lines = v.splitlines()
             for l in lines:
                 if l:
                     v += prefix + '  ' + l + '\n'
@@ -1282,16 +1315,16 @@ def write_yaml_metadata(mf, app):
         elif t == 'bool':
             v = ' yes\n'
         elif t == 'script':
-            cmds = [s + '&& \\' for s in value.split('&& ')]
+            cmds = [s + '&& \\' for s in v.split('&& ')]
             if len(cmds) > 0:
                 cmds[-1] = cmds[-1][:-len('&& \\')]
-            w_field(field, cmds, prefix, 'multiline')
+            w_field(f, cmds, prefix, 'multiline')
             return
         else:
-            v = ' ' + escape(value) + '\n'
+            v = ' ' + escape(v) + '\n'
 
         mf.write(prefix)
-        mf.write(field)
+        mf.write(f)
         mf.write(":")
         mf.write(v)
 
@@ -1304,16 +1337,14 @@ def write_yaml_metadata(mf, app):
             mf.write("builds:\n")
             first_build = False
 
-        w_field('versionName', build['version'], '  - ', 'string')
-        w_field('versionCode', build['vercode'], '    ', 'strsng')
-        for key in flag_defaults:
-            value = build[key]
-            if not value:
-                continue
-            if value == flag_defaults[key]:
+        w_field('versionName', build.version, '  - ', 'string')
+        w_field('versionCode', build.vercode, '    ', 'strsng')
+        for f in build_flags_order:
+            v = build.get_flag(f)
+            if not v:
                 continue
 
-            w_field(key, value, '    ', flagtype(key))
+            w_field(f, v, '    ', flagtype(f))
 
     write_plaintext_metadata(mf, app, w_comment, w_field, w_build)
 
index d6dc56b2b048e340c9e22a0837c98dd16729ac1a..4ac6276ddaa3abe3d858d00244e7a3036239e809 100644 (file)
@@ -31,18 +31,18 @@ config = None
 options = None
 
 
-def get_gradle_compile_commands(thisbuild):
+def get_gradle_compile_commands(build):
     compileCommands = ['compile', 'releaseCompile']
-    if thisbuild['gradle'] and thisbuild['gradle'] != ['yes']:
-        compileCommands += [flavor + 'Compile' for flavor in thisbuild['gradle']]
-        compileCommands += [flavor + 'ReleaseCompile' for flavor in thisbuild['gradle']]
+    if build.gradle and build.gradle != ['yes']:
+        compileCommands += [flavor + 'Compile' for flavor in build.gradle]
+        compileCommands += [flavor + 'ReleaseCompile' for flavor in build.gradle]
 
     return [re.compile(r'\s*' + c, re.IGNORECASE) for c in compileCommands]
 
 
 # Scan the source code in the given directory (and all subdirectories)
 # and return the number of fatal problems encountered
-def scan_source(build_dir, root_dir, thisbuild):
+def scan_source(build_dir, root_dir, build):
 
     count = 0
 
@@ -85,8 +85,8 @@ def scan_source(build_dir, root_dir, thisbuild):
         ]
     ]
 
-    scanignore = common.getpaths_map(build_dir, thisbuild['scanignore'])
-    scandelete = common.getpaths_map(build_dir, thisbuild['scandelete'])
+    scanignore = common.getpaths_map(build_dir, build.scanignore)
+    scandelete = common.getpaths_map(build_dir, build.scandelete)
 
     scanignore_worked = set()
     scandelete_worked = set()
@@ -153,7 +153,7 @@ def scan_source(build_dir, root_dir, thisbuild):
                 return True
         return False
 
-    gradle_compile_commands = get_gradle_compile_commands(thisbuild)
+    gradle_compile_commands = get_gradle_compile_commands(build)
 
     def is_used_by_gradle(line):
         return any(command.match(line) for command in gradle_compile_commands)
@@ -240,7 +240,7 @@ def scan_source(build_dir, root_dir, thisbuild):
     # indicate a problem (if it's not a problem, explicitly use
     # buildjni=no to bypass this check)
     if (os.path.exists(os.path.join(root_dir, 'jni')) and
-            not thisbuild['buildjni']):
+            not build.buildjni):
         logging.error('Found jni directory, but buildjni is not enabled. Set it to \'no\' to ignore.')
         count += 1
 
@@ -293,24 +293,24 @@ def main():
             # Set up vcs interface and make sure we have the latest code...
             vcs = common.getvcs(app.RepoType, app.Repo, build_dir)
 
-            for thisbuild in app.builds:
+            for build in app.builds:
 
-                if thisbuild['disable']:
+                if build.disable:
                     logging.info("...skipping version %s - %s" % (
-                        thisbuild['version'], thisbuild.get('disable', thisbuild['commit'][1:])))
+                        build.version, build.get('disable', build.commit[1:])))
                 else:
-                    logging.info("...scanning version " + thisbuild['version'])
+                    logging.info("...scanning version " + build.version)
 
                     # Prepare the source code...
-                    root_dir, _ = common.prepare_source(vcs, app, thisbuild,
+                    root_dir, _ = common.prepare_source(vcs, app, build,
                                                         build_dir, srclib_dir,
                                                         extlib_dir, False)
 
                     # Do the scan...
-                    count = scan_source(build_dir, root_dir, thisbuild)
+                    count = scan_source(build_dir, root_dir, build)
                     if count > 0:
                         logging.warn('Scanner found %d problems in %s (%s)' % (
-                            count, appid, thisbuild['vercode']))
+                            count, appid, build.vercode))
                         probcount += count
 
         except BuildException as be:
index 63083d205d82074735c951220cd72a609a5238e9..3a01a7c21cb2db097621d45eca9fd828053c4fbf 100644 (file)
@@ -144,26 +144,26 @@ def update_wiki(apps, sortedids, apks):
                     gotcurrentver = True
                 apklist.append(apk)
         # Include ones we can't build, as a special case...
-        for thisbuild in app.builds:
-            if thisbuild['disable']:
-                if thisbuild['vercode'] == app.CurrentVersionCode:
+        for build in app.builds:
+            if build.disable:
+                if build.vercode == app.CurrentVersionCode:
                     cantupdate = True
                 # TODO: Nasty: vercode is a string in the build, and an int elsewhere
-                apklist.append({'versioncode': int(thisbuild['vercode']),
-                                'version': thisbuild['version'],
-                                'buildproblem': "The build for this version was manually disabled. Reason: {0}".format(thisbuild['disable']),
+                apklist.append({'versioncode': int(build.vercode),
+                                'version': build.version,
+                                'buildproblem': "The build for this version was manually disabled. Reason: {0}".format(build.disable),
                                 })
             else:
                 builtit = False
                 for apk in apklist:
-                    if apk['versioncode'] == int(thisbuild['vercode']):
+                    if apk['versioncode'] == int(build.vercode):
                         builtit = True
                         break
                 if not builtit:
                     buildfails = True
-                    apklist.append({'versioncode': int(thisbuild['vercode']),
-                                    'version': thisbuild['version'],
-                                    'buildproblem': "The build for this version appears to have failed. Check the [[{0}/lastbuild_{1}|build log]].".format(appid, thisbuild['vercode']),
+                    apklist.append({'versioncode': int(build.vercode),
+                                    'version': build.version,
+                                    'buildproblem': "The build for this version appears to have failed. Check the [[{0}/lastbuild_{1}|build log]].".format(appid, build.vercode),
                                     })
         if app.CurrentVersionCode == '0':
             cantupdate = True
@@ -291,12 +291,12 @@ def delete_disabled_builds(apps, apkcache, repodirs):
     """
     for appid, app in apps.iteritems():
         for build in app.builds:
-            if not build['disable']:
+            if not build.disable:
                 continue
-            apkfilename = appid + '_' + str(build['vercode']) + '.apk'
+            apkfilename = appid + '_' + str(build.vercode) + '.apk'
             iconfilename = "%s.%s.png" % (
                 appid,
-                build['vercode'])
+                build.vercode)
             for repodir in repodirs:
                 files = [
                     os.path.join(repodir, apkfilename),
@@ -453,8 +453,8 @@ def scan_apks(apps, apkcache, repodir, knownapks):
 
         usecache = False
         if apkfilename in apkcache:
-            thisinfo = apkcache[apkfilename]
-            if thisinfo['sha256'] == shasum:
+            apk = apkcache[apkfilename]
+            if apk['sha256'] == shasum:
                 logging.debug("Reading " + apkfilename + " from cache")
                 usecache = True
             else:
@@ -462,17 +462,17 @@ def scan_apks(apps, apkcache, repodir, knownapks):
 
         if not usecache:
             logging.debug("Processing " + apkfilename)
-            thisinfo = {}
-            thisinfo['apkname'] = apkfilename
-            thisinfo['sha256'] = shasum
+            apk = {}
+            apk['apkname'] = apkfilename
+            apk['sha256'] = shasum
             srcfilename = apkfilename[:-4] + "_src.tar.gz"
             if os.path.exists(os.path.join(repodir, srcfilename)):
-                thisinfo['srcname'] = srcfilename
-            thisinfo['size'] = os.path.getsize(apkfile)
-            thisinfo['permissions'] = set()
-            thisinfo['features'] = set()
-            thisinfo['icons_src'] = {}
-            thisinfo['icons'] = {}
+                apk['srcname'] = srcfilename
+            apk['size'] = os.path.getsize(apkfile)
+            apk['permissions'] = set()
+            apk['features'] = set()
+            apk['icons_src'] = {}
+            apk['icons'] = {}
             p = SdkToolsPopen(['aapt', 'dump', 'badging', apkfile], output=False)
             if p.returncode != 0:
                 if options.delete_unknown:
@@ -487,51 +487,51 @@ def scan_apks(apps, apkcache, repodir, knownapks):
             for line in p.output.splitlines():
                 if line.startswith("package:"):
                     try:
-                        thisinfo['id'] = re.match(name_pat, line).group(1)
-                        thisinfo['versioncode'] = int(re.match(vercode_pat, line).group(1))
-                        thisinfo['version'] = re.match(vername_pat, line).group(1)
+                        apk['id'] = re.match(name_pat, line).group(1)
+                        apk['versioncode'] = int(re.match(vercode_pat, line).group(1))
+                        apk['version'] = re.match(vername_pat, line).group(1)
                     except Exception, e:
                         logging.error("Package matching failed: " + str(e))
                         logging.info("Line was: " + line)
                         sys.exit(1)
                 elif line.startswith("application:"):
-                    thisinfo['name'] = re.match(label_pat, line).group(1)
+                    apk['name'] = re.match(label_pat, line).group(1)
                     # Keep path to non-dpi icon in case we need it
                     match = re.match(icon_pat_nodpi, line)
                     if match:
-                        thisinfo['icons_src']['-1'] = match.group(1)
+                        apk['icons_src']['-1'] = match.group(1)
                 elif line.startswith("launchable-activity:"):
                     # Only use launchable-activity as fallback to application
-                    if not thisinfo['name']:
-                        thisinfo['name'] = re.match(label_pat, line).group(1)
-                    if '-1' not in thisinfo['icons_src']:
+                    if not apk['name']:
+                        apk['name'] = re.match(label_pat, line).group(1)
+                    if '-1' not in apk['icons_src']:
                         match = re.match(icon_pat_nodpi, line)
                         if match:
-                            thisinfo['icons_src']['-1'] = match.group(1)
+                            apk['icons_src']['-1'] = match.group(1)
                 elif line.startswith("application-icon-"):
                     match = re.match(icon_pat, line)
                     if match:
                         density = match.group(1)
                         path = match.group(2)
-                        thisinfo['icons_src'][density] = path
+                        apk['icons_src'][density] = path
                 elif line.startswith("sdkVersion:"):
                     m = re.match(sdkversion_pat, line)
                     if m is None:
                         logging.error(line.replace('sdkVersion:', '')
                                       + ' is not a valid minSdkVersion!')
                     else:
-                        thisinfo['sdkversion'] = m.group(1)
+                        apk['sdkversion'] = m.group(1)
                 elif line.startswith("maxSdkVersion:"):
-                    thisinfo['maxsdkversion'] = re.match(sdkversion_pat, line).group(1)
+                    apk['maxsdkversion'] = re.match(sdkversion_pat, line).group(1)
                 elif line.startswith("native-code:"):
-                    thisinfo['nativecode'] = []
+                    apk['nativecode'] = []
                     for arch in line[13:].split(' '):
-                        thisinfo['nativecode'].append(arch[1:-1])
+                        apk['nativecode'].append(arch[1:-1])
                 elif line.startswith("uses-permission:"):
                     perm = re.match(string_pat, line).group(1)
                     if perm.startswith("android.permission."):
                         perm = perm[19:]
-                    thisinfo['permissions'].add(perm)
+                    apk['permissions'].add(perm)
                 elif line.startswith("uses-feature:"):
                     perm = re.match(string_pat, line).group(1)
                     # Filter out this, it's only added with the latest SDK tools and
@@ -540,11 +540,11 @@ def scan_apks(apps, apkcache, repodir, knownapks):
                             and perm != "android.hardware.screen.landscape":
                         if perm.startswith("android.feature."):
                             perm = perm[16:]
-                        thisinfo['features'].add(perm)
+                        apk['features'].add(perm)
 
-            if 'sdkversion' not in thisinfo:
+            if 'sdkversion' not in apk:
                 logging.warn("No SDK version information found in {0}".format(apkfile))
-                thisinfo['sdkversion'] = 0
+                apk['sdkversion'] = 0
 
             # Check for debuggable apks...
             if common.isApkDebuggable(apkfile, config):
@@ -552,20 +552,20 @@ def scan_apks(apps, apkcache, repodir, knownapks):
 
             # Get the signature (or md5 of, to be precise)...
             logging.debug('Getting signature of {0}'.format(apkfile))
-            thisinfo['sig'] = getsig(os.path.join(os.getcwd(), apkfile))
-            if not thisinfo['sig']:
+            apk['sig'] = getsig(os.path.join(os.getcwd(), apkfile))
+            if not apk['sig']:
                 logging.critical("Failed to get apk signature")
                 sys.exit(1)
 
-            apk = zipfile.ZipFile(apkfile, 'r')
+            apkzip = zipfile.ZipFile(apkfile, 'r')
 
             # if an APK has files newer than the system time, suggest updating
             # the system clock.  This is useful for offline systems, used for
             # signing, which do not have another source of clock sync info. It
             # has to be more than 24 hours newer because ZIP/APK files do not
             # store timezone info
-            info = apk.getinfo('AndroidManifest.xml')
-            dt_obj = datetime(*info.date_time)
+            manifest = apkzip.getinfo('AndroidManifest.xml')
+            dt_obj = datetime(*manifest.date_time)
             checkdt = dt_obj - timedelta(1)
             if datetime.today() < checkdt:
                 logging.warn('System clock is older than manifest in: '
@@ -573,44 +573,44 @@ def scan_apks(apps, apkcache, repodir, knownapks):
                              + 'sudo date -s "' + str(dt_obj) + '"')
 
             iconfilename = "%s.%s.png" % (
-                thisinfo['id'],
-                thisinfo['versioncode'])
+                apk['id'],
+                apk['versioncode'])
 
             # Extract the icon file...
             empty_densities = []
             for density in screen_densities:
-                if density not in thisinfo['icons_src']:
+                if density not in apk['icons_src']:
                     empty_densities.append(density)
                     continue
-                iconsrc = thisinfo['icons_src'][density]
+                iconsrc = apk['icons_src'][density]
                 icon_dir = get_icon_dir(repodir, density)
                 icondest = os.path.join(icon_dir, iconfilename)
 
                 try:
                     with open(icondest, 'wb') as f:
-                        f.write(apk.read(iconsrc))
-                    thisinfo['icons'][density] = iconfilename
+                        f.write(apkzip.read(iconsrc))
+                    apk['icons'][density] = iconfilename
 
                 except:
                     logging.warn("Error retrieving icon file")
-                    del thisinfo['icons'][density]
-                    del thisinfo['icons_src'][density]
+                    del apk['icons'][density]
+                    del apk['icons_src'][density]
                     empty_densities.append(density)
 
-            if '-1' in thisinfo['icons_src']:
-                iconsrc = thisinfo['icons_src']['-1']
+            if '-1' in apk['icons_src']:
+                iconsrc = apk['icons_src']['-1']
                 iconpath = os.path.join(
                     get_icon_dir(repodir, '0'), iconfilename)
                 with open(iconpath, 'wb') as f:
-                    f.write(apk.read(iconsrc))
+                    f.write(apkzip.read(iconsrc))
                 try:
                     im = Image.open(iconpath)
                     dpi = px_to_dpi(im.size[0])
                     for density in screen_densities:
-                        if density in thisinfo['icons']:
+                        if density in apk['icons']:
                             break
                         if density == screen_densities[-1] or dpi >= int(density):
-                            thisinfo['icons'][density] = iconfilename
+                            apk['icons'][density] = iconfilename
                             shutil.move(iconpath,
                                         os.path.join(get_icon_dir(repodir, density), iconfilename))
                             empty_densities.remove(density)
@@ -618,10 +618,10 @@ def scan_apks(apps, apkcache, repodir, knownapks):
                 except Exception, e:
                     logging.warn("Failed reading {0} - {1}".format(iconpath, e))
 
-            if thisinfo['icons']:
-                thisinfo['icon'] = iconfilename
+            if apk['icons']:
+                apk['icon'] = iconfilename
 
-            apk.close()
+            apkzip.close()
 
             # First try resizing down to not lose quality
             last_density = None
@@ -675,19 +675,19 @@ def scan_apks(apps, apkcache, repodir, knownapks):
             # Copy from icons-mdpi to icons since mdpi is the baseline density
             baseline = os.path.join(get_icon_dir(repodir, '160'), iconfilename)
             if os.path.isfile(baseline):
-                thisinfo['icons']['0'] = iconfilename
+                apk['icons']['0'] = iconfilename
                 shutil.copyfile(baseline,
                                 os.path.join(get_icon_dir(repodir, '0'), iconfilename))
 
             # Record in known apks, getting the added date at the same time..
-            added = knownapks.recordapk(thisinfo['apkname'], thisinfo['id'])
+            added = knownapks.recordapk(apk['apkname'], apk['id'])
             if added:
-                thisinfo['added'] = added
+                apk['added'] = added
 
-            apkcache[apkfilename] = thisinfo
+            apkcache[apkfilename] = apk
             cachechanged = True
 
-        apks.append(thisinfo)
+        apks.append(apk)
 
     return apks, cachechanged
 
index d2aec276894902dab651210fdb08d7a3226828e0..d34569995509c1024dbfd269a9e3178dbc3dd50b 100755 (executable)
@@ -114,20 +114,19 @@ class CommonTest(unittest.TestCase):
 
         config = dict()
         config['sdk_path'] = os.getenv('ANDROID_HOME')
+        config['ndk_paths'] = {'r10d': os.getenv('ANDROID_NDK_HOME')}
         config['build_tools'] = 'FAKE_BUILD_TOOLS_VERSION'
         fdroidserver.common.config = config
         app = fdroidserver.metadata.App()
         app.id = 'org.fdroid.froid'
-        build = dict(fdroidserver.metadata.flag_defaults)
-        build['commit'] = 'master'
-        build['forceversion'] = True
-        build['forcevercode'] = True
-        build['gradle'] = ['yes']
-        build['ndk_path'] = os.getenv('ANDROID_NDK_HOME')
-        build['target'] = 'android-' + str(testint)
-        build['type'] = 'gradle'
-        build['version'] = teststr
-        build['vercode'] = testint
+        build = fdroidserver.metadata.Build()
+        build.commit = 'master'
+        build.forceversion = True
+        build.forcevercode = True
+        build.gradle = ['yes']
+        build.target = 'android-' + str(testint)
+        build.version = teststr
+        build.vercode = testint
 
         class FakeVcs():
             # no need to change to the correct commit here
@@ -147,8 +146,8 @@ class CommonTest(unittest.TestCase):
         with open(os.path.join(testdir, 'AndroidManifest.xml')) as f:
             filedata = f.read()
         self.assertIsNone(re.search('android:debuggable', filedata))
-        self.assertIsNotNone(re.search('android:versionName="%s"' % build['version'], filedata))
-        self.assertIsNotNone(re.search('android:versionCode="%s"' % build['vercode'], filedata))
+        self.assertIsNotNone(re.search('android:versionName="%s"' % build.version, filedata))
+        self.assertIsNotNone(re.search('android:versionCode="%s"' % build.vercode, filedata))
 
 
 if __name__ == "__main__":
index 1dc77cc49ff4c778aa6b1f163e97709cb0b091ef..a0ba77413f6a1968210d1c027907b85dba92ae19 100755 (executable)
@@ -46,8 +46,9 @@ class MetadataTest(unittest.TestCase):
                 frompickle = pickle.load(f)
             frommeta = app.field_dict()
             self.assertEquals(frommeta, frompickle)
+            # Uncomment to overwrite
             # with open(savepath, 'wb') as f:
-            #     pickle.dump(app, f)
+            #     pickle.dump(frommeta, f)
 
 
 if __name__ == "__main__":
index 5bc7edd3165474409c2f433c5c0f932a9a9c7a8d..8629e83b5276da9ea38161daf4438b507b683b64 100644 (file)
@@ -10,87 +10,87 @@ S'Tracking'
 p5
 aS'NonFreeNet'
 p6
-asS'Web Site'
+asS'Litecoin'
 p7
-S'http://osmand.net'
+NsS'comments'
 p8
-sS'Auto Update Mode'
-p9
-S'None'
-p10
+(dp9
 sS'Provides'
-p11
+p10
 NsS'Issue Tracker'
-p12
+p11
 S'https://github.com/osmandapp/Osmand/issues'
-p13
+p12
 sS'Donate'
-p14
+p13
 S'https://code.google.com/p/osmand/#Please_support_the_project'
+p14
+sS'Archive Policy'
 p15
-sS'id'
+NsS'Description'
 p16
-S'net.osmand.plus'
-p17
-sS'Description'
-p18
-(lp19
+(lp17
 S"Osmand~'s features can be extended by enabling the plugins via the settings,"
-p20
+p18
 aS'which include online maps from many sources, tracking, OpenStreetMap (OSM) editing and'
-p21
+p19
 aS'accessibility enhancements.'
-p22
+p20
 aS''
-p23
+p21
 aS'Map data of both vector and raster types can be stored on the phone memory'
-p24
+p22
 aS'card for offline usage, and navigation by default uses offline methods. Map'
-p25
+p23
 aS'data packages for many territories can be downloaded from within the app and'
-p26
+p24
 aS'there is a desktop program available on the website as well for creating your'
-p27
+p25
 aS'own.'
-p28
-ag23
+p26
+ag21
 aS'Anti-Features: Tracking - It will send your device and application specs to an'
-p29
+p27
 aS'Analytics server upon downloading the list of maps you can download.'
-p30
-ag23
+p28
+ag21
 aS'[https://osmandapp.github.io/changes.html Changelog]'
-p31
+p29
 asS'Requires Root'
-p32
+p30
 I00
-sS'comments'
+sS'lastupdated'
+p31
+NsS'id'
+p32
+S'net.osmand.plus'
 p33
-(dp34
-sS'Repo Type'
+sS'Repo'
+p34
+S'https://github.com/mvdan/OsmAnd-submodules'
 p35
-S'git'
+sS'No Source Since'
 p36
-sS'Repo'
+g21
+sS'Repo Type'
 p37
-S'https://github.com/mvdan/OsmAnd-submodules'
+S'git'
 p38
-sS'No Source Since'
-p39
-g23
 sS'Auto Name'
-p40
-g23
+p39
+g21
 sS'Categories'
-p41
-(lp42
-S'Navigation'
+p40
+(lp41
+S'None'
+p42
+aS'Navigation'
 p43
 asS'Source Code'
 p44
 S'https://github.com/osmandapp/Osmand'
 p45
-sS'Litecoin'
+sS'added'
 p46
 NsS'Update Check Ignore'
 p47
@@ -104,7 +104,7 @@ S'GPLv3'
 p51
 sS'Changelog'
 p52
-g23
+g21
 sS'Update Check Mode'
 p53
 S'None'
@@ -113,394 +113,344 @@ sS'Summary'
 p55
 S'Offline/online maps and navigation'
 p56
-sS'Maintainer Notes'
+sS'Current Version'
 p57
-(lp58
-S'No UCMs apply because git never contains actual releases, only pre-releses.'
+S'1.9.5'
+p58
+sS'Maintainer Notes'
 p59
-ag23
-aS'The build instructions have been moved to a script in the root of the repo,'
-p60
-aS"'build'. This way it can be updated along with the submodules."
+(lp60
+S'No UCMs apply because git never contains actual releases, only pre-releses.'
 p61
-asS'Current Version Code'
+ag21
+aS'The build instructions have been moved to a script in the root of the repo,'
 p62
-S'197'
+aS"'build'. This way it can be updated along with the submodules."
 p63
-sS'Binaries'
+asS'Current Version Code'
 p64
-NsS'Archive Policy'
+S'197'
 p65
-NsS'builds'
+sS'Binaries'
 p66
-(lp67
-(dp68
+NsS'builds'
+p67
+(lp68
+(dp69
 S'submodules'
-p69
-I01
-sS'vercode'
 p70
-S'182'
+S'true'
 p71
-sS'forceversion'
+sS'kivy'
 p72
 I00
-sS'oldsdkloc'
+sS'forceversion'
 p73
 I00
-sS'gradleprops'
+sS'oldsdkloc'
 p74
-(lp75
-sS'scanignore'
+I00
+sS'antcommands'
+p75
+NsS'scanignore'
 p76
 (lp77
-sS'patch'
+sS'gradle'
 p78
-(lp79
+I00
 sS'srclibs'
-p80
-(lp81
-sS'output'
-p82
-S'bin/OsmAnd-release-unsigned.apk'
-p83
+p79
+(lp80
 sS'encoding'
-p84
+p81
 NsS'extlibs'
-p85
-(lp86
+p82
+(lp83
 sS'init'
-p87
-g23
+p84
+g21
 sS'version'
-p88
+p85
 S'1.8.2'
+p86
+sS'subdir'
+p87
+S'android/OsmAnd'
+p88
+sS'rm'
 p89
+(lp90
 sS'build'
-p90
-S'./old-ndk-build.sh && ant -Dsdk.dir="$ANDROID_SDK" -Dndk.dir="$ANDROID_NDK" -DBLACKBERRY_BUILD=false -DBUILD_SUFFIX= -DAPK_NUMBER_VERSION=182 "-DFEATURES=+play_market +gps_status -parking_plugin -blackberry -amazon -route_nav" -DCLEAN_CPP=false -DPACKAGE_TO_BUILT=net.osmand.plus -DAPK_VERSION=1.8.2 -Dnet.osmand.plus= -Dbuild.version=1.8.2 -Dbuild.version.code=182 -Dnativeoff=false "-DversionFeatures=+play_market +gps_status -parking_plugin -blackberry -amazon -route_nav" clean release'
 p91
-sS'rm'
+S'./old-ndk-build.sh && ant -Dsdk.dir="$ANDROID_SDK" -Dndk.dir="$ANDROID_NDK" -DBLACKBERRY_BUILD=false -DBUILD_SUFFIX= -DAPK_NUMBER_VERSION=182 "-DFEATURES=+play_market +gps_status -parking_plugin -blackberry -amazon -route_nav" -DCLEAN_CPP=false -DPACKAGE_TO_BUILT=net.osmand.plus -DAPK_VERSION=1.8.2 -Dnet.osmand.plus= -Dbuild.version=1.8.2 -Dbuild.version.code=182 -Dnativeoff=false "-DversionFeatures=+play_market +gps_status -parking_plugin -blackberry -amazon -route_nav" clean release'
 p92
-(lp93
-sS'kivy'
+sS'vercode'
+p93
+S'182'
 p94
-I00
-sS'subdir'
-p95
-S'android/OsmAnd'
-p96
 sS'forcevercode'
-p97
+p95
 I00
 sS'preassemble'
-p98
-(lp99
+p96
+(lp97
 sS'update'
-p100
-(lp101
-S'auto'
-p102
-asS'maven'
-p103
+p98
+NsS'maven'
+p99
 I00
 sS'disable'
-p104
+p100
 I00
-sS'ndk_path'
-p105
-g23
+sS'commit'
+p101
+S'76ada6c8a08afe69acb755503373ac36328ef665'
+p102
 sS'scandelete'
-p106
-(lp107
+p103
+(lp104
 sS'buildjni'
-p108
-(lp109
+p105
 S'no'
-p110
-asS'ndk'
+p106
+sS'ndk'
+p107
+NsS'target'
+p108
+NsS'gradleprops'
+p109
+(lp110
+sS'patch'
 p111
-S'r10e'
-p112
-sS'target'
+(lp112
+sS'prebuild'
 p113
-NsS'type'
+S'sed -i \'s/"OsmAnd+"/"OsmAnd~"/g\' build.xml'
 p114
-S'raw'
+sS'novcheck'
 p115
-sS'antcommands'
+I00
+sS'output'
 p116
-NsS'gradle'
+S'bin/OsmAnd-release-unsigned.apk'
 p117
-I00
-sS'prebuild'
-p118
-S'sed -i \'s/"OsmAnd+"/"OsmAnd~"/g\' build.xml'
-p119
-sS'novcheck'
-p120
-I00
-sS'commit'
-p121
-S'76ada6c8a08afe69acb755503373ac36328ef665'
-p122
-sa(dp123
-S'submodules'
-p124
-I01
-sg70
-S'183'
-p125
+sa(dp118
+g70
+g71
 sg72
 I00
 sg73
 I00
 sg74
-(lp126
-sg76
-g77
+I00
+sg75
+Nsg76
+(lp119
 sg78
-g79
-sg80
-g81
-sS'output'
-p127
-S'bin/OsmAnd-release-unsigned.apk'
-p128
+I00
+sg79
+(lp120
+sg81
+Nsg82
+(lp121
 sg84
-Nsg85
-g86
-sg87
-g23
-sg88
+g21
+sg85
 S'1.8.3'
-p129
-sS'subdir'
-p130
+p122
+sg87
 S'android/OsmAnd'
-p131
-sg92
-g93
-sg94
-I00
-sS'build'
-p132
+p123
+sg89
+(lp124
+sg91
 S'../../build'
-p133
-sg97
+p125
+sg93
+S'183'
+p126
+sg95
 I00
+sg96
+(lp127
 sg98
-g99
-sg100
-g101
-sg103
+Nsg99
 I00
-sg104
+sg100
 I00
+sg101
+S'1.8.3'
+p128
+sg103
+(lp129
 sg105
-g23
-sg106
-g107
-sS'buildjni'
-p134
-(lp135
 S'no'
-p136
-asg111
-g112
+p130
+sg107
+Nsg108
+Nsg109
+(lp131
+sg111
+(lp132
 sg113
-Nsg114
-g115
-sg116
-Nsg117
+g21
+sg115
 I00
-sS'prebuild'
-p137
-g23
-sg120
-I00
-sS'commit'
-p138
-S'1.8.3'
-p139
-sa(dp140
-S'submodules'
-p141
-I01
-sg70
-S'196'
-p142
+sg116
+S'bin/OsmAnd-release-unsigned.apk'
+p133
+sa(dp134
+g70
+g71
 sg72
 I00
 sg73
 I00
 sg74
-(lp143
-sg76
-g77
+I00
+sg75
+Nsg76
+(lp135
 sg78
-g79
-sg80
-g81
-sS'output'
-p144
-S'bin/OsmAnd-release-unsigned.apk'
-p145
+I00
+sg79
+(lp136
+sg81
+Nsg82
+(lp137
 sg84
-Nsg85
-g86
-sg87
-g23
-sg88
+g21
+sg85
 S'1.9.4'
-p146
-sS'subdir'
-p147
+p138
+sg87
 S'android/OsmAnd'
-p148
-sg92
-g93
-sg94
-I00
-sS'build'
-p149
+p139
+sg89
+(lp140
+sg91
 S'../../build'
-p150
-sg97
+p141
+sg93
+S'196'
+p142
+sg95
 I00
+sg96
+(lp143
 sg98
-g99
-sg100
-g101
-sg103
+Nsg99
 I00
-sg104
+sg100
 I00
+sg101
+S'1.9.4'
+p144
+sg103
+(lp145
 sg105
-g23
-sg106
-g107
-sS'buildjni'
-p151
-(lp152
 S'no'
-p153
-asS'ndk'
-p154
+p146
+sg107
 S'r10d'
-p155
+p147
+sg108
+Nsg109
+(lp148
+sg111
+(lp149
 sg113
-Nsg114
-g115
-sg116
-Nsg117
+g21
+sg115
 I00
-sg137
-g23
-sg120
-I00
-sS'commit'
-p156
-S'1.9.4'
-p157
-sa(dp158
-S'submodules'
-p159
-I01
-sg70
-S'197'
-p160
+sg116
+S'bin/OsmAnd-release-unsigned.apk'
+p150
+sa(dp151
+g70
+g71
 sg72
 I00
 sg73
 I00
 sg74
-(lp161
-sg76
-g77
+I00
+sg75
+Nsg76
+(lp152
 sg78
-g79
-sg80
-g81
-sS'output'
-p162
-S'bin/OsmAnd-release-unsigned.apk'
-p163
+I00
+sg79
+(lp153
+sg81
+Nsg82
+(lp154
 sg84
-Nsg85
-g86
-sg87
-g23
-sg88
+g21
+sg85
 S'1.9.5'
-p164
-sS'subdir'
-p165
+p155
+sg87
 S'android/OsmAnd'
-p166
-sg92
-g93
-sg94
-I00
-sS'build'
-p167
+p156
+sg89
+(lp157
+sg91
 S'../../build'
-p168
-sg97
+p158
+sg93
+S'197'
+p159
+sg95
 I00
+sg96
+(lp160
 sg98
-g99
-sg100
-g101
-sg103
+Nsg99
 I00
-sg104
+sg100
 I00
+sg101
+S'1.9.5'
+p161
+sg103
+(lp162
 sg105
-g23
-sg106
-g107
-sS'buildjni'
-p169
-(lp170
 S'no'
-p171
-asS'ndk'
-p172
+p163
+sg107
 S'r10d'
-p173
+p164
+sg108
+Nsg109
+(lp165
+sg111
+(lp166
 sg113
-Nsg114
-g115
-sg116
-Nsg117
-I00
-sg137
-g23
-sg120
+g21
+sg115
 I00
-sS'commit'
-p174
-S'1.9.5'
-p175
+sg116
+S'bin/OsmAnd-release-unsigned.apk'
+p167
 sasS'FlattrID'
-p176
+p168
 NsS'metadatapath'
-p177
+p169
 S'metadata/net.osmand.plus.xml'
-p178
+p170
 sS'Disabled'
-p179
-NsS'added'
-p180
-NsS'lastupdated'
-p181
-NsS'Update Check Name'
-p182
+p171
+NsS'Web Site'
+p172
+S'http://osmand.net'
+p173
+sS'Update Check Name'
+p174
 NsS'Vercode Operation'
-p183
-NsS'Current Version'
-p184
-S'1.9.5'
-p185
-s.
+p175
+NsS'Auto Update Mode'
+p176
+S'None'
+p177
+s.
\ No newline at end of file
index 7ae60cd3c7b39b2a7f786df654f0bf7acb3f283b..9321ab5b121bc3587e7e3945997b5be2a4364ed9 100644 (file)
@@ -6,2292 +6,1959 @@ p2
 NsS'AntiFeatures'
 p3
 (lp4
-sS'Web Site'
+sS'Litecoin'
 p5
-S'http://sufficientlysecure.org/index.php/adaway'
+NsS'comments'
 p6
-sS'Auto Update Mode'
-p7
-S'Version v%v'
+(dp7
+S'build:42'
 p8
-sS'Provides'
-p9
-S'org.sufficientlysecure.adaway'
+(lp9
+S'#RootCommands srclib needs changing on fdroidserver'
 p10
-sS'Issue Tracker'
+asS'build:40'
 p11
-S'https://github.com/dschuermann/ad-away/issues'
-p12
-sS'Donate'
+(lp12
+S'#RootCommands srclib needs changing on fdroidserver'
 p13
-S'http://sufficientlysecure.org/index.php/adaway'
+assS'Provides'
 p14
-sS'Repo Type'
+S'org.sufficientlysecure.adaway'
 p15
-S'git'
+sS'Issue Tracker'
 p16
-sS'Description'
+S'https://github.com/dschuermann/ad-away/issues'
 p17
-(lp18
-S'An ad blocker that uses the hosts file. The hosts file'
+sS'Donate'
+p18
+S'http://sufficientlysecure.org/index.php/adaway'
 p19
-aS'contains a list of mappings between hostnames and IP addresses. When'
+sS'Archive Policy'
 p20
-aS'an app requests an ad, that request is directed to 127.0.0.1 which does'
+NsS'Description'
 p21
-aS'nothing. There are options to run a web server'
-p22
-aS'to respond to blocked hostnames and to direct requests to the IP'
+(lp22
+S'An ad blocker that uses the hosts file. The hosts file'
 p23
-aS'address of your choosing. You can download hosts files from the'
+aS'contains a list of mappings between hostnames and IP addresses. When'
 p24
-aS'app but it is possible to use your own and to add certain sites'
+aS'an app requests an ad, that request is directed to 127.0.0.1 which does'
 p25
-aS'to the white- and black-lists.'
+aS'nothing. There are options to run a web server'
 p26
-aS''
+aS'to respond to blocked hostnames and to direct requests to the IP'
 p27
-aS'[https://github.com/dschuermann/ad-away/raw/HEAD/CHANGELOG Changelog]'
+aS'address of your choosing. You can download hosts files from the'
 p28
-ag27
-aS'Requires root: Yes. The hosts files is located in /system which is normally'
+aS'app but it is possible to use your own and to add certain sites'
 p29
-aS'read-only.'
+aS'to the white- and black-lists.'
 p30
-asS'Requires Root'
+aS''
 p31
-I01
-sS'comments'
+aS'[https://github.com/dschuermann/ad-away/raw/HEAD/CHANGELOG Changelog]'
 p32
-(dp33
-S'build:42'
+ag31
+aS'Requires root: Yes. The hosts files is located in /system which is normally'
+p33
+aS'read-only.'
 p34
-(lp35
-S'#RootCommands srclib needs changing on fdroidserver'
+asS'Requires Root'
+p35
+I01
+sS'lastupdated'
 p36
-asS'build:40'
+NsS'id'
 p37
-(lp38
-S'#RootCommands srclib needs changing on fdroidserver'
+S'org.adaway'
+p38
+sS'Repo'
 p39
-assS'id'
+S'https://github.com/dschuermann/ad-away.git'
 p40
-S'org.adaway'
+sS'No Source Since'
 p41
-sS'Repo'
+g31
+sS'Repo Type'
 p42
-S'https://github.com/dschuermann/ad-away.git'
+S'git'
 p43
-sS'No Source Since'
-p44
-g27
 sS'Auto Name'
-p45
+p44
 S'AdAway'
-p46
+p45
 sS'Categories'
-p47
-(lp48
+p46
+(lp47
 S'System'
-p49
+p48
 aS'Security'
-p50
+p49
 asS'Source Code'
-p51
+p50
 S'https://github.com/dschuermann/ad-away'
+p51
+sS'added'
 p52
-sS'Litecoin'
-p53
 NsS'Update Check Ignore'
-p54
+p53
 NsS'Name'
-p55
+p54
 NsS'License'
-p56
+p55
 S'GPLv3'
-p57
+p56
 sS'Changelog'
-p58
-g27
+p57
+g31
 sS'Update Check Mode'
-p59
+p58
 S'Tags'
-p60
+p59
 sS'Summary'
-p61
+p60
 S'Block advertisements'
-p62
+p61
 sS'Current Version'
-p63
+p62
 S'3.0'
-p64
+p63
 sS'Maintainer Notes'
-p65
-(lp66
+p64
+(lp65
 sS'Current Version Code'
-p67
+p66
 S'52'
-p68
+p67
 sS'Binaries'
-p69
-NsS'Archive Policy'
-p70
+p68
 NsS'builds'
-p71
-(lp72
-(dp73
+p69
+(lp70
+(dp71
 S'submodules'
-p74
+p72
+I00
+sS'kivy'
+p73
 I00
-sS'vercode'
-p75
-S'13'
-p76
 sS'forceversion'
-p77
+p74
 I00
 sS'oldsdkloc'
-p78
+p75
 I00
 sS'antcommands'
-p79
-NsS'kivy'
-p80
-I00
+p76
+NsS'scanignore'
+p77
+(lp78
 sS'gradle'
-p81
+p79
 I00
-sS'scanignore'
-p82
-(lp83
 sS'srclibs'
-p84
-(lp85
+p80
+(lp81
 sS'encoding'
-p86
+p82
 NsS'extlibs'
-p87
-(lp88
+p83
+(lp84
 sS'init'
-p89
-g27
+p85
+g31
 sS'version'
-p90
+p86
 S'1.12'
-p91
+p87
 sS'subdir'
-p92
+p88
 S'org_adaway/'
-p93
+p89
 sS'rm'
+p90
+(lp91
+sS'build'
+p92
+g31
+sS'vercode'
+p93
+S'13'
 p94
-(lp95
-sS'type'
+sS'forcevercode'
+p95
+I00
+sS'preassemble'
 p96
-S'ant'
-p97
-sS'build'
+(lp97
+sS'update'
 p98
-g27
-sS'ndk_path'
+NsS'maven'
 p99
-g27
-sS'forcevercode'
+I00
+sS'disable'
 p100
 I00
-sS'preassemble'
+sS'commit'
 p101
-(lp102
-sS'update'
+S'ea5378a94ee0dc1d99d2cec95fae7e6d81afb2b9'
+p102
+sS'scandelete'
 p103
 (lp104
-S'auto'
+sS'buildjni'
 p105
-asS'maven'
+I01
+sS'ndk'
 p106
-I00
-sS'disable'
+NsS'target'
 p107
-I00
-sS'commit'
+NsS'gradleprops'
 p108
-S'ea5378a94ee0dc1d99d2cec95fae7e6d81afb2b9'
-p109
-sS'scandelete'
+(lp109
+sS'patch'
 p110
 (lp111
-sS'buildjni'
-p112
-(lp113
-S'yes'
-p114
-asS'ndk'
-p115
-S'r10e'
-p116
-sS'target'
-p117
-NsS'gradleprops'
-p118
-(lp119
-sS'patch'
-p120
-(lp121
 sS'prebuild'
-p122
-g27
+p112
+g31
 sS'novcheck'
-p123
+p113
 I00
 sS'output'
-p124
-Nsa(dp125
-g74
+p114
+Nsa(dp115
+g72
 I00
-sg75
-S'16'
-p126
-sg77
+sg73
 I00
-sg78
+sg74
 I00
-sg79
-Nsg80
+sg75
 I00
-sg81
+sg76
+Nsg77
+(lp116
+sg79
 I00
+sg80
+(lp117
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp118
+sg85
+g31
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.15'
-p127
-sS'subdir'
-p128
+p119
+sg88
 S'org_adaway/'
-p129
-sg94
-g95
+p120
+sg90
+(lp121
+sg92
+g31
+sg93
+S'16'
+p122
+sg95
+I00
 sg96
-g97
+(lp123
 sg98
-g27
-sg99
-g27
+Nsg99
+I00
 sg100
 I00
 sg101
-g102
+S'4128e59da2eac5c2904c7c7568d298ca51e79540'
+p124
 sg103
-g104
+(lp125
+sg105
+I01
 sg106
-I00
-sg107
-I00
-sS'commit'
-p130
-S'4128e59da2eac5c2904c7c7568d298ca51e79540'
-p131
+Nsg107
+Nsg108
+(lp126
 sg110
-g111
-sS'buildjni'
-p132
-(lp133
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sS'patch'
-p134
-(lp135
+(lp127
 S'defprop.patch'
-p136
-asg122
-g27
-sg123
+p128
+asg112
+g31
+sg113
 I00
-sg124
-Nsa(dp137
-g74
+sg114
+Nsa(dp129
+g72
 I00
-sg75
-S'19'
-p138
-sg77
+sg73
 I00
-sg78
+sg74
 I00
-sg79
-Nsg80
+sg75
 I00
-sg81
+sg76
+Nsg77
+(lp130
+sg79
 I00
+sg80
+(lp131
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp132
+sg85
+g31
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.18'
-p139
-sS'subdir'
-p140
+p133
+sg88
 S'org_adaway/'
-p141
-sg94
-g95
+p134
+sg90
+(lp135
+sg92
+g31
+sg93
+S'19'
+p136
+sg95
+I00
 sg96
-g97
+(lp137
 sg98
-g27
-sg99
-g27
+Nsg99
+I00
 sg100
 I00
 sg101
-g102
+S'0b9985398b9eef7baf6aadd0dbb12002bc199d2e'
+p138
 sg103
-g104
+(lp139
+sg105
+I01
 sg106
-I00
-sg107
-I00
-sS'commit'
-p142
-S'0b9985398b9eef7baf6aadd0dbb12002bc199d2e'
-p143
+Nsg107
+Nsg108
+(lp140
 sg110
-g111
-sS'buildjni'
-p144
-(lp145
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sS'patch'
-p146
-(lp147
+(lp141
 S'defprop.patch'
-p148
-asg122
-g27
-sg123
+p142
+asg112
+g31
+sg113
 I00
-sg124
-Nsa(dp149
-g74
+sg114
+Nsa(dp143
+g72
 I00
-sg75
-S'20'
-p150
-sg77
+sg73
 I00
-sg78
+sg74
 I00
-sg79
-Nsg80
+sg75
 I00
-sg81
+sg76
+Nsg77
+(lp144
+sg79
 I00
+sg80
+(lp145
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp146
+sg85
+g31
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.19'
-p151
-sS'subdir'
-p152
+p147
+sg88
 S'org_adaway/'
-p153
-sg94
-g95
+p148
+sg90
+(lp149
+sg92
+g31
+sg93
+S'20'
+p150
+sg95
+I00
 sg96
-g97
+(lp151
 sg98
-g27
-sg99
-g27
+Nsg99
+I00
 sg100
 I00
 sg101
-g102
+S'ab27f4dab5f3ea5e228cfb4a6b0e1fbf53695f22'
+p152
 sg103
-g104
+(lp153
+sg105
+I01
 sg106
-I00
-sg107
-I00
-sS'commit'
-p154
-S'ab27f4dab5f3ea5e228cfb4a6b0e1fbf53695f22'
-p155
+Nsg107
+Nsg108
+(lp154
 sg110
-g111
-sS'buildjni'
-p156
-(lp157
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sS'patch'
-p158
-(lp159
+(lp155
 S'defprop.patch'
-p160
-asg122
-g27
-sg123
+p156
+asg112
+g31
+sg113
 I00
-sg124
-Nsa(dp161
-g74
+sg114
+Nsa(dp157
+g72
 I00
-sg75
-S'21'
-p162
-sg77
+sg73
 I00
-sg78
+sg74
 I00
-sg79
-Nsg80
+sg75
 I00
-sg81
+sg76
+Nsg77
+(lp158
+sg79
 I00
+sg80
+(lp159
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp160
+sg85
+g31
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.20'
-p163
-sS'subdir'
-p164
+p161
+sg88
 S'org_adaway/'
-p165
-sg94
-g95
+p162
+sg90
+(lp163
+sg92
+g31
+sg93
+S'21'
+p164
+sg95
+I00
 sg96
-g97
+(lp165
 sg98
-g27
-sg99
-g27
+Nsg99
+I00
 sg100
 I00
 sg101
-g102
+S'695e3801e4081026c8f7213a2345fc451d5eb89c'
+p166
 sg103
-g104
+(lp167
+sg105
+I01
 sg106
-I00
-sg107
-I00
-sS'commit'
-p166
-S'695e3801e4081026c8f7213a2345fc451d5eb89c'
-p167
+Nsg107
+Nsg108
+(lp168
 sg110
-g111
-sS'buildjni'
-p168
 (lp169
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sS'patch'
-p170
-(lp171
 S'defprop.patch'
-p172
-asg122
-g27
-sg123
+p170
+asg112
+g31
+sg113
 I00
-sg124
-Nsa(dp173
-g74
+sg114
+Nsa(dp171
+g72
 I00
-sg75
-S'22'
-p174
-sg77
+sg73
 I00
-sg78
+sg74
 I00
-sg79
-Nsg80
+sg75
 I00
-sg81
+sg76
+Nsg77
+(lp172
+sg79
 I00
+sg80
+(lp173
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp174
+sg85
+g31
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.21'
 p175
-sS'subdir'
-p176
+sg88
 S'org_adaway/'
-p177
-sg94
-g95
+p176
+sg90
+(lp177
+sg92
+g31
+sg93
+S'22'
+p178
+sg95
+I00
 sg96
-g97
+(lp179
 sg98
-g27
-sg99
-g27
+Nsg99
+I00
 sg100
 I00
 sg101
-g102
-sg103
-g104
-sg106
-I00
-sg107
-I00
-sS'commit'
-p178
 S'65138c11cc8b6affd28b68e125fbc1dff0886a4e'
-p179
-sg110
-g111
-sS'buildjni'
 p180
+sg103
 (lp181
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sS'patch'
-p182
+sg105
+I01
+sg106
+Nsg107
+Nsg108
+(lp182
+sg110
 (lp183
 S'defprop.patch'
 p184
-asg122
-g27
-sg123
+asg112
+g31
+sg113
 I00
-sg124
+sg114
 Nsa(dp185
-g74
+g72
 I00
-sg75
-S'24'
-p186
-sg77
+sg73
 I00
-sg78
+sg74
 I00
-sg79
-Nsg80
+sg75
 I00
-sg81
+sg76
+Nsg77
+(lp186
+sg79
 I00
+sg80
+(lp187
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp188
+sg85
+g31
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.23'
-p187
-sS'subdir'
-p188
-Nsg94
-g95
+p189
+sg88
+Nsg90
+(lp190
+sg92
+g31
+sg93
+S'24'
+p191
+sg95
+I00
 sg96
-g97
+(lp192
 sg98
-g27
-sg99
-g27
-sg100
+Nsg99
 I00
+sg100
+S'no source in repo'
+p193
 sg101
-g102
+S'unknown - see disabled'
+p194
 sg103
-g104
+(lp195
+sg105
+(lp196
 sg106
-I00
-sS'disable'
-p189
-S'no source in repo'
-p190
-sS'commit'
-p191
-S'unknown - see disabled'
-p192
+Nsg107
+Nsg108
+(lp197
 sg110
-g111
-sS'buildjni'
-p193
-(lp194
-sg115
-g116
-sg117
-Nsg118
-g119
-sg120
-g121
-sg122
-g27
-sg123
-I00
-sg124
-Nsa(dp195
-g74
+(lp198
+sg112
+g31
+sg113
 I00
-sg75
-S'25'
-p196
-sg77
+sg114
+Nsa(dp199
+g72
 I00
-sg78
+sg73
 I00
-sg79
-Nsg80
+sg74
+I00
+sg75
 I00
-sg81
+sg76
+Nsg77
+(lp200
+sg79
 I00
+sg80
+(lp201
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp202
+sg85
+g31
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.24'
-p197
-sS'subdir'
-p198
+p203
+sg88
 S'org_adaway/'
-p199
-sg94
-g95
+p204
+sg90
+(lp205
+sg92
+g31
+sg93
+S'25'
+p206
+sg95
+I00
 sg96
-g97
+(lp207
 sg98
-g27
-sg99
-g27
+Nsg99
+I00
 sg100
 I00
 sg101
-g102
+S'f811e53e1e1d2ee047b18715fd7d2072b90ae76b'
+p208
 sg103
-g104
+(lp209
+sg105
+I01
 sg106
-I00
-sg107
-I00
-sS'commit'
-p200
-S'f811e53e1e1d2ee047b18715fd7d2072b90ae76b'
-p201
+Nsg107
+Nsg108
+(lp210
 sg110
-g111
-sS'buildjni'
-p202
-(lp203
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sg120
-g121
-sS'prebuild'
-p204
+(lp211
+sg112
 S'android update project -p ../com_actionbarsherlock'
-p205
-sg123
+p212
+sg113
 I00
-sg124
-Nsa(dp206
-g74
+sg114
+Nsa(dp213
+g72
 I00
-sg75
-S'26'
-p207
-sg77
+sg73
 I00
-sg78
+sg74
 I00
-sg79
-Nsg80
+sg75
 I00
-sg81
+sg76
+Nsg77
+(lp214
+sg79
 I00
+sg80
+(lp215
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp216
+sg85
+g31
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.25'
-p208
-sS'subdir'
-p209
+p217
+sg88
 S'org_adaway/'
-p210
-sg94
-g95
+p218
+sg90
+(lp219
+sg92
+g31
+sg93
+S'26'
+p220
+sg95
+I00
 sg96
-g97
+(lp221
 sg98
-g27
-sg99
-g27
+Nsg99
+I00
 sg100
 I00
 sg101
-g102
+S'ff97932761cdee68638dc2550751a64b2cbe18e7'
+p222
 sg103
-g104
+(lp223
+sg105
+I01
 sg106
-I00
-sg107
-I00
-sS'commit'
-p211
-S'ff97932761cdee68638dc2550751a64b2cbe18e7'
-p212
+Nsg107
+Nsg108
+(lp224
 sg110
-g111
-sS'buildjni'
-p213
-(lp214
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sg120
-g121
-sS'prebuild'
-p215
+(lp225
+sg112
 S'android update project -p ../com_actionbarsherlock'
-p216
-sg123
+p226
+sg113
 I00
-sg124
-Nsa(dp217
-g74
+sg114
+Nsa(dp227
+g72
 I00
-sg75
-S'27'
-p218
-sg77
+sg73
 I00
-sg78
+sg74
 I00
-sg79
-Nsg80
+sg75
 I00
-sg81
+sg76
+Nsg77
+(lp228
+sg79
 I00
+sg80
+(lp229
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp230
+sg85
+g31
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.26'
-p219
-sS'subdir'
-p220
+p231
+sg88
 S'org_adaway/'
-p221
-sg94
-g95
+p232
+sg90
+(lp233
+sg92
+g31
+sg93
+S'27'
+p234
+sg95
+I00
 sg96
-g97
+(lp235
 sg98
-g27
-sg99
-g27
+Nsg99
+I00
 sg100
 I00
 sg101
-g102
+S'33d4d80998f30bafc88c04c80cbae00b03916f99'
+p236
 sg103
-g104
+(lp237
+sg105
+I01
 sg106
-I00
-sg107
-I00
-sS'commit'
-p222
-S'33d4d80998f30bafc88c04c80cbae00b03916f99'
-p223
+Nsg107
+Nsg108
+(lp238
 sg110
-g111
-sS'buildjni'
-p224
-(lp225
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sg120
-g121
-sS'prebuild'
-p226
+(lp239
+sg112
 S'android update project -p ../com_actionbarsherlock'
-p227
-sg123
+p240
+sg113
 I00
-sg124
-Nsa(dp228
-g74
+sg114
+Nsa(dp241
+g72
 I00
-sg75
-S'28'
-p229
-sg77
+sg73
 I00
-sg78
+sg74
 I00
-sg79
-Nsg80
+sg75
 I00
-sg81
+sg76
+Nsg77
+(lp242
+sg79
 I00
+sg80
+(lp243
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp244
+sg85
+g31
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.27'
-p230
-sS'subdir'
-p231
+p245
+sg88
 S'org_adaway/'
-p232
-sg94
-g95
+p246
+sg90
+(lp247
+sg92
+g31
+sg93
+S'28'
+p248
+sg95
+I00
 sg96
-g97
+(lp249
 sg98
-g27
-sg99
-g27
+Nsg99
+I00
 sg100
 I00
 sg101
-g102
+S'743d25a7e287505461f33f4b8e57e4cf988fffea'
+p250
 sg103
-g104
+(lp251
+sg105
+I01
 sg106
-I00
-sg107
-I00
-sS'commit'
-p233
-S'743d25a7e287505461f33f4b8e57e4cf988fffea'
-p234
+Nsg107
+Nsg108
+(lp252
 sg110
-g111
-sS'buildjni'
-p235
-(lp236
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sg120
-g121
-sS'prebuild'
-p237
+(lp253
+sg112
 S'android update project -p ../com_actionbarsherlock'
-p238
-sg123
+p254
+sg113
 I00
-sg124
-Nsa(dp239
-g74
+sg114
+Nsa(dp255
+g72
 I00
-sg75
-S'30'
-p240
-sg77
+sg73
 I00
-sg78
+sg74
 I00
-sg79
-Nsg80
+sg75
 I00
-sg81
+sg76
+Nsg77
+(lp256
+sg79
 I00
+sg80
+(lp257
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp258
+sg85
+g31
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.29'
-p241
-sS'subdir'
-p242
+p259
+sg88
 S'org_adaway/'
-p243
-sg94
-g95
+p260
+sg90
+(lp261
+sg92
+g31
+sg93
+S'30'
+p262
+sg95
+I00
 sg96
-g97
+(lp263
 sg98
-g27
-sg99
-g27
+Nsg99
+I00
 sg100
 I00
 sg101
-g102
+S'eaa07f4'
+p264
 sg103
-g104
+(lp265
+sg105
+I01
 sg106
-I00
-sg107
-I00
-sS'commit'
-p244
-S'eaa07f4'
-p245
+Nsg107
+Nsg108
+(lp266
 sg110
-g111
-sS'buildjni'
-p246
-(lp247
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sg120
-g121
-sS'prebuild'
-p248
+(lp267
+sg112
 S'android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/*'
-p249
-sg123
+p268
+sg113
 I00
-sg124
-Nsa(dp250
-g74
+sg114
+Nsa(dp269
+g72
 I00
-sg75
-S'33'
-p251
-sg77
+sg73
 I00
-sg78
+sg74
 I00
-sg79
-Nsg80
+sg75
 I00
-sg81
+sg76
+Nsg77
+(lp270
+sg79
 I00
+sg80
+(lp271
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp272
+sg85
+g31
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.32'
-p252
-sS'subdir'
-p253
+p273
+sg88
 S'org_adaway/'
-p254
-sg94
-g95
+p274
+sg90
+(lp275
+sg92
+g31
+sg93
+S'33'
+p276
+sg95
+I00
 sg96
-g97
+(lp277
 sg98
-g27
-sg99
-g27
+Nsg99
+I00
 sg100
 I00
 sg101
-g102
+S'71ced3f'
+p278
 sg103
-g104
-sg106
-I00
-sg107
+(lp279
+sg105
 I00
-sS'commit'
-p255
-S'71ced3f'
-p256
+sg106
+Nsg107
+Nsg108
+(lp280
 sg110
-g111
-sS'buildjni'
-p257
-(lp258
-S'no'
-p259
-asg115
-g116
-sg117
-Nsg118
-g119
-sg120
-g121
-sS'prebuild'
-p260
+(lp281
+sg112
 S'android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/* && rm libs/android-support-v4.jar'
-p261
-sg123
+p282
+sg113
 I00
-sg124
-Nsa(dp262
-g74
+sg114
+Nsa(dp283
+g72
 I00
-sg75
-S'34'
-p263
-sg77
+sg73
 I00
-sg78
+sg74
 I00
-sg79
-Nsg80
+sg75
 I00
-sg81
+sg76
+Nsg77
+(lp284
+sg79
 I00
+sg80
+(lp285
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp286
+sg85
+g31
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.33'
-p264
-sS'subdir'
-p265
+p287
+sg88
 S'org_adaway/'
-p266
-sg94
-g95
-sg96
-g97
-sg98
-g27
-sg99
-g27
-sg100
+p288
+sg90
+(lp289
+sg92
+g31
+sg93
+S'34'
+p290
+sg95
 I00
-sg101
-g102
-sg103
-g104
-sg106
+sg96
+(lp291
+sg98
+Nsg99
 I00
-sg107
+sg100
 I00
-sS'commit'
-p267
+sg101
 S'9d63c18'
-p268
+p292
+sg103
+(lp293
+sg105
+I00
+sg106
+Nsg107
+Nsg108
+(lp294
 sg110
-g111
-sS'buildjni'
-p269
-(lp270
-g259
-asg115
-g116
-sg117
-Nsg118
-g119
-sg120
-g121
-sS'prebuild'
-p271
+(lp295
+sg112
 S'android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/*'
-p272
-sg123
+p296
+sg113
 I00
-sg124
-Nsa(dp273
-g74
+sg114
+Nsa(dp297
+g72
 I00
-sg75
-S'35'
-p274
-sg77
+sg73
 I00
-sg78
+sg74
 I00
-sg79
-Nsg80
+sg75
 I00
-sg81
+sg76
+Nsg77
+(lp298
+sg79
 I00
+sg80
+(lp299
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp300
+sg85
+g31
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.34'
-p275
-sS'subdir'
-p276
+p301
+sg88
 S'org_adaway/'
-p277
-sg94
-g95
+p302
+sg90
+(lp303
+sg92
+g31
+sg93
+S'35'
+p304
+sg95
+I00
 sg96
-g97
+(lp305
 sg98
-g27
-sg99
-g27
+Nsg99
+I00
 sg100
 I00
 sg101
-g102
+S'f2568b1'
+p306
 sg103
-g104
-sg106
+(lp307
+sg105
 I00
-sg107
-I00
-sS'commit'
-p278
-S'f2568b1'
-p279
+sg106
+Nsg107
+Nsg108
+(lp308
 sg110
-g111
-sS'buildjni'
-p280
-(lp281
-g259
-asg115
-g116
-sg117
-Nsg118
-g119
-sg120
-g121
-sS'prebuild'
-p282
+(lp309
+sg112
 S'android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/* && android update project -p ../org_donations'
-p283
-sg123
+p310
+sg113
 I00
-sg124
-Nsa(dp284
-g74
+sg114
+Nsa(dp311
+g72
 I00
-sg75
-S'36'
-p285
-sg77
+sg73
 I00
-sg78
+sg74
 I00
-sg79
-Nsg80
+sg75
 I00
-sg81
+sg76
+Nsg77
+(lp312
+sg79
 I00
+sg80
+(lp313
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp314
+sg85
+g31
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.35'
-p286
-sS'subdir'
-p287
+p315
+sg88
 S'org_adaway/'
-p288
-sg94
-g95
+p316
+sg90
+(lp317
+sg92
+g31
+sg93
+S'36'
+p318
+sg95
+I00
 sg96
-g97
+(lp319
 sg98
-g27
-sg99
-g27
+Nsg99
+I00
 sg100
 I00
 sg101
-g102
+S'7442d5d'
+p320
 sg103
-g104
-sg106
+(lp321
+sg105
 I00
-sg107
-I00
-sS'commit'
-p289
-S'7442d5d'
-p290
+sg106
+Nsg107
+Nsg108
+(lp322
 sg110
-g111
-sS'buildjni'
-p291
-(lp292
-g259
-asg115
-g116
-sg117
-Nsg118
-g119
-sg120
-g121
-sS'prebuild'
-p293
+(lp323
+sg112
 S'android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/* && android update project -p ../org_donations'
-p294
-sg123
+p324
+sg113
 I00
-sg124
-Nsa(dp295
-g74
+sg114
+Nsa(dp325
+g72
 I00
-sg75
-S'37'
-p296
-sg77
+sg73
 I00
-sg78
+sg74
 I00
-sg79
-Nsg80
+sg75
 I00
-sg81
+sg76
+Nsg77
+(lp326
+sg79
 I00
+sg80
+(lp327
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp328
+sg85
+g31
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.36'
-p297
-sS'subdir'
-p298
+p329
+sg88
 S'org_adaway/'
-p299
-sg94
-g95
+p330
+sg90
+(lp331
+sg92
+g31
+sg93
+S'37'
+p332
+sg95
+I00
 sg96
-g97
+(lp333
 sg98
-g27
-sg99
-g27
+Nsg99
+I00
 sg100
 I00
 sg101
-g102
+S'83fc713'
+p334
 sg103
-g104
-sg106
-I00
-sg107
+(lp335
+sg105
 I00
-sS'commit'
-p300
-S'83fc713'
-p301
+sg106
+Nsg107
+Nsg108
+(lp336
 sg110
-g111
-sS'buildjni'
-p302
-(lp303
-g259
-asg115
-g116
-sg117
-Nsg118
-g119
-sg120
-g121
-sS'prebuild'
-p304
+(lp337
+sg112
 S'android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/* && android update project -p ../org_donations'
-p305
-sg123
+p338
+sg113
 I00
-sg124
-Nsa(dp306
-g74
+sg114
+Nsa(dp339
+g72
 I00
-sg75
-S'38'
-p307
-sg77
+sg73
 I00
-sg78
+sg74
 I00
-sg79
-Nsg80
+sg75
 I00
-sg81
+sg76
+Nsg77
+(lp340
+sg79
 I00
+sg80
+(lp341
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp342
+sg85
+g31
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'1.37'
-p308
-sS'subdir'
-p309
+p343
+sg88
 S'org_adaway/'
-p310
-sg94
-g95
+p344
+sg90
+(lp345
+sg92
+g31
+sg93
+S'38'
+p346
+sg95
+I00
 sg96
-g97
+(lp347
 sg98
-g27
-sg99
-g27
+Nsg99
+I00
 sg100
 I00
 sg101
-g102
+S'70da32b567122b701cdcb1609b780eb85732028f'
+p348
 sg103
-g104
-sg106
-I00
-sg107
+(lp349
+sg105
 I00
-sS'commit'
-p311
-S'70da32b567122b701cdcb1609b780eb85732028f'
-p312
+sg106
+Nsg107
+Nsg108
+(lp350
 sg110
-g111
-sS'buildjni'
-p313
-(lp314
-g259
-asg115
-g116
-sg117
-Nsg118
-g119
-sg120
-g121
-sS'prebuild'
-p315
+(lp351
+sg112
 S'android update project -p ../com_actionbarsherlock && rm -rf libs/armeabi/* && android update project -p ../org_donations'
-p316
-sg123
+p352
+sg113
 I00
-sg124
-Nsa(dp317
-g74
+sg114
+Nsa(dp353
+g72
 I00
-sg75
-S'40'
-p318
-sg77
+sg73
 I00
-sg78
+sg74
 I00
-sg79
-Nsg80
+sg75
 I00
-sg81
+sg76
+Nsg77
+(lp354
+sg79
 I00
-sg82
-g83
-sS'srclibs'
-p319
-(lp320
+sg80
+(lp355
 S'RootCommands@c940b0e503'
-p321
-asg86
-NsS'extlibs'
-p322
-(lp323
+p356
+asg82
+Nsg83
+(lp357
 S'htmlcleaner/htmlcleaner-2.2.jar'
-p324
-asS'init'
-p325
+p358
+asg85
 S'rm android-libs/Donations/custom_rules.xml && git clone https://github.com/dschuermann/HtmlSpanner android-libs/HtmlSpanner'
-p326
-sg90
+p359
+sg86
 S'2.1'
-p327
-sS'subdir'
-p328
+p360
+sg88
 S'AdAway'
-p329
-sg94
-g95
+p361
+sg90
+(lp362
+sg92
+g31
+sg93
+S'40'
+p363
+sg95
+I00
 sg96
-g97
+(lp364
 sg98
-g27
-sg99
-g27
-sg100
-I00
-sg101
-g102
-sS'update'
-p330
-(lp331
+(lp365
 S'.'
-p332
+p366
 aS'android-libs/Donations'
-p333
+p367
 aS'android-libs/ActionBarSherlock'
-p334
+p368
 aS'android-libs/HtmlSpanner/htmlspanner'
-p335
-asg106
+p369
+asg99
 I00
-sg107
+sg100
 I00
-sS'commit'
-p336
+sg101
 S'v2.1'
-p337
+p370
+sg103
+(lp371
+sg105
+I01
+sg106
+Nsg107
+Nsg108
+(lp372
 sg110
-g111
-sS'buildjni'
-p338
-(lp339
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sg120
-g121
-sS'prebuild'
-p340
+(lp373
+sg112
 S'rm -rf ../update_zip libs/root-commands-1.2.jar libs/htmlspanner-0.2-fork.jar && cp -f libs/htmlcleaner-2.2.jar android-libs/HtmlSpanner/htmlspanner/libs/ && echo "android.library.reference.3=$$RootCommands$$" >> project.properties && echo "android.library.reference.4=android-libs/HtmlSpanner/htmlspanner" >> project.properties && find . -type f -print0 | xargs -0 sed -i \'s/org.rootcommands/org.sufficientlysecure.rootcommands/g\' && cp android-libs/Donations/ant-templates/other/DonationsConfig.java android-libs/Donations/src/org/donations/'
-p341
-sg123
+p374
+sg113
 I00
-sg124
-Nsa(dp342
-g74
+sg114
+Nsa(dp375
+g72
 I00
-sg75
-S'42'
-p343
-sg77
+sg73
 I00
-sg78
+sg74
 I00
-sg79
-Nsg80
+sg75
 I00
-sg81
+sg76
+Nsg77
+(lp376
+sg79
 I00
-sg82
-g83
-sS'srclibs'
-p344
-(lp345
+sg80
+(lp377
 S'RootCommands@c940b0e503'
-p346
-asg86
-NsS'extlibs'
-p347
-(lp348
+p378
+asg82
+Nsg83
+(lp379
 S'htmlcleaner/htmlcleaner-2.2.jar'
-p349
-asS'init'
-p350
+p380
+asg85
 S'rm android-libs/Donations/custom_rules.xml && git clone https://github.com/dschuermann/HtmlSpanner android-libs/HtmlSpanner'
-p351
-sg90
+p381
+sg86
 S'2.3'
-p352
-sS'subdir'
-p353
+p382
+sg88
 S'AdAway'
-p354
-sg94
-g95
+p383
+sg90
+(lp384
+sg92
+g31
+sg93
+S'42'
+p385
+sg95
+I00
 sg96
-g97
+(lp386
 sg98
-g27
-sg99
-g27
-sg100
-I00
-sg101
-g102
-sS'update'
-p355
-(lp356
-g332
+(lp387
+g366
 aS'android-libs/Donations'
-p357
+p388
 aS'android-libs/ActionBarSherlock'
-p358
+p389
 aS'android-libs/HtmlSpanner/htmlspanner'
-p359
-asg106
+p390
+asg99
 I00
-sg107
+sg100
 I00
-sS'commit'
-p360
+sg101
 S'v2.3'
-p361
+p391
+sg103
+(lp392
+sg105
+I01
+sg106
+Nsg107
+Nsg108
+(lp393
 sg110
-g111
-sS'buildjni'
-p362
-(lp363
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sg120
-g121
-sS'prebuild'
-p364
+(lp394
+sg112
 S'rm -rf ../update_zip libs/root-commands-1.2.jar libs/htmlspanner-0.2-fork.jar && cp -f libs/htmlcleaner-2.2.jar android-libs/HtmlSpanner/htmlspanner/libs/ && echo "android.library.reference.3=$$RootCommands$$" >> project.properties && echo "android.library.reference.4=android-libs/HtmlSpanner/htmlspanner" >> project.properties && find . -type f -print0 | xargs -0 sed -i \'s/org.rootcommands/org.sufficientlysecure.rootcommands/g\' && cp android-libs/Donations/ant-templates/other/DonationsConfig.java android-libs/Donations/src/org/donations/'
-p365
-sg123
+p395
+sg113
 I00
-sg124
-Nsa(dp366
-g74
+sg114
+Nsa(dp396
+g72
 I00
-sg75
-S'45'
-p367
-sg77
+sg73
 I00
-sg78
+sg74
 I00
-sg79
-Nsg80
+sg75
 I00
-sg120
-g121
+sg76
+Nsg77
+(lp397
+sg79
+I01
+sg80
+(lp398
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp399
+sg85
+g31
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'2.6'
-p368
-sS'subdir'
-p369
+p400
+sg88
 S'AdAway'
-p370
-sg94
-g95
-sg96
-g81
-sg98
-g27
-sg99
-g27
-sg100
+p401
+sg90
+(lp402
+sg92
+g31
+sg93
+S'45'
+p403
+sg95
 I00
-sS'preassemble'
-p371
-(lp372
+sg96
+(lp404
 S'renameExecutables'
-p373
-asg103
-g104
-sg106
+p405
+asg98
+Nsg99
 I00
-sg107
+sg100
 I00
-sS'commit'
-p374
+sg101
 S'v2.6'
-p375
+p406
+sg103
+(lp407
+sg105
+I01
+sg106
+Nsg107
+Nsg108
+(lp408
 sg110
-g111
-sS'buildjni'
-p376
-(lp377
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sS'gradle'
-p378
-(lp379
-g114
-asg122
-g27
-sg123
+(lp409
+sg112
+g31
+sg113
 I00
-sg124
-Nsa(dp380
-g74
+sg114
+Nsa(dp410
+g72
 I00
-sg75
-S'46'
-p381
-sg77
+sg73
 I00
-sg78
+sg74
 I00
-sg79
-Nsg80
+sg75
 I00
-sg120
-g121
+sg76
+Nsg77
+(lp411
+sg79
+I01
+sg80
+(lp412
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp413
+sg85
+g31
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'2.7'
-p382
-sS'subdir'
-p383
+p414
+sg88
 S'AdAway'
-p384
-sg94
-g95
-sg96
-g81
-sg98
-g27
-sg99
-g27
-sg100
+p415
+sg90
+(lp416
+sg92
+g31
+sg93
+S'46'
+p417
+sg95
 I00
-sS'preassemble'
-p385
-(lp386
+sg96
+(lp418
 S'renameExecutables'
-p387
-asg103
-g104
-sg106
+p419
+asg98
+Nsg99
 I00
-sg107
+sg100
 I00
-sS'commit'
-p388
+sg101
 S'v2.7'
-p389
+p420
+sg103
+(lp421
+sg105
+I01
+sg106
+Nsg107
+Nsg108
+(lp422
 sg110
-g111
-sS'buildjni'
-p390
-(lp391
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sS'gradle'
-p392
-(lp393
-g114
-asg122
-g27
-sg123
+(lp423
+sg112
+g31
+sg113
 I00
-sg124
-Nsa(dp394
-g74
+sg114
+Nsa(dp424
+g72
 I00
-sg75
-S'47'
-p395
-sg77
+sg73
 I00
-sg78
+sg74
 I00
-sg79
-Nsg80
+sg75
 I00
-sg120
-g121
+sg76
+Nsg77
+(lp425
+sg79
+I01
+sg80
+(lp426
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp427
+sg85
+g31
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'2.8'
-p396
-sS'subdir'
-p397
+p428
+sg88
 S'AdAway'
-p398
-sg94
-g95
-sg96
-g81
-sg98
-g27
-sg99
-g27
-sg100
+p429
+sg90
+(lp430
+sg92
+g31
+sg93
+S'47'
+p431
+sg95
 I00
-sS'preassemble'
-p399
-(lp400
+sg96
+(lp432
 S'renameExecutables'
-p401
-asg103
-g104
-sg106
+p433
+asg98
+Nsg99
 I00
-sg107
+sg100
 I00
-sS'commit'
-p402
+sg101
 S'v2.8'
-p403
+p434
+sg103
+(lp435
+sg105
+I01
+sg106
+Nsg107
+Nsg108
+(lp436
 sg110
-g111
-sS'buildjni'
-p404
-(lp405
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sS'gradle'
-p406
-(lp407
-g114
-asg122
-g27
-sg123
+(lp437
+sg112
+g31
+sg113
 I00
-sg124
-Nsa(dp408
-g74
+sg114
+Nsa(dp438
+g72
 I00
-sg75
-S'48'
-p409
-sg77
+sg73
 I00
-sg78
+sg74
 I00
-sg79
-Nsg80
+sg75
 I00
-sg120
-g121
+sg76
+Nsg77
+(lp439
+sg79
+I01
+sg80
+(lp440
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp441
+sg85
+g31
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'2.8.1'
-p410
-sS'subdir'
-p411
+p442
+sg88
 S'AdAway'
-p412
-sg94
-g95
-sg96
-g81
-sg98
-g27
-sg99
-g27
-sg100
+p443
+sg90
+(lp444
+sg92
+g31
+sg93
+S'48'
+p445
+sg95
 I00
-sS'preassemble'
-p413
-(lp414
+sg96
+(lp446
 S'renameExecutables'
-p415
-asg103
-g104
-sg106
+p447
+asg98
+Nsg99
 I00
-sg107
+sg100
 I00
-sS'commit'
-p416
+sg101
 S'v2.8.1'
-p417
+p448
+sg103
+(lp449
+sg105
+I01
+sg106
+Nsg107
+Nsg108
+(lp450
 sg110
-g111
-sS'buildjni'
-p418
-(lp419
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sS'gradle'
-p420
-(lp421
-g114
-asg122
-g27
-sg123
+(lp451
+sg112
+g31
+sg113
 I00
-sg124
-Nsa(dp422
-g74
+sg114
+Nsa(dp452
+g72
 I00
-sg75
-S'49'
-p423
-sg77
+sg73
 I00
-sg78
+sg74
 I00
-sg79
-Nsg80
+sg75
 I00
-sg120
-g121
+sg76
+Nsg77
+(lp453
+sg79
+I01
+sg80
+(lp454
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp455
+sg85
+g31
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'2.9'
-p424
-sS'subdir'
-p425
+p456
+sg88
 S'AdAway'
-p426
-sg94
-g95
-sg96
-g81
-sg98
-g27
-sg99
-g27
-sg100
+p457
+sg90
+(lp458
+sg92
+g31
+sg93
+S'49'
+p459
+sg95
 I00
-sS'preassemble'
-p427
-(lp428
+sg96
+(lp460
 S'renameExecutables'
-p429
-asg103
-g104
-sg106
+p461
+asg98
+Nsg99
 I00
-sg107
+sg100
 I00
-sS'commit'
-p430
+sg101
 S'v2.9'
-p431
+p462
+sg103
+(lp463
+sg105
+I01
+sg106
+Nsg107
+Nsg108
+(lp464
 sg110
-g111
-sS'buildjni'
-p432
-(lp433
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sS'gradle'
-p434
-(lp435
-g114
-asg122
-g27
-sg123
+(lp465
+sg112
+g31
+sg113
 I00
-sg124
-Nsa(dp436
-g74
+sg114
+Nsa(dp466
+g72
 I00
-sg75
-S'50'
-p437
-sg77
+sg73
 I00
-sg78
+sg74
 I00
-sg79
-Nsg80
+sg75
 I00
-sg120
-g121
+sg76
+Nsg77
+(lp467
+sg79
+I01
+sg80
+(lp468
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp469
+sg85
+g31
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'2.9.1'
-p438
-sS'subdir'
-p439
+p470
+sg88
 S'AdAway'
-p440
-sg94
-g95
-sg96
-g81
-sg98
-g27
-sg99
-g27
-sg100
+p471
+sg90
+(lp472
+sg92
+g31
+sg93
+S'50'
+p473
+sg95
 I00
-sS'preassemble'
-p441
-(lp442
+sg96
+(lp474
 S'renameExecutables'
-p443
-asg103
-g104
-sg106
+p475
+asg98
+Nsg99
 I00
-sg107
+sg100
 I00
-sS'commit'
-p444
+sg101
 S'v2.9.1'
-p445
+p476
+sg103
+(lp477
+sg105
+I01
+sg106
+Nsg107
+Nsg108
+(lp478
 sg110
-g111
-sS'buildjni'
-p446
-(lp447
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sS'gradle'
-p448
-(lp449
-g114
-asg122
-g27
-sg123
+(lp479
+sg112
+g31
+sg113
 I00
-sg124
-Nsa(dp450
-g74
+sg114
+Nsa(dp480
+g72
 I00
-sg75
-S'51'
-p451
-sg77
+sg73
 I00
-sg78
+sg74
 I00
-sg79
-Nsg80
+sg75
 I00
-sg120
-g121
+sg76
+Nsg77
+(lp481
+sg79
+I01
+sg80
+(lp482
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp483
+sg85
+g31
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'2.9.2'
-p452
-sS'subdir'
-p453
+p484
+sg88
 S'AdAway'
-p454
-sg94
-g95
-sg96
-g81
-sg98
-g27
-sg99
-g27
-sg100
+p485
+sg90
+(lp486
+sg92
+g31
+sg93
+S'51'
+p487
+sg95
 I00
-sS'preassemble'
-p455
-(lp456
+sg96
+(lp488
 S'renameExecutables'
-p457
-asg103
-g104
-sg106
+p489
+asg98
+Nsg99
 I00
-sg107
+sg100
 I00
-sS'commit'
-p458
+sg101
 S'v2.9.2'
-p459
+p490
+sg103
+(lp491
+sg105
+I01
+sg106
+Nsg107
+Nsg108
+(lp492
 sg110
-g111
-sS'buildjni'
-p460
-(lp461
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sS'gradle'
-p462
-(lp463
-g114
-asg122
-g27
-sg123
+(lp493
+sg112
+g31
+sg113
 I00
-sg124
-Nsa(dp464
-g74
+sg114
+Nsa(dp494
+g72
 I00
-sg75
-S'52'
-p465
-sg77
+sg73
 I00
-sg78
+sg74
 I00
-sg79
-Nsg80
+sg75
 I00
-sg120
-g121
+sg76
+Nsg77
+(lp495
+sg79
+I01
+sg80
+(lp496
 sg82
-g83
-sg84
-g85
+Nsg83
+(lp497
+sg85
+g31
 sg86
-Nsg87
-g88
-sg89
-g27
-sg90
 S'3.0'
-p466
-sS'subdir'
-p467
+p498
+sg88
 S'AdAway'
-p468
-sg94
-g95
-sg96
-g81
-sg98
-g27
-sg99
-g27
-sg100
+p499
+sg90
+(lp500
+sg92
+g31
+sg93
+S'52'
+p501
+sg95
 I00
-sS'preassemble'
-p469
-(lp470
+sg96
+(lp502
 S'renameExecutables'
-p471
-asg103
-g104
-sg106
+p503
+asg98
+Nsg99
 I00
-sg107
+sg100
 I00
-sS'commit'
-p472
+sg101
 S'v3.0'
-p473
+p504
+sg103
+(lp505
+sg105
+I01
+sg106
+Nsg107
+Nsg108
+(lp506
 sg110
-g111
-sS'buildjni'
-p474
-(lp475
-g114
-asg115
-g116
-sg117
-Nsg118
-g119
-sS'gradle'
-p476
-(lp477
-g114
-asg122
-g27
-sg123
+(lp507
+sg112
+g31
+sg113
 I00
-sg124
+sg114
 NsasS'FlattrID'
-p478
+p508
 S'369138'
-p479
+p509
 sS'metadatapath'
-p480
+p510
 S'metadata/org.adaway.json'
-p481
+p511
 sS'Disabled'
-p482
-NsS'Update Check Name'
-p483
+p512
+NsS'Web Site'
+p513
+S'http://sufficientlysecure.org/index.php/adaway'
+p514
+sS'Update Check Name'
+p515
 NsS'Vercode Operation'
-p484
-NsS'added'
-p485
-NsS'lastupdated'
-p486
-Ns.
+p516
+NsS'Auto Update Mode'
+p517
+S'Version v%v'
+p518
+s.
\ No newline at end of file
index 6f5565e552a6a1b57fa459a257b36328193a856e..30aef0772de72639f6cf8dbb6f65df859f2895d7 100644 (file)
@@ -6,774 +6,678 @@ p2
 NsS'AntiFeatures'
 p3
 (lp4
-sS'Web Site'
+sS'Litecoin'
 p5
-S'http://www.smssecure.org'
+NsS'comments'
 p6
-sS'Auto Update Mode'
-p7
-S'Version v%v'
-p8
+(dp7
 sS'Provides'
-p9
+p8
 NsS'Issue Tracker'
-p10
+p9
 S'https://github.com/SMSSecure/SMSSecure/issues'
-p11
+p10
 sS'Donate'
+p11
+NsS'Archive Policy'
 p12
-NsS'Repo Type'
+NsS'Description'
 p13
-S'git'
-p14
-sS'Description'
-p15
-(lp16
+(lp14
 S'SMSSecure is an SMS/MMS application that allows you to protect your privacy while communicating with friends.'
-p17
+p15
 aS'Using SMSSecure, you can send SMS messages and share media or attachments with complete privacy.'
-p18
+p16
 aS''
-p19
+p17
 aS"* Easy. SMSSecure works like any other SMS application. There's nothing to sign up for and no new service your friends need to join."
-p20
+p18
 aS'* Reliable. SMSSecure communicates using encrypted SMS messages. No servers or internet connection required.'
-p21
+p19
 aS'* Private. SMSSecure uses the TextSecure encryption protocol to provide privacy for every message, every time.'
-p22
+p20
 aS'* Safe. All messages are encrypted locally, so if your phone is lost or stolen, your messages are protected.'
-p23
+p21
 aS'* Open Source. SMSSecure is Free and Open Source, enabling anyone to verify its security by auditing the code.'
-p24
+p22
 asS'Requires Root'
-p25
+p23
 I00
-sS'comments'
+sS'lastupdated'
+p24
+NsS'id'
+p25
+S'org.smssecure.smssecure'
 p26
-(dp27
-sS'id'
+sS'Repo'
+p27
+S'https://github.com/SMSSecure/SMSSecure'
 p28
-S'org.smssecure.smssecure'
+sS'No Source Since'
 p29
-sS'Repo'
+g17
+sS'Repo Type'
 p30
-S'https://github.com/SMSSecure/SMSSecure'
+S'git'
 p31
-sS'No Source Since'
-p32
-g19
 sS'Auto Name'
-p33
+p32
 S'SMSSecure'
-p34
+p33
 sS'Categories'
-p35
-(lp36
+p34
+(lp35
 S'Phone & SMS'
-p37
+p36
 asS'Source Code'
-p38
+p37
 S'https://github.com/SMSSecure/SMSSecure'
+p38
+sS'added'
 p39
-sS'Litecoin'
-p40
 NsS'Update Check Ignore'
-p41
+p40
 NsS'Name'
-p42
+p41
 NsS'License'
-p43
+p42
 S'GPLv3'
-p44
+p43
 sS'Changelog'
-p45
-g19
+p44
+g17
 sS'Update Check Mode'
-p46
+p45
 S'Tags'
-p47
+p46
 sS'Summary'
-p48
+p47
 S'Send encrypted text messages (SMS)'
-p49
+p48
 sS'Current Version'
-p50
+p49
 S'0.6.0'
-p51
+p50
 sS'Maintainer Notes'
-p52
-(lp53
+p51
+(lp52
 sS'Current Version Code'
-p54
+p53
 S'102'
-p55
+p54
 sS'Binaries'
-p56
-NsS'Archive Policy'
-p57
+p55
 NsS'builds'
-p58
-(lp59
-(dp60
+p56
+(lp57
+(dp58
 S'submodules'
-p61
+p59
+I00
+sS'kivy'
+p60
 I00
-sS'vercode'
-p62
-S'5'
-p63
 sS'forceversion'
-p64
+p61
 I00
 sS'oldsdkloc'
-p65
+p62
 I00
 sS'antcommands'
+p63
+NsS'scanignore'
+p64
+(lp65
+sS'gradle'
 p66
-NsS'kivy'
-p67
-I00
-sS'patch'
+(lp67
+S'yes'
 p68
-(lp69
-sS'scanignore'
-p70
-(lp71
-sS'srclibs'
-p72
-(lp73
+asS'srclibs'
+p69
+(lp70
 S'GradleWitness@10f1269c0aafdc1d478efc005ed48f3a47d44278'
-p74
+p71
 aS'PreferenceFragment@717a45433b927d2f0dfc5328f79e77c9682c37bc'
-p75
+p72
 aS'ShortcutBadger@3815ce2ec0c66acd7d7c0b4f2479df8fa70fed87'
-p76
+p73
 aS'AospMms@android-5.1.0_r3'
-p77
+p74
 asS'encoding'
-p78
+p75
 NsS'extlibs'
-p79
-(lp80
+p76
+(lp77
 sS'init'
-p81
-g19
+p78
+g17
 sS'version'
-p82
+p79
 S'0.3.3'
-p83
+p80
 sS'subdir'
-p84
+p81
 NsS'rm'
-p85
-(lp86
+p82
+(lp83
 S'libs/*'
+p84
+asS'build'
+p85
+g17
+sS'vercode'
+p86
+S'5'
 p87
-asS'type'
-p88
-S'gradle'
-p89
-sS'build'
-p90
-g19
-sS'ndk_path'
-p91
-g19
 sS'forcevercode'
-p92
+p88
 I01
 sS'preassemble'
-p93
-(lp94
+p89
+(lp90
 sS'update'
-p95
-(lp96
-S'auto'
-p97
-asS'maven'
-p98
+p91
+NsS'maven'
+p92
 I00
 sS'disable'
-p99
+p93
 S'builds, merge changes into upstream'
-p100
+p94
 sS'commit'
-p101
+p95
 S'66367479a4f57f347b5cbe8f6f8f632adaae7727'
-p102
+p96
 sS'scandelete'
+p97
+(lp98
+sS'buildjni'
+p99
+(lp100
+sS'ndk'
+p101
+NsS'target'
+p102
+NsS'gradleprops'
 p103
 (lp104
-sS'buildjni'
+sS'patch'
 p105
 (lp106
-sS'ndk'
+sS'prebuild'
 p107
-S'r10e'
-p108
-sS'target'
-p109
-NsS'gradleprops'
-p110
-(lp111
-sS'gradle'
-p112
-(lp113
-S'yes'
-p114
-asS'prebuild'
-p115
 S"touch signing.properties && pushd $$GradleWitness$$ && gradle jar && popd && cp $$GradleWitness$$/build/libs/GradleWitness.jar libs/gradle-witness.jar && sed -i -e '20,22d' build.gradle && pushd $$PreferenceFragment$$ && gradle uploadArchives && popd && sed -i -e '/5470f5872514a6226fa1fc6f4e000991f38805691c534cf0bd2778911fc773ad/d' build.gradle && mkdir smil && pushd smil && wget -c http://www.w3.org/TR/smil-boston-dom/java-binding.zip && unzip java-binding.zip && popd && cp -fR smil/java/org src/ && rm -fR smil && sed -i -e '/org.w3c.smil/d' build.gradle && cp -fR $$AospMms$$/src/org src/"
-p116
+p108
 sS'novcheck'
-p117
+p109
 I00
 sS'output'
-p118
-Nsa(dp119
-S'submodules'
-p120
+p110
+Nsa(dp111
+g59
 I01
-sg62
-S'6'
-p121
-sg64
+sg60
 I00
-sg65
+sg61
 I00
-sg66
-Nsg67
+sg62
 I00
-sg68
-g69
-sg70
-g71
-sS'srclibs'
-p122
-(lp123
+sg63
+Nsg64
+(lp112
+sg66
+(lp113
+g68
+asg69
+(lp114
 S'GradleWitness@10f1269c0aafdc1d478efc005ed48f3a47d44278'
-p124
-asg78
-Nsg79
-g80
-sg81
-g19
-sg82
+p115
+asg75
+Nsg76
+(lp116
+sg78
+g17
+sg79
 S'0.3.3'
-p125
-sg84
-NsS'rm'
-p126
-(lp127
+p117
+sg81
+Nsg82
+(lp118
 S'libs/*.jar'
-p128
-asg88
-g89
-sg90
-g19
+p119
+asg85
+g17
+sg86
+S'6'
+p120
+sg88
+I00
+sg89
+(lp121
 sg91
-g19
-sS'forcevercode'
-p129
+Nsg92
 I00
 sg93
-g94
-sg95
-g96
-sg98
-I00
-sS'disable'
-p130
 S'builds, wait for upstream'
-p131
-sS'commit'
-p132
+p122
+sg95
 S'9675ce5eecb929dcaddb43b3d9486fdb88b9ae1a'
-p133
-sg103
-g104
+p123
+sg97
+(lp124
+sg99
+(lp125
+sg101
+Nsg102
+Nsg103
+(lp126
 sg105
-g106
+(lp127
 sg107
-g108
-sg109
-Nsg110
-g111
-sS'gradle'
-p134
-(lp135
-g114
-asS'prebuild'
-p136
 S'touch signing.properties && pushd $$GradleWitness$$ && gradle jar && popd && cp $$GradleWitness$$/build/libs/GradleWitness.jar libs/gradle-witness.jar'
-p137
-sg117
+p128
+sg109
 I00
-sg118
-Nsa(dp138
-S'submodules'
-p139
+sg110
+Nsa(dp129
+g59
 I01
-sg62
-S'9'
-p140
-sg64
+sg60
 I00
-sg65
+sg61
 I00
+sg62
+I00
+sg63
+Nsg64
+(lp130
 sg66
-Nsg67
-I00
-sg68
-g69
-sg70
-g71
-sS'srclibs'
-p141
-(lp142
+(lp131
+g68
+asg69
+(lp132
+sg75
+Nsg76
+(lp133
 sg78
-Nsg79
-g80
-sg81
-g19
-sg82
+g17
+sg79
 S'0.4.2'
-p143
-sg84
-NsS'rm'
-p144
-(lp145
+p134
+sg81
+Nsg82
+(lp135
 S'libs/*.jar'
-p146
-asg88
-g89
-sg90
-g19
+p136
+asg85
+g17
+sg86
+S'9'
+p137
+sg88
+I00
+sg89
+(lp138
 sg91
-g19
-sg129
+Nsg92
 I00
 sg93
-g94
-sg95
-g96
-sg98
-I00
-sS'disable'
-p147
 S'builds locally, but not on BS'
-p148
-sS'commit'
-p149
+p139
+sg95
 S'v0.4.2'
-p150
-sg103
-g104
+p140
+sg97
+(lp141
+sg99
+(lp142
+sg101
+Nsg102
+Nsg103
+(lp143
 sg105
-g106
+(lp144
 sg107
-g108
-sg109
-Nsg110
-g111
-sS'gradle'
-p151
-(lp152
-g114
-asS'prebuild'
-p153
 S'touch signing.properties && ./build-witness.sh && rm -rf libs/gradle-witness/build && echo "org.gradle.jvmargs=-Xms512m -Xmx512m -XX:MaxPermSize=512m" >> gradle.properties'
-p154
-sg117
+p145
+sg109
 I00
-sg118
-Nsa(dp155
-S'submodules'
-p156
+sg110
+Nsa(dp146
+g59
 I01
-sg62
-S'11'
-p157
-sg64
+sg60
 I00
-sg65
+sg61
 I00
+sg62
+I00
+sg63
+Nsg64
+(lp147
 sg66
-Nsg67
-I00
-sg68
-g69
-sg70
-g71
-sg141
-g142
+(lp148
+g68
+asg69
+(lp149
+sg75
+Nsg76
+(lp150
 sg78
-Nsg79
-g80
-sg81
-g19
-sg82
+g17
+sg79
 S'0.5.1'
-p158
-sg84
-NsS'rm'
-p159
-(lp160
+p151
+sg81
+Nsg82
+(lp152
 S'libs/*.jar'
-p161
-asg88
-g89
-sg90
-g19
+p153
+asg85
+g17
+sg86
+S'11'
+p154
+sg88
+I00
+sg89
+(lp155
 sg91
-g19
-sg129
+Nsg92
 I00
 sg93
-g94
-sg95
-g96
-sg98
-I00
-sS'disable'
-p162
 I00
-sS'commit'
-p163
+sg95
 S'v0.5.1'
-p164
-sg103
-g104
+p156
+sg97
+(lp157
+sg99
+(lp158
+sg101
+Nsg102
+Nsg103
+(lp159
 sg105
-g106
+(lp160
 sg107
-g108
-sg109
-Nsg110
-g111
-sS'gradle'
-p165
-(lp166
-g114
-asS'prebuild'
-p167
 S'touch signing.properties && ./build-witness.sh && rm -rf libs/gradle-witness/build && echo "org.gradle.jvmargs=-Xms512m -Xmx512m -XX:MaxPermSize=512m" >> gradle.properties'
-p168
-sg117
+p161
+sg109
 I00
-sg118
-Nsa(dp169
-S'submodules'
-p170
+sg110
+Nsa(dp162
+g59
 I01
-sg62
-S'12'
-p171
-sg64
+sg60
 I00
-sg65
+sg61
 I00
+sg62
+I00
+sg63
+Nsg64
+(lp163
 sg66
-Nsg67
-I00
-sg68
-g69
-sg70
-g71
-sg141
-g142
+(lp164
+g68
+asg69
+(lp165
+sg75
+Nsg76
+(lp166
 sg78
-Nsg79
-g80
-sg81
-g19
-sg82
+g17
+sg79
 S'0.5.2'
-p172
-sg84
-NsS'rm'
-p173
-(lp174
+p167
+sg81
+Nsg82
+(lp168
 S'libs/*.jar'
-p175
-asg88
-g89
-sg90
-g19
+p169
+asg85
+g17
+sg86
+S'12'
+p170
+sg88
+I00
+sg89
+(lp171
 sg91
-g19
-sg129
+Nsg92
 I00
 sg93
-g94
-sg95
-g96
-sg98
-I00
-sS'disable'
-p176
 S'broken in upstream'
-p177
-sS'commit'
-p178
+p172
+sg95
 S'v0.5.2'
-p179
-sg103
-g104
+p173
+sg97
+(lp174
+sg99
+(lp175
+sg101
+Nsg102
+Nsg103
+(lp176
 sg105
-g106
+(lp177
 sg107
-g108
-sg109
-Nsg110
-g111
-sS'gradle'
-p180
-(lp181
-g114
-asS'prebuild'
-p182
 S'touch signing.properties && ./scripts/build-witness.sh && rm -rf libs/gradle-witness/build'
-p183
-sg117
+p178
+sg109
 I00
-sg118
-Nsa(dp184
-S'submodules'
-p185
+sg110
+Nsa(dp179
+g59
 I01
-sg62
-S'100'
-p186
-sg64
+sg60
+I00
+sg61
 I00
-sg65
+sg62
 I00
+sg63
+Nsg64
+(lp180
 sg66
-Nsg67
-I00
-sg68
-g69
-sg70
-g71
-sg141
-g142
+(lp181
+g68
+asg69
+(lp182
+sg75
+Nsg76
+(lp183
 sg78
-Nsg79
-g80
-sg81
-g19
-sg82
+g17
+sg79
 S'0.5.3'
-p187
-sg84
-NsS'rm'
-p188
-(lp189
+p184
+sg81
+Nsg82
+(lp185
 S'libs/*.jar'
-p190
-asg88
-g89
-sg90
-g19
+p186
+asg85
+g17
+sg86
+S'100'
+p187
+sg88
+I00
+sg89
+(lp188
 sg91
-g19
-sg129
+Nsg92
 I00
 sg93
-g94
-sg95
-g96
-sg98
 I00
-sg162
-I00
-sS'commit'
-p191
+sg95
 S'v0.5.3'
-p192
-sg103
-g104
+p189
+sg97
+(lp190
+sg99
+(lp191
+sg101
+Nsg102
+Nsg103
+(lp192
 sg105
-g106
+(lp193
 sg107
-g108
-sg109
-Nsg110
-g111
-sS'gradle'
-p193
-(lp194
-g114
-asS'prebuild'
-p195
 S'touch signing.properties && ./scripts/build-witness.sh && rm -rf libs/gradle-witness/build'
-p196
-sg117
+p194
+sg109
 I00
-sg118
-Nsa(dp197
-S'submodules'
-p198
+sg110
+Nsa(dp195
+g59
 I01
-sg62
-S'101'
-p199
-sg64
+sg60
 I00
-sg65
+sg61
 I00
+sg62
+I00
+sg63
+Nsg64
+(lp196
 sg66
-Nsg67
-I00
-sg68
-g69
-sg70
-g71
-sg141
-g142
+(lp197
+g68
+asg69
+(lp198
+sg75
+Nsg76
+(lp199
 sg78
-Nsg79
-g80
-sg81
-g19
-sg82
+g17
+sg79
 S'0.5.4'
 p200
-sg84
-NsS'rm'
-p201
-(lp202
+sg81
+Nsg82
+(lp201
 S'libs/*.jar'
+p202
+asg85
+g17
+sg86
+S'101'
 p203
-asg88
-g89
-sg90
-g19
+sg88
+I00
+sg89
+(lp204
 sg91
-g19
-sg129
+Nsg92
 I00
 sg93
-g94
-sg95
-g96
-sg98
-I00
-sg162
 I00
-sS'commit'
-p204
+sg95
 S'v0.5.4'
 p205
-sg103
-g104
+sg97
+(lp206
+sg99
+(lp207
+sg101
+Nsg102
+Nsg103
+(lp208
 sg105
-g106
+(lp209
 sg107
-g108
-sg109
-Nsg110
-g111
-sS'gradle'
-p206
-(lp207
-g114
-asS'prebuild'
-p208
 S'touch signing.properties && ./scripts/build-witness.sh && rm -rf libs/gradle-witness/build'
-p209
-sg117
+p210
+sg109
 I00
-sg118
-Nsa(dp210
-S'submodules'
-p211
+sg110
+Nsa(dp211
+g59
 I01
-sg62
-S'102'
-p212
-sg64
+sg60
+I00
+sg61
 I00
-sg65
+sg62
 I00
+sg63
+Nsg64
+(lp212
 sg66
-Nsg67
-I00
-sg68
-g69
-sg70
-g71
-sg141
-g142
+(lp213
+g68
+asg69
+(lp214
+sg75
+Nsg76
+(lp215
 sg78
-Nsg79
-g80
-sg81
-g19
-sg82
+g17
+sg79
 S'0.6.0'
-p213
-sg84
-NsS'rm'
-p214
-(lp215
-S'libs/*.jar'
 p216
-asg88
-g89
-sg90
-g19
+sg81
+Nsg82
+(lp217
+S'libs/*.jar'
+p218
+asg85
+g17
+sg86
+S'102'
+p219
+sg88
+I00
+sg89
+(lp220
 sg91
-g19
-sg129
+Nsg92
 I00
 sg93
-g94
-sg95
-g96
-sg98
 I00
-sg162
-I00
-sS'commit'
-p217
+sg95
 S'v0.6.0'
-p218
-sg103
-g104
+p221
+sg97
+(lp222
+sg99
+(lp223
+sg101
+Nsg102
+Nsg103
+(lp224
 sg105
-g106
+(lp225
 sg107
-g108
-sg109
-Nsg110
-g111
-sS'gradle'
-p219
-(lp220
-g114
-asS'prebuild'
-p221
 S'touch signing.properties && ./scripts/build-witness.sh && rm -rf libs/gradle-witness/build'
-p222
-sg117
+p226
+sg109
 I00
-sg118
+sg110
 NsasS'FlattrID'
-p223
-NsS'metadatapath'
-p224
-S'metadata/org.smssecure.smssecure.txt'
-p225
-sS'Disabled'
-p226
-NsS'Update Check Name'
 p227
-NsS'Vercode Operation'
+NsS'metadatapath'
 p228
-NsS'added'
+S'metadata/org.smssecure.smssecure.txt'
 p229
-NsS'lastupdated'
+sS'Disabled'
 p230
-Ns.
+NsS'Web Site'
+p231
+S'http://www.smssecure.org'
+p232
+sS'Update Check Name'
+p233
+NsS'Vercode Operation'
+p234
+NsS'Auto Update Mode'
+p235
+S'Version v%v'
+p236
+s.
\ No newline at end of file
index a62fd27e6dc09a2a2bc477730f821c51137a4354..222428ff844db4e13bab40f4ed484808b1652d75 100644 (file)
@@ -6,56 +6,56 @@ p2
 NsS'AntiFeatures'
 p3
 (lp4
-sS'Web Site'
+sS'Litecoin'
 p5
-S'http://www.videolan.org/vlc/download-android.html'
+NsS'comments'
 p6
-sS'Auto Update Mode'
-p7
-S'None'
-p8
+(dp7
 sS'Provides'
-p9
+p8
 NsS'Issue Tracker'
-p10
+p9
 S'http://www.videolan.org/support/index.html#bugs'
-p11
+p10
 sS'Donate'
-p12
+p11
 S'http://www.videolan.org/contribute.html#money'
+p12
+sS'Archive Policy'
 p13
-sS'id'
+S'9 versions'
 p14
-S'org.videolan.vlc'
-p15
 sS'Description'
-p16
-(lp17
+p15
+(lp16
 S'Video and audio player that supports a wide range of formats,'
-p18
+p17
 aS'for both local and remote playback.'
-p19
+p18
 aS''
-p20
+p19
 aS'[http://git.videolan.org/?p=vlc-ports/android.git;a=blob_plain;f=NEWS NEWS]'
-p21
+p20
 asS'Requires Root'
-p22
+p21
 I00
-sS'comments'
+sS'lastupdated'
+p22
+NsS'id'
 p23
-(dp24
-sS'Repo Type'
+S'org.videolan.vlc'
+p24
+sS'Repo'
 p25
-S'git'
+S'git://git.videolan.org/vlc-ports/android.git'
 p26
-sS'Repo'
+sS'No Source Since'
 p27
-S'git://git.videolan.org/vlc-ports/android.git'
+g19
+sS'Repo Type'
 p28
-sS'No Source Since'
+S'git'
 p29
-g20
 sS'Auto Name'
 p30
 S'VLC'
@@ -69,7 +69,7 @@ asS'Source Code'
 p35
 S'http://git.videolan.org/?p=vlc-ports/android.git;a=summary'
 p36
-sS'Litecoin'
+sS'added'
 p37
 NsS'Update Check Ignore'
 p38
@@ -81,7 +81,7 @@ S'GPLv3'
 p41
 sS'Changelog'
 p42
-g20
+g19
 sS'Update Check Mode'
 p43
 S'Tags'
@@ -90,5538 +90,4372 @@ sS'Summary'
 p45
 S'Media player'
 p46
-sS'Maintainer Notes'
+sS'Current Version'
 p47
-(lp48
-S'Instructions and dependencies here: http://wiki.videolan.org/AndroidCompile'
+S'1.2.6'
+p48
+sS'Maintainer Notes'
 p49
-aS'see http://buildbot.videolan.org/builders/ for version code scheme'
-p50
-aS'The VLC srclib commit can be found out from TESTED_HASH value in compile.sh'
+(lp50
+S'Instructions and dependencies here: http://wiki.videolan.org/AndroidCompile'
 p51
-ag20
-aS'On new releases remove the updatecheck and force the CV to the last working'
+aS'see http://buildbot.videolan.org/builders/ for version code scheme'
 p52
-aS"build. This will make sure users don't get notified about the update until"
+aS'The VLC srclib commit can be found out from TESTED_HASH value in compile.sh'
 p53
-aS'the final build from the BS has been reviewed and tested. Once done, undo'
+ag19
+aS'On new releases remove the updatecheck and force the CV to the last working'
 p54
-aS'those changes.'
+aS"build. This will make sure users don't get notified about the update until"
 p55
-asS'Current Version Code'
+aS'the final build from the BS has been reviewed and tested. Once done, undo'
 p56
-S'1030005'
+aS'those changes.'
 p57
-sS'Binaries'
+asS'Current Version Code'
 p58
-NsS'Archive Policy'
+S'1030005'
 p59
-S'9 versions'
+sS'Binaries'
 p60
-sS'builds'
+NsS'builds'
 p61
 (lp62
 (dp63
 S'submodules'
 p64
 I00
-sS'vercode'
+sS'kivy'
 p65
-S'110'
-p66
+I00
 sS'forceversion'
-p67
+p66
 I01
 sS'oldsdkloc'
-p68
+p67
 I00
-sS'gradleprops'
+sS'antcommands'
+p68
+NsS'scanignore'
 p69
 (lp70
-sS'scanignore'
+sS'gradle'
 p71
-(lp72
-sS'patch'
-p73
-(lp74
+I00
 sS'srclibs'
+p72
+(lp73
+sS'encoding'
+p74
+NsS'extlibs'
 p75
 (lp76
-sS'output'
+sS'init'
 p77
-NsS'encoding'
+g19
+sS'version'
 p78
-NsS'extlibs'
+S'0.0.11-ARMv7'
 p79
-(lp80
-sS'init'
+sS'subdir'
+p80
+S'vlc-android'
 p81
-g20
-sS'version'
+sS'rm'
 p82
-S'0.0.11-ARMv7'
-p83
+(lp83
 sS'build'
 p84
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
 p85
-sS'rm'
+sS'vercode'
 p86
-(lp87
-sS'kivy'
-p88
-I00
-sS'subdir'
-p89
-S'vlc-android'
-p90
+I110
 sS'forcevercode'
-p91
+p87
 I01
 sS'preassemble'
-p92
-(lp93
+p88
+(lp89
 sS'update'
-p94
-(lp95
+p90
+(lp91
 S'.'
-p96
+p92
 aS'../java-libs/SlidingMenu'
-p97
+p93
 aS'../java-libs/ActionBarSherlock'
-p98
+p94
 asS'maven'
-p99
+p95
 I00
 sS'disable'
-p100
+p96
 I00
-sS'ndk_path'
-p101
-g20
+sS'commit'
+p97
+S'0.0.11'
+p98
 sS'scandelete'
-p102
-(lp103
+p99
+(lp100
 sS'buildjni'
+p101
+I00
+sS'ndk'
+p102
+NsS'target'
+p103
+NsS'gradleprops'
 p104
 (lp105
-S'no'
+sS'patch'
 p106
-asS'ndk'
-p107
-S'r10e'
-p108
-sS'target'
-p109
-NsS'type'
-p110
-S'ant'
-p111
-sS'antcommands'
-p112
-NsS'gradle'
-p113
-I00
+(lp107
 sS'prebuild'
-p114
+p108
 S"sed -i '48d' ../Makefile"
-p115
+p109
 sS'novcheck'
-p116
+p110
 I00
-sS'commit'
-p117
-S'0.0.11'
-p118
-sa(dp119
+sS'output'
+p111
+Nsa(dp112
 g64
 I00
 sg65
-S'111'
-p120
-sS'forceversion'
-p121
+I00
+sg66
 I01
-sg68
+sg67
 I00
-sg69
-(lp122
+sg68
+Nsg69
+(lp113
 sg71
-g72
-sg73
-g74
-sg75
-g76
+I00
+sg72
+(lp114
+sg74
+Nsg75
+(lp115
 sg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+g19
+sg78
 S'0.0.11-ARM'
-p123
-sS'build'
-p124
+p116
+sg80
+S'vlc-android'
+p117
+sg82
+(lp118
+sg84
 S'cd ../ && ANDROID_ABI=armeabi ./compile.sh release'
-p125
+p119
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p126
-S'vlc-android'
-p127
-sS'forcevercode'
-p128
+I111
+sg87
 I01
-sg92
-g93
-sS'update'
-p129
-(lp130
-g96
+sg88
+(lp120
+sg90
+(lp121
+S'.'
+p122
 aS'../java-libs/SlidingMenu'
-p131
+p123
 aS'../java-libs/ActionBarSherlock'
-p132
-asg99
+p124
+asg95
 I00
-sg100
+sg96
 I00
+sg97
+S'0.0.11'
+p125
+sg99
+(lp126
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p133
-(lp134
-S'no'
-p135
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p136
+sg102
+Nsg103
+Nsg104
+(lp127
+sg106
+(lp128
+sg108
 S"sed -i '48d' ../Makefile"
-p137
-sg116
+p129
+sg110
 I00
-sS'commit'
-p138
-S'0.0.11'
-p139
-sa(dp140
+sg111
+Nsa(dp130
 g64
 I00
 sg65
-S'112'
-p141
-sS'forceversion'
-p142
+I00
+sg66
 I01
-sg68
+sg67
 I00
-sg69
-(lp143
+sg68
+Nsg69
+(lp131
 sg71
-g72
-sg73
-g74
-sg75
-g76
+I00
+sg72
+(lp132
+sg74
+Nsg75
+(lp133
 sg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+g19
+sg78
 S'0.0.11-x86'
-p144
-sS'build'
-p145
+p134
+sg80
+S'vlc-android'
+p135
+sg82
+(lp136
+sg84
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
-p146
+p137
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p147
-S'vlc-android'
-p148
-sS'forcevercode'
-p149
+I112
+sg87
 I01
-sg92
-g93
-sS'update'
-p150
-(lp151
-g96
+sg88
+(lp138
+sg90
+(lp139
+S'.'
+p140
 aS'../java-libs/SlidingMenu'
-p152
+p141
 aS'../java-libs/ActionBarSherlock'
-p153
-asg99
+p142
+asg95
 I00
-sS'disable'
-p154
+sg96
 S'ffmpeg error 0.0.11'
-p155
+p143
+sg97
+S'unknown - see disabled'
+p144
+sg99
+(lp145
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p156
-(lp157
-S'no'
-p158
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p159
+sg102
+Nsg103
+Nsg104
+(lp146
+sg106
+(lp147
+sg108
 S"sed -i '48d' ../Makefile"
-p160
-sg116
+p148
+sg110
 I00
-sS'commit'
-p161
-S'unknown - see disabled'
-p162
-sa(dp163
+sg111
+Nsa(dp149
 g64
 I00
 sg65
-S'113'
-p164
-sS'forceversion'
-p165
+I00
+sg66
 I01
-sg68
+sg67
 I00
-sg69
-(lp166
+sg68
+Nsg69
+(lp150
 sg71
-g72
-sg73
-g74
-sg75
-g76
+I00
+sg72
+(lp151
+sg74
+Nsg75
+(lp152
 sg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+g19
+sg78
 S'0.0.11-mips'
-p167
-sS'build'
-p168
+p153
+sg80
+S'vlc-android'
+p154
+sg82
+(lp155
+sg84
 S'cd ../ && ANDROID_ABI=mips ./compile.sh release'
-p169
+p156
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p170
-S'vlc-android'
-p171
-sS'forcevercode'
-p172
+I113
+sg87
 I01
-sg92
-g93
-sS'update'
-p173
-(lp174
-g96
+sg88
+(lp157
+sg90
+(lp158
+S'.'
+p159
 aS'../java-libs/SlidingMenu'
-p175
+p160
 aS'../java-libs/ActionBarSherlock'
-p176
-asg99
+p161
+asg95
 I00
-sg100
+sg96
 I00
+sg97
+S'0.0.11'
+p162
+sg99
+(lp163
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p177
-(lp178
-S'no'
-p179
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p180
+sg102
+Nsg103
+Nsg104
+(lp164
+sg106
+(lp165
+sg108
 S"sed -i '48d' ../Makefile"
-p181
-sg116
+p166
+sg110
 I00
-sS'commit'
-p182
-S'0.0.11'
-p183
-sa(dp184
+sg111
+Nsa(dp167
 g64
 I00
 sg65
-S'1301'
-p185
-sS'forceversion'
-p186
+I00
+sg66
 I01
-sg68
+sg67
 I00
-sg69
-(lp187
+sg68
+Nsg69
+(lp168
 sg71
-g72
-sS'patch'
-p188
-(lp189
-S'ndkr9.patch'
-p190
-asS'srclibs'
-p191
-(lp192
+I00
+sg72
 S'VLC@7c52aacbe'
-p193
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p169
+sg74
+Nsg75
+(lp170
+sg77
+g19
+sg78
 S'0.1.3-MIPS'
-p194
-sS'build'
-p195
+p171
+sg80
+S'vlc-android'
+p172
+sg82
+(lp173
+sg84
 S'cd ../ && ANDROID_ABI=mips ./compile.sh release'
-p196
+p174
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p197
-S'vlc-android'
-p198
-sS'forcevercode'
-p199
+I1301
+sg87
 I01
-sg92
-g93
-sS'update'
-p200
-(lp201
-S'auto'
-p202
-asg99
+sg88
+(lp175
+sg90
+Nsg95
 I00
-sS'disable'
-p203
+sg96
 S'build failing (at 0.1.3)'
-p204
+p176
+sg97
+S'0.1.3'
+p177
+sg99
+(lp178
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p205
-(lp206
-S'no'
-p207
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p208
+sg102
+Nsg103
+Nsg104
+(lp179
+sg106
+S'ndkr9.patch'
+p180
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC$$ ../vlc"
-p209
-sg116
+p181
+sg110
 I00
-sS'commit'
-p210
-S'0.1.3'
-p211
-sa(dp212
+sg111
+Nsa(dp182
 g64
 I00
 sg65
-S'1302'
-p213
-sS'forceversion'
-p214
+I00
+sg66
 I01
-sg68
+sg67
 I00
-sg69
-(lp215
+sg68
+Nsg69
+(lp183
 sg71
-g72
-sS'patch'
-p216
-(lp217
-S'ndkr9.patch'
-p218
-asS'srclibs'
-p219
-(lp220
+I00
+sg72
 S'VLC@7c52aacbe'
-p221
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p184
+sg74
+Nsg75
+(lp185
+sg77
+g19
+sg78
 S'0.1.3-x86'
-p222
-sS'build'
-p223
+p186
+sg80
+S'vlc-android'
+p187
+sg82
+(lp188
+sg84
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
-p224
+p189
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p225
-S'vlc-android'
-p226
-sS'forcevercode'
-p227
+I1302
+sg87
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp190
+sg90
+Nsg95
 I00
-sg100
+sg96
 I00
+sg97
+S'0.1.3'
+p191
+sg99
+(lp192
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p228
-(lp229
-S'no'
-p230
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p231
+sg102
+Nsg103
+Nsg104
+(lp193
+sg106
+S'ndkr9.patch'
+p194
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC$$ ../vlc"
-p232
-sg116
+p195
+sg110
 I00
-sS'commit'
-p233
-S'0.1.3'
-p234
-sa(dp235
+sg111
+Nsa(dp196
 g64
 I00
 sg65
-S'1303'
-p236
-sS'forceversion'
-p237
+I00
+sg66
 I01
-sg68
+sg67
 I00
-sg69
-(lp238
+sg68
+Nsg69
+(lp197
 sg71
-g72
-sS'patch'
-p239
-(lp240
-S'ndkr9.patch'
-p241
-asS'srclibs'
-p242
-(lp243
+I00
+sg72
 S'VLC@7c52aacbe'
-p244
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p198
+sg74
+Nsg75
+(lp199
+sg77
+g19
+sg78
 S'0.1.3-ARM'
-p245
-sS'build'
-p246
+p200
+sg80
+S'vlc-android'
+p201
+sg82
+(lp202
+sg84
 S'cd ../ && ANDROID_ABI=armeabi ./compile.sh release'
-p247
+p203
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p248
-S'vlc-android'
-p249
-sS'forcevercode'
-p250
+I1303
+sg87
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp204
+sg90
+Nsg95
 I00
-sg100
+sg96
 I00
+sg97
+S'0.1.3'
+p205
+sg99
+(lp206
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p251
-(lp252
-S'no'
-p253
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p254
+sg102
+Nsg103
+Nsg104
+(lp207
+sg106
+S'ndkr9.patch'
+p208
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC$$ ../vlc"
-p255
-sg116
+p209
+sg110
 I00
-sS'commit'
-p256
-S'0.1.3'
-p257
-sa(dp258
+sg111
+Nsa(dp210
 g64
 I00
 sg65
-S'1304'
-p259
-sS'forceversion'
-p260
+I00
+sg66
 I01
-sg68
+sg67
 I00
-sg69
-(lp261
+sg68
+Nsg69
+(lp211
 sg71
-g72
-sS'patch'
-p262
-(lp263
-S'ndkr9.patch'
-p264
-asS'srclibs'
-p265
-(lp266
+I00
+sg72
 S'VLC@7c52aacbe'
-p267
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p212
+sg74
+Nsg75
+(lp213
+sg77
+g19
+sg78
 S'0.1.3-ARMv7'
-p268
-sS'build'
-p269
+p214
+sg80
+S'vlc-android'
+p215
+sg82
+(lp216
+sg84
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
-p270
+p217
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p271
-S'vlc-android'
-p272
-sS'forcevercode'
-p273
+I1304
+sg87
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp218
+sg90
+Nsg95
 I00
-sg100
+sg96
 I00
+sg97
+S'0.1.3'
+p219
+sg99
+(lp220
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p274
-(lp275
-S'no'
-p276
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p277
+sg102
+Nsg103
+Nsg104
+(lp221
+sg106
+S'ndkr9.patch'
+p222
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC$$ ../vlc"
-p278
-sg116
+p223
+sg110
 I00
-sS'commit'
-p279
-S'0.1.3'
-p280
-sa(dp281
+sg111
+Nsa(dp224
 g64
 I00
 sg65
-S'9002'
-p282
-sS'forceversion'
-p283
 I00
-sg68
+sg66
 I00
-sg69
-(lp284
+sg67
+I00
+sg68
+Nsg69
+(lp225
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p285
-(lp286
+I00
+sg72
 S'VLC@31ffb20309264994'
-p287
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p226
+sg74
+Nsg75
+(lp227
+sg77
+g19
+sg78
 S'0.9.0'
-p288
-sS'build'
-p289
+p228
+sg80
+S'vlc-android'
+p229
+sg82
+(lp230
+sg84
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
-p290
+p231
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p291
-S'vlc-android'
-p292
-sS'forcevercode'
-p293
+I9002
+sg87
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp232
+sg90
+Nsg95
 I00
-sg100
+sg96
 I00
+sg97
+S'0.9.0'
+p233
+sg99
+(lp234
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p294
-(lp295
-S'no'
-p296
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p297
+sg102
+Nsg103
+Nsg104
+(lp235
+sg106
+(lp236
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC$$ ../vlc"
-p298
-sg116
+p237
+sg110
 I00
-sS'commit'
-p299
-S'0.9.0'
-p300
-sa(dp301
+sg111
+Nsa(dp238
 g64
 I00
 sg65
-S'9004'
-p302
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp303
+sg67
+I00
+sg68
+Nsg69
+(lp239
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p304
-(lp305
+I00
+sg72
 S'VLC@31ffb20309264994'
-p306
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p240
+sg74
+Nsg75
+(lp241
+sg77
+g19
+sg78
 S'0.9.0'
-p307
-sS'build'
-p308
+p242
+sg80
+S'vlc-android'
+p243
+sg82
+(lp244
+sg84
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
-p309
+p245
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p310
-S'vlc-android'
-p311
-sS'forcevercode'
-p312
+I9004
+sg87
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp246
+sg90
+Nsg95
 I00
-sg100
+sg96
 I00
+sg97
+S'0.9.0'
+p247
+sg99
+(lp248
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p313
-(lp314
-S'no'
-p315
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p316
+sg102
+Nsg103
+Nsg104
+(lp249
+sg106
+(lp250
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC$$ ../vlc"
-p317
-sg116
+p251
+sg110
 I00
-sS'commit'
-p318
-S'0.9.0'
-p319
-sa(dp320
+sg111
+Nsa(dp252
 g64
 I00
 sg65
-S'9102'
-p321
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp322
+sg67
+I00
+sg68
+Nsg69
+(lp253
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p323
-(lp324
+I00
+sg72
 S'VLC@37e886d113b8b567c15208579fb2f'
-p325
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p254
+sg74
+Nsg75
+(lp255
+sg77
+g19
+sg78
 S'0.9.1'
-p326
-sS'build'
-p327
+p256
+sg80
+S'vlc-android'
+p257
+sg82
+(lp258
+sg84
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
-p328
+p259
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p329
-S'vlc-android'
-p330
-sS'forcevercode'
-p331
+I9102
+sg87
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp260
+sg90
+Nsg95
 I00
-sg100
+sg96
 I00
+sg97
+S'0.9.1'
+p261
+sg99
+(lp262
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p332
-(lp333
-S'no'
-p334
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p335
+sg102
+Nsg103
+Nsg104
+(lp263
+sg106
+(lp264
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC$$ ../vlc"
-p336
-sg116
+p265
+sg110
 I00
-sS'commit'
-p337
-S'0.9.1'
-p338
-sa(dp339
+sg111
+Nsa(dp266
 g64
 I00
 sg65
-S'9104'
-p340
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp341
+sg67
+I00
+sg68
+Nsg69
+(lp267
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p342
-(lp343
+I00
+sg72
 S'VLC@37e886d113b8b567c15208579fb2f'
-p344
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p268
+sg74
+Nsg75
+(lp269
+sg77
+g19
+sg78
 S'0.9.1'
-p345
-sS'build'
-p346
+p270
+sg80
+S'vlc-android'
+p271
+sg82
+(lp272
+sg84
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
-p347
+p273
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p348
-S'vlc-android'
-p349
-sS'forcevercode'
-p350
+I9104
+sg87
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp274
+sg90
+Nsg95
 I00
-sg100
+sg96
 I00
+sg97
+S'0.9.1'
+p275
+sg99
+(lp276
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p351
-(lp352
-S'no'
-p353
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p354
+sg102
+Nsg103
+Nsg104
+(lp277
+sg106
+(lp278
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC$$ ../vlc"
-p355
-sg116
+p279
+sg110
 I00
-sS'commit'
-p356
-S'0.9.1'
-p357
-sa(dp358
+sg111
+Nsa(dp280
 g64
 I00
 sg65
-S'9502'
-p359
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp360
+sg67
+I00
+sg68
+Nsg69
+(lp281
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p361
-(lp362
+I00
+sg72
 S'VLC@052600173f376ff58ff04d53746961a2'
-p363
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p282
+sg74
+Nsg75
+(lp283
+sg77
+g19
+sg78
 S'0.9.5'
-p364
-sS'build'
-p365
+p284
+sg80
+S'vlc-android'
+p285
+sg82
+(lp286
+sg84
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
-p366
+p287
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p367
-S'vlc-android'
-p368
-sS'forcevercode'
-p369
+I9502
+sg87
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp288
+sg90
+Nsg95
 I00
-sS'disable'
-p370
+sg96
 S"can't download gmp"
-p371
+p289
+sg97
+S'0.9.5'
+p290
+sg99
+(lp291
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p372
-(lp373
-S'no'
-p374
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p375
+sg102
+Nsg103
+Nsg104
+(lp292
+sg106
+(lp293
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC$$ ../vlc"
-p376
-sg116
+p294
+sg110
 I00
-sS'commit'
-p377
-S'0.9.5'
-p378
-sa(dp379
+sg111
+Nsa(dp295
 g64
 I00
 sg65
-S'9504'
-p380
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp381
+sg67
+I00
+sg68
+Nsg69
+(lp296
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p382
-(lp383
+I00
+sg72
 S'VLC@052600173f376ff58ff04d53746961a2'
-p384
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p297
+sg74
+Nsg75
+(lp298
+sg77
+g19
+sg78
 S'0.9.5'
-p385
-sS'build'
-p386
+p299
+sg80
+S'vlc-android'
+p300
+sg82
+(lp301
+sg84
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
-p387
+p302
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p388
-S'vlc-android'
-p389
-sS'forcevercode'
-p390
+I9504
+sg87
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp303
+sg90
+Nsg95
 I00
-sS'disable'
-p391
+sg96
 S"can't download gmp"
-p392
+p304
+sg97
+S'0.9.5'
+p305
+sg99
+(lp306
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p393
-(lp394
-S'no'
-p395
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p396
+sg102
+Nsg103
+Nsg104
+(lp307
+sg106
+(lp308
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC$$ ../vlc"
-p397
-sg116
+p309
+sg110
 I00
-sS'commit'
-p398
-S'0.9.5'
-p399
-sa(dp400
+sg111
+Nsa(dp310
 g64
 I00
 sg65
-S'9602'
-p401
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp402
+sg67
+I00
+sg68
+Nsg69
+(lp311
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p403
-(lp404
+I00
+sg72
 S'VLC-2.2@27f4799'
-p405
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p312
+sg74
+Nsg75
+(lp313
+sg77
+g19
+sg78
 S'0.9.6'
-p406
-sS'build'
-p407
+p314
+sg80
+S'vlc-android'
+p315
+sg82
+(lp316
+sg84
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
-p408
+p317
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p409
-S'vlc-android'
-p410
-sS'forcevercode'
-p411
+I9602
+sg87
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp318
+sg90
+Nsg95
 I00
-sg100
+sg96
 I00
+sg97
+S'0.9.6'
+p319
+sg99
+(lp320
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p412
-(lp413
-S'no'
-p414
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p415
+sg102
+Nsg103
+Nsg104
+(lp321
+sg106
+(lp322
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p416
-sg116
+p323
+sg110
 I00
-sS'commit'
-p417
-S'0.9.6'
-p418
-sa(dp419
+sg111
+Nsa(dp324
 g64
 I00
 sg65
-S'9604'
-p420
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp421
+sg67
+I00
+sg68
+Nsg69
+(lp325
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p422
-(lp423
+I00
+sg72
 S'VLC-2.2@27f4799'
-p424
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p326
+sg74
+Nsg75
+(lp327
+sg77
+g19
+sg78
 S'0.9.6'
-p425
-sS'build'
-p426
-S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
-p427
-sg86
-g87
-sg88
-I00
-sS'subdir'
-p428
+p328
+sg80
 S'vlc-android'
-p429
-sS'forcevercode'
-p430
+p329
+sg82
+(lp330
+sg84
+S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
+p331
+sg86
+I9604
+sg87
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp332
+sg90
+Nsg95
 I00
-sg100
+sg96
 I00
+sg97
+S'0.9.6'
+p333
+sg99
+(lp334
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p431
-(lp432
-S'no'
-p433
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p434
+sg102
+Nsg103
+Nsg104
+(lp335
+sg106
+(lp336
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p435
-sg116
+p337
+sg110
 I00
-sS'commit'
-p436
-S'0.9.6'
-p437
-sa(dp438
+sg111
+Nsa(dp338
 g64
 I00
 sg65
-S'9702'
-p439
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp440
+sg67
+I00
+sg68
+Nsg69
+(lp339
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p441
-(lp442
+I00
+sg72
 S'VLC-2.2@9e1c6ff'
-p443
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p340
+sg74
+Nsg75
+(lp341
+sg77
+g19
+sg78
 S'0.9.7'
-p444
-sS'build'
-p445
+p342
+sg80
+S'vlc-android'
+p343
+sg82
+(lp344
+sg84
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
-p446
+p345
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p447
-S'vlc-android'
-p448
-sS'forcevercode'
-p449
+I9702
+sg87
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp346
+sg90
+Nsg95
 I00
-sg100
+sg96
 I00
+sg97
+S'0.9.7'
+p347
+sg99
+(lp348
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p450
-(lp451
-S'no'
-p452
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p453
+sg102
+Nsg103
+Nsg104
+(lp349
+sg106
+(lp350
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p454
-sg116
+p351
+sg110
 I00
-sS'commit'
-p455
-S'0.9.7'
-p456
-sa(dp457
+sg111
+Nsa(dp352
 g64
 I00
 sg65
-S'9704'
-p458
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp459
+sg67
+I00
+sg68
+Nsg69
+(lp353
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p460
-(lp461
+I00
+sg72
 S'VLC-2.2@9e1c6ff'
-p462
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p354
+sg74
+Nsg75
+(lp355
+sg77
+g19
+sg78
 S'0.9.7'
-p463
-sS'build'
-p464
+p356
+sg80
+S'vlc-android'
+p357
+sg82
+(lp358
+sg84
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
-p465
+p359
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p466
-S'vlc-android'
-p467
-sS'forcevercode'
-p468
+I9704
+sg87
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp360
+sg90
+Nsg95
 I00
-sg100
+sg96
 I00
+sg97
+S'0.9.7'
+p361
+sg99
+(lp362
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p469
-(lp470
-S'no'
-p471
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p472
+sg102
+Nsg103
+Nsg104
+(lp363
+sg106
+(lp364
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p473
-sg116
+p365
+sg110
 I00
-sS'commit'
-p474
-S'0.9.7'
-p475
-sa(dp476
+sg111
+Nsa(dp366
 g64
 I00
 sg65
-S'9711'
-p477
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp478
+sg67
+I00
+sg68
+Nsg69
+(lp367
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p479
-(lp480
+I00
+sg72
 S'VLC-2.2@57cd36b'
-p481
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p368
+sg74
+Nsg75
+(lp369
+sg77
+g19
+sg78
 S'0.9.7.1'
-p482
-sS'build'
-p483
+p370
+sg80
+S'vlc-android'
+p371
+sg82
+(lp372
+sg84
 S'cd ../ && ANDROID_ABI=mips ./compile.sh release'
-p484
+p373
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p485
-S'vlc-android'
-p486
-sS'forcevercode'
-p487
+I9711
+sg87
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp374
+sg90
+Nsg95
 I00
-sS'disable'
-p488
+sg96
 S'build fails'
-p489
+p375
+sg97
+S'0.9.7.1'
+p376
+sg99
+(lp377
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p490
-(lp491
-S'no'
-p492
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p493
+sg102
+Nsg103
+Nsg104
+(lp378
+sg106
+(lp379
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p494
-sg116
+p380
+sg110
 I00
-sS'commit'
-p495
-S'0.9.7.1'
-p496
-sa(dp497
+sg111
+Nsa(dp381
 g64
 I00
 sg65
-S'9712'
-p498
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp499
+sg67
+I00
+sg68
+Nsg69
+(lp382
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p500
-(lp501
+I00
+sg72
 S'VLC-2.2@57cd36b'
-p502
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p383
+sg74
+Nsg75
+(lp384
+sg77
+g19
+sg78
 S'0.9.7.1'
-p503
-sS'build'
-p504
+p385
+sg80
+S'vlc-android'
+p386
+sg82
+(lp387
+sg84
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
-p505
+p388
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p506
-S'vlc-android'
-p507
-sS'forcevercode'
-p508
+I9712
+sg87
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp389
+sg90
+Nsg95
 I00
-sg100
+sg96
 I00
+sg97
+S'0.9.7.1'
+p390
+sg99
+(lp391
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p509
-(lp510
-S'no'
-p511
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p512
+sg102
+Nsg103
+Nsg104
+(lp392
+sg106
+(lp393
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p513
-sg116
+p394
+sg110
 I00
-sS'commit'
-p514
-S'0.9.7.1'
-p515
-sa(dp516
+sg111
+Nsa(dp395
 g64
 I00
 sg65
-S'9714'
-p517
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp518
+sg67
+I00
+sg68
+Nsg69
+(lp396
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p519
-(lp520
+I00
+sg72
 S'VLC-2.2@57cd36b'
-p521
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p397
+sg74
+Nsg75
+(lp398
+sg77
+g19
+sg78
 S'0.9.7.1'
-p522
-sS'build'
-p523
+p399
+sg80
+S'vlc-android'
+p400
+sg82
+(lp401
+sg84
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
-p524
+p402
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p525
-S'vlc-android'
-p526
-sS'forcevercode'
-p527
+I9714
+sg87
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp403
+sg90
+Nsg95
 I00
-sg100
+sg96
 I00
+sg97
+S'0.9.7.1'
+p404
+sg99
+(lp405
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p528
-(lp529
-S'no'
-p530
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p531
+sg102
+Nsg103
+Nsg104
+(lp406
+sg106
+(lp407
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p532
-sg116
+p408
+sg110
 I00
-sS'commit'
-p533
-S'0.9.7.1'
-p534
-sa(dp535
+sg111
+Nsa(dp409
 g64
 I00
 sg65
-S'9802'
-p536
-sg283
 I00
-sg68
+sg66
+I00
+sg67
 I00
-sg69
-(lp537
+sg68
+Nsg69
+(lp410
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p538
-(lp539
+I00
+sg72
 S'VLC-2.2@f2db364'
-p540
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p411
+sg74
+Nsg75
+(lp412
+sg77
+g19
+sg78
 S'0.9.8'
-p541
-sS'build'
-p542
+p413
+sg80
+S'vlc-android'
+p414
+sg82
+(lp415
+sg84
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
-p543
+p416
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p544
-S'vlc-android'
-p545
-sS'forcevercode'
-p546
+I9802
+sg87
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp417
+sg90
+Nsg95
 I00
-sg100
+sg96
 I00
+sg97
+S'0.9.8'
+p418
+sg99
+(lp419
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p547
-(lp548
-S'no'
-p549
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p550
+sg102
+Nsg103
+Nsg104
+(lp420
+sg106
+(lp421
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p551
-sg116
+p422
+sg110
 I00
-sS'commit'
-p552
-S'0.9.8'
-p553
-sa(dp554
+sg111
+Nsa(dp423
 g64
 I00
 sg65
-S'9803'
-p555
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp556
+sg67
+I00
+sg68
+Nsg69
+(lp424
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p557
-(lp558
+I00
+sg72
 S'VLC-2.2@f2db364'
-p559
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p425
+sg74
+Nsg75
+(lp426
+sg77
+g19
+sg78
 S'0.9.8'
-p560
-sS'build'
-p561
+p427
+sg80
+S'vlc-android'
+p428
+sg82
+(lp429
+sg84
 S'cd ../ && ANDROID_ABI=armeabi ./compile.sh release'
-p562
+p430
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p563
-S'vlc-android'
-p564
-sS'forcevercode'
-p565
+I9803
+sg87
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp431
+sg90
+Nsg95
 I00
-sg100
+sg96
 I00
+sg97
+S'0.9.8'
+p432
+sg99
+(lp433
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p566
-(lp567
-S'no'
-p568
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p569
+sg102
+Nsg103
+Nsg104
+(lp434
+sg106
+(lp435
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p570
-sg116
+p436
+sg110
 I00
-sS'commit'
-p571
-S'0.9.8'
-p572
-sa(dp573
+sg111
+Nsa(dp437
 g64
 I00
 sg65
-S'9804'
-p574
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp575
+sg67
+I00
+sg68
+Nsg69
+(lp438
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p576
-(lp577
+I00
+sg72
 S'VLC-2.2@f2db364'
-p578
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p439
+sg74
+Nsg75
+(lp440
+sg77
+g19
+sg78
 S'0.9.8'
-p579
-sS'build'
-p580
+p441
+sg80
+S'vlc-android'
+p442
+sg82
+(lp443
+sg84
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
-p581
+p444
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p582
-S'vlc-android'
-p583
-sS'forcevercode'
-p584
+I9804
+sg87
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp445
+sg90
+Nsg95
 I00
-sg100
+sg96
 I00
+sg97
+S'0.9.8'
+p446
+sg99
+(lp447
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p585
-(lp586
-S'no'
-p587
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p588
+sg102
+Nsg103
+Nsg104
+(lp448
+sg106
+(lp449
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p589
-sg116
+p450
+sg110
 I00
-sS'commit'
-p590
-S'0.9.8'
-p591
-sa(dp592
+sg111
+Nsa(dp451
 g64
 I00
 sg65
-S'9902'
-p593
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp594
+sg67
+I00
+sg68
+Nsg69
+(lp452
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p595
-(lp596
+I00
+sg72
 S'VLC-2.2@e731dc23a4f8ef6782c7cc2236bbbf41c034dad1'
-p597
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p453
+sg74
+Nsg75
+(lp454
+sg77
+g19
+sg78
 S'0.9.9'
-p598
-sS'build'
-p599
+p455
+sg80
+S'vlc-android'
+p456
+sg82
+(lp457
+sg84
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
-p600
+p458
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p601
-S'vlc-android'
-p602
-sS'forcevercode'
-p603
+I9902
+sg87
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp459
+sg90
+Nsg95
 I00
-sg100
+sg96
 I00
+sg97
+S'0.9.9'
+p460
+sg99
+(lp461
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p604
-(lp605
-S'no'
-p606
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p607
+sg102
+Nsg103
+Nsg104
+(lp462
+sg106
+(lp463
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p608
-sg116
+p464
+sg110
 I00
-sS'commit'
-p609
-S'0.9.9'
-p610
-sa(dp611
+sg111
+Nsa(dp465
 g64
 I00
 sg65
-S'9903'
-p612
-sg283
 I00
-sg68
+sg66
+I00
+sg67
 I00
-sg69
-(lp613
+sg68
+Nsg69
+(lp466
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p614
-(lp615
+I00
+sg72
 S'VLC-2.2@e731dc23a4f8ef6782c7cc2236bbbf41c034dad1'
-p616
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p467
+sg74
+Nsg75
+(lp468
+sg77
+g19
+sg78
 S'0.9.9'
-p617
-sS'build'
-p618
+p469
+sg80
+S'vlc-android'
+p470
+sg82
+(lp471
+sg84
 S'cd ../ && ANDROID_ABI=armeabi ./compile.sh release'
-p619
+p472
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p620
-S'vlc-android'
-p621
-sS'forcevercode'
-p622
+I9903
+sg87
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp473
+sg90
+Nsg95
 I00
-sg100
+sg96
 I00
+sg97
+S'0.9.9'
+p474
+sg99
+(lp475
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p623
-(lp624
-S'no'
-p625
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p626
+sg102
+Nsg103
+Nsg104
+(lp476
+sg106
+(lp477
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p627
-sg116
+p478
+sg110
 I00
-sS'commit'
-p628
-S'0.9.9'
-p629
-sa(dp630
+sg111
+Nsa(dp479
 g64
 I00
 sg65
-S'9904'
-p631
-sg283
 I00
-sg68
+sg66
+I00
+sg67
 I00
-sg69
-(lp632
+sg68
+Nsg69
+(lp480
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p633
-(lp634
+I00
+sg72
 S'VLC-2.2@e731dc23a4f8ef6782c7cc2236bbbf41c034dad1'
-p635
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p481
+sg74
+Nsg75
+(lp482
+sg77
+g19
+sg78
 S'0.9.9'
-p636
-sS'build'
-p637
+p483
+sg80
+S'vlc-android'
+p484
+sg82
+(lp485
+sg84
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
-p638
+p486
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p639
-S'vlc-android'
-p640
-sS'forcevercode'
-p641
+I9904
+sg87
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp487
+sg90
+Nsg95
 I00
-sg100
+sg96
 I00
+sg97
+S'0.9.9'
+p488
+sg99
+(lp489
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p642
-(lp643
-S'no'
-p644
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p645
+sg102
+Nsg103
+Nsg104
+(lp490
+sg106
+(lp491
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p646
-sg116
+p492
+sg110
 I00
-sS'commit'
-p647
-S'0.9.9'
-p648
-sa(dp649
+sg111
+Nsa(dp493
 g64
 I00
 sg65
-S'10002'
-p650
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp651
+sg67
+I00
+sg68
+Nsg69
+(lp494
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p652
-(lp653
+I00
+sg72
 S'VLC-2.2@e33e5de'
-p654
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p495
+sg74
+Nsg75
+(lp496
+sg77
+g19
+sg78
 S'0.9.10'
-p655
-sS'build'
-p656
+p497
+sg80
+S'vlc-android'
+p498
+sg82
+(lp499
+sg84
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
-p657
+p500
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p658
-S'vlc-android'
-p659
-sS'forcevercode'
-p660
+I10002
+sg87
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp501
+sg90
+Nsg95
 I00
-sg100
+sg96
 I00
+sg97
+S'0.9.10'
+p502
+sg99
+(lp503
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p661
-(lp662
-S'no'
-p663
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p664
+sg102
+Nsg103
+Nsg104
+(lp504
+sg106
+(lp505
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p665
-sg116
+p506
+sg110
 I00
-sS'commit'
-p666
-S'0.9.10'
-p667
-sa(dp668
+sg111
+Nsa(dp507
 g64
 I00
 sg65
-S'10003'
-p669
-sg283
 I00
-sg68
+sg66
+I00
+sg67
 I00
-sg69
-(lp670
+sg68
+Nsg69
+(lp508
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p671
-(lp672
+I00
+sg72
 S'VLC-2.2@e33e5de'
-p673
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p509
+sg74
+Nsg75
+(lp510
+sg77
+g19
+sg78
 S'0.9.10'
-p674
-sS'build'
-p675
+p511
+sg80
+S'vlc-android'
+p512
+sg82
+(lp513
+sg84
 S'cd ../ && ANDROID_ABI=armeabi ./compile.sh release'
-p676
+p514
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p677
-S'vlc-android'
-p678
-sS'forcevercode'
-p679
+I10003
+sg87
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp515
+sg90
+Nsg95
 I00
-sg100
+sg96
 I00
+sg97
+S'0.9.10'
+p516
+sg99
+(lp517
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p680
-(lp681
-S'no'
-p682
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p683
+sg102
+Nsg103
+Nsg104
+(lp518
+sg106
+(lp519
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p684
-sg116
+p520
+sg110
 I00
-sS'commit'
-p685
-S'0.9.10'
-p686
-sa(dp687
+sg111
+Nsa(dp521
 g64
 I00
 sg65
-S'10004'
-p688
-sg283
 I00
-sg68
+sg66
+I00
+sg67
 I00
-sg69
-(lp689
+sg68
+Nsg69
+(lp522
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p690
-(lp691
+I00
+sg72
 S'VLC-2.2@e33e5de'
-p692
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p523
+sg74
+Nsg75
+(lp524
+sg77
+g19
+sg78
 S'0.9.10'
-p693
-sS'build'
-p694
+p525
+sg80
+S'vlc-android'
+p526
+sg82
+(lp527
+sg84
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
-p695
+p528
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p696
-S'vlc-android'
-p697
-sS'forcevercode'
-p698
+I10004
+sg87
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp529
+sg90
+Nsg95
 I00
-sg100
+sg96
 I00
+sg97
+S'0.9.10'
+p530
+sg99
+(lp531
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p699
-(lp700
-S'no'
-p701
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p702
+sg102
+Nsg103
+Nsg104
+(lp532
+sg106
+(lp533
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p703
-sg116
+p534
+sg110
 I00
-sS'commit'
-p704
-S'0.9.10'
-p705
-sa(dp706
+sg111
+Nsa(dp535
 g64
 I00
 sg65
-S'10006'
-p707
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp708
+sg67
+I00
+sg68
+Nsg69
+(lp536
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p709
-(lp710
+I00
+sg72
 S'VLC-2.2@036010e'
-p711
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p537
+sg74
+Nsg75
+(lp538
+sg77
+g19
+sg78
 S'1.0.0'
-p712
-sS'build'
-p713
+p539
+sg80
+S'vlc-android'
+p540
+sg82
+(lp541
+sg84
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
-p714
+p542
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p715
-S'vlc-android'
-p716
-sS'forcevercode'
-p717
+I10006
+sg87
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp543
+sg90
+Nsg95
 I00
-sS'disable'
-p718
+sg96
 S"doesn't build"
-p719
+p544
+sg97
+S'1.0.0'
+p545
+sg99
+(lp546
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p720
-(lp721
-S'no'
-p722
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p723
+sg102
+Nsg103
+Nsg104
+(lp547
+sg106
+(lp548
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p724
-sg116
+p549
+sg110
 I00
-sS'commit'
-p725
-S'1.0.0'
-p726
-sa(dp727
+sg111
+Nsa(dp550
 g64
 I00
 sg65
-S'10007'
-p728
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp729
+sg67
+I00
+sg68
+Nsg69
+(lp551
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p730
-(lp731
+I00
+sg72
 S'VLC-2.2@036010e'
-p732
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p552
+sg74
+Nsg75
+(lp553
+sg77
+g19
+sg78
 S'1.0.0'
-p733
-sS'build'
-p734
+p554
+sg80
+S'vlc-android'
+p555
+sg82
+(lp556
+sg84
 S'cd ../ && ANDROID_ABI=armeabi ./compile.sh release'
-p735
+p557
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p736
-S'vlc-android'
-p737
-sS'forcevercode'
-p738
+I10007
+sg87
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp558
+sg90
+Nsg95
 I00
-sS'disable'
-p739
+sg96
 S"doesn't build"
-p740
+p559
+sg97
+S'1.0.0'
+p560
+sg99
+(lp561
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p741
-(lp742
-S'no'
-p743
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p744
+sg102
+Nsg103
+Nsg104
+(lp562
+sg106
+(lp563
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p745
-sg116
+p564
+sg110
 I00
-sS'commit'
-p746
-S'1.0.0'
-p747
-sa(dp748
+sg111
+Nsa(dp565
 g64
 I00
 sg65
-S'10008'
-p749
-sg283
 I00
-sg68
+sg66
+I00
+sg67
 I00
-sg69
-(lp750
+sg68
+Nsg69
+(lp566
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p751
-(lp752
+I00
+sg72
 S'VLC-2.2@036010e'
-p753
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p567
+sg74
+Nsg75
+(lp568
+sg77
+g19
+sg78
 S'1.0.0'
-p754
-sS'build'
-p755
+p569
+sg80
+S'vlc-android'
+p570
+sg82
+(lp571
+sg84
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
-p756
+p572
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p757
-S'vlc-android'
-p758
-sS'forcevercode'
-p759
+I10008
+sg87
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp573
+sg90
+Nsg95
 I00
-sS'disable'
-p760
+sg96
 S"doesn't build"
-p761
+p574
+sg97
+S'1.0.0'
+p575
+sg99
+(lp576
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p762
-(lp763
-S'no'
-p764
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p765
+sg102
+Nsg103
+Nsg104
+(lp577
+sg106
+(lp578
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p766
-sg116
+p579
+sg110
 I00
-sS'commit'
-p767
-S'1.0.0'
-p768
-sa(dp769
+sg111
+Nsa(dp580
 g64
 I00
 sg65
-S'10102'
-p770
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp771
+sg67
+I00
+sg68
+Nsg69
+(lp581
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p772
-(lp773
+I00
+sg72
 S'VLC-2.2@59409d5'
-p774
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p582
+sg74
+Nsg75
+(lp583
+sg77
+g19
+sg78
 S'1.0.1'
-p775
-sS'build'
-p776
+p584
+sg80
+S'vlc-android'
+p585
+sg82
+(lp586
+sg84
 S'cd ../ && ANDROID_ABI=x86 ./compile.sh release'
-p777
+p587
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p778
-S'vlc-android'
-p779
-sS'forcevercode'
-p780
+I10102
+sg87
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp588
+sg90
+Nsg95
 I00
-sg100
+sg96
 I00
+sg97
+S'1.0.1'
+p589
+sg99
+(lp590
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p781
-(lp782
-S'no'
-p783
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p784
+sg102
+Nsg103
+Nsg104
+(lp591
+sg106
+(lp592
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p785
-sg116
+p593
+sg110
 I00
-sS'commit'
-p786
-S'1.0.1'
-p787
-sa(dp788
+sg111
+Nsa(dp594
 g64
 I00
 sg65
-S'10103'
-p789
-sg283
 I00
-sg68
+sg66
+I00
+sg67
 I00
-sg69
-(lp790
+sg68
+Nsg69
+(lp595
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p791
-(lp792
+I00
+sg72
 S'VLC-2.2@59409d5'
-p793
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p596
+sg74
+Nsg75
+(lp597
+sg77
+g19
+sg78
 S'1.0.1'
-p794
-sS'build'
-p795
+p598
+sg80
+S'vlc-android'
+p599
+sg82
+(lp600
+sg84
 S'cd ../ && ANDROID_ABI=armeabi ./compile.sh release'
-p796
+p601
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p797
-S'vlc-android'
-p798
-sS'forcevercode'
-p799
+I10103
+sg87
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp602
+sg90
+Nsg95
 I00
-sg100
+sg96
 I00
+sg97
+S'1.0.1'
+p603
+sg99
+(lp604
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p800
-(lp801
-S'no'
-p802
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p803
+sg102
+Nsg103
+Nsg104
+(lp605
+sg106
+(lp606
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p804
-sg116
+p607
+sg110
 I00
-sS'commit'
-p805
-S'1.0.1'
-p806
-sa(dp807
+sg111
+Nsa(dp608
 g64
 I00
 sg65
-S'10104'
-p808
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp809
+sg67
+I00
+sg68
+Nsg69
+(lp609
 sg71
-g72
-sg73
-g74
-sS'srclibs'
-p810
-(lp811
+I00
+sg72
 S'VLC-2.2@59409d5'
-p812
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p610
+sg74
+Nsg75
+(lp611
+sg77
+g19
+sg78
 S'1.0.1'
-p813
-sS'build'
-p814
+p612
+sg80
+S'vlc-android'
+p613
+sg82
+(lp614
+sg84
 S'cd ../ && ANDROID_ABI=armeabi-v7a ./compile.sh release'
-p815
+p615
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p816
-S'vlc-android'
-p817
-sS'forcevercode'
-p818
+I10104
+sg87
 I01
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp616
+sg90
+Nsg95
 I00
-sg100
+sg96
 I00
+sg97
+S'1.0.1'
+p617
+sg99
+(lp618
 sg101
-g20
-sg102
-g103
-sS'buildjni'
-p819
-(lp820
-S'no'
-p821
-asg107
-g108
-sg109
-Nsg110
-g111
-sg112
-Nsg113
 I00
-sS'prebuild'
-p822
+sg102
+Nsg103
+Nsg104
+(lp619
+sg106
+(lp620
+sg108
 S"sed -i '/ant/d' ../Makefile && ln -s vlc-android/$$VLC-2.2$$ ../vlc"
-p823
-sg116
+p621
+sg110
 I00
-sS'commit'
-p824
-S'1.0.1'
-p825
-sa(dp826
+sg111
+Nsa(dp622
 g64
 I00
 sg65
-S'1010303'
-p827
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp828
+sg67
+I00
+sg68
+Nsg69
+(lp623
 sg71
-g72
-sS'gradle'
-p829
-(lp830
 S'VanillaARMv6fpu'
-p831
-asS'srclibs'
-p832
-(lp833
+p624
+sg72
 S'VLC@a9b19e4'
-p834
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p625
+sg74
+Nsg75
+(lp626
+sg77
+g19
+sg78
 S'1.1.3'
-p835
-sS'build'
-p836
+p627
+sg80
+S'vlc-android'
+p628
+sg82
+(lp629
+sg84
 S'cd ../ && ./compile.sh -a "armeabi" --release'
-p837
+p630
 sg86
-g87
+I1010303
+sg87
+I00
 sg88
+(lp631
+sg90
+Nsg95
 I00
-sS'subdir'
-p838
-S'vlc-android'
-p839
-sS'forcevercode'
-p840
+sg96
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.1.3'
+p632
 sg99
-I00
-sg100
-I00
+(lp633
 sg101
-g20
+I00
 sg102
-g103
-sS'buildjni'
-p841
-(lp842
-S'no'
-p843
-asS'ndk'
-p844
 S'r10d'
-p845
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p846
+p634
+sg103
+Nsg104
+(lp635
+sg106
+(lp636
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p847
-sg116
+p637
+sg110
 I00
-sS'commit'
-p848
-S'1.1.3'
-p849
-sa(dp850
+sg111
+Nsa(dp638
 g64
 I00
 sg65
-S'1010304'
-p851
-sg283
 I00
-sg68
+sg66
+I00
+sg67
 I00
-sg69
-(lp852
+sg68
+Nsg69
+(lp639
 sg71
-g72
-sS'gradle'
-p853
-(lp854
 S'VanillaARMv7'
-p855
-asS'srclibs'
-p856
-(lp857
+p640
+sg72
 S'VLC@a9b19e4'
-p858
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p641
+sg74
+Nsg75
+(lp642
+sg77
+g19
+sg78
 S'1.1.3'
-p859
-sS'build'
-p860
+p643
+sg80
+S'vlc-android'
+p644
+sg82
+(lp645
+sg84
 S'cd ../ && ./compile.sh -a "armeabi-v7a" --release'
-p861
+p646
 sg86
-g87
+I1010304
+sg87
+I00
 sg88
+(lp647
+sg90
+Nsg95
 I00
-sS'subdir'
-p862
-S'vlc-android'
-p863
-sg840
+sg96
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.1.3'
+p648
 sg99
-I00
-sg100
-I00
+(lp649
 sg101
-g20
+I00
 sg102
-g103
-sS'buildjni'
-p864
-(lp865
-S'no'
-p866
-asS'ndk'
-p867
 S'r10d'
-p868
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p869
+p650
+sg103
+Nsg104
+(lp651
+sg106
+(lp652
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p870
-sg116
+p653
+sg110
 I00
-sS'commit'
-p871
-S'1.1.3'
-p872
-sa(dp873
+sg111
+Nsa(dp654
 g64
 I00
 sg65
-S'1010305'
-p874
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp875
+sg67
+I00
+sg68
+Nsg69
+(lp655
 sg71
-g72
-sS'gradle'
-p876
-(lp877
 S'VanillaX86'
-p878
-asS'srclibs'
-p879
-(lp880
+p656
+sg72
 S'VLC@a9b19e4'
-p881
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p657
+sg74
+Nsg75
+(lp658
+sg77
+g19
+sg78
 S'1.1.3'
-p882
-sS'build'
-p883
+p659
+sg80
+S'vlc-android'
+p660
+sg82
+(lp661
+sg84
 S'cd ../ && ./compile.sh -a "x86" --release'
-p884
+p662
 sg86
-g87
+I1010305
+sg87
+I00
 sg88
+(lp663
+sg90
+Nsg95
 I00
-sS'subdir'
-p885
-S'vlc-android'
-p886
-sg840
+sg96
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.1.3'
+p664
 sg99
-I00
-sg100
-I00
+(lp665
 sg101
-g20
+I00
 sg102
-g103
-sS'buildjni'
-p887
-(lp888
-S'no'
-p889
-asS'ndk'
-p890
 S'r10d'
-p891
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p892
+p666
+sg103
+Nsg104
+(lp667
+sg106
+(lp668
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p893
-sg116
+p669
+sg110
 I00
-sS'commit'
-p894
-S'1.1.3'
-p895
-sa(dp896
+sg111
+Nsa(dp670
 g64
 I00
 sg65
-S'1010503'
-p897
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp898
+sg67
+I00
+sg68
+Nsg69
+(lp671
 sg71
-g72
-sS'gradle'
-p899
-(lp900
 S'VanillaARMv6fpu'
-p901
-asS'srclibs'
-p902
-(lp903
+p672
+sg72
 S'VLC@e6b4585'
-p904
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p673
+sg74
+Nsg75
+(lp674
+sg77
+g19
+sg78
 S'1.1.5'
-p905
-sS'build'
-p906
+p675
+sg80
+S'vlc-android'
+p676
+sg82
+(lp677
+sg84
 S'cd ../ && ./compile.sh -a "armeabi" --release'
-p907
+p678
 sg86
-g87
+I1010503
+sg87
+I00
 sg88
+(lp679
+sg90
+Nsg95
 I00
-sS'subdir'
-p908
-S'vlc-android'
-p909
-sg840
+sg96
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.1.5'
+p680
 sg99
-I00
-sg100
-I00
+(lp681
 sg101
-g20
+I00
 sg102
-g103
-sS'buildjni'
-p910
-(lp911
-S'no'
-p912
-asS'ndk'
-p913
 S'r10d'
-p914
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p915
+p682
+sg103
+Nsg104
+(lp683
+sg106
+(lp684
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p916
-sg116
+p685
+sg110
 I00
-sS'commit'
-p917
-S'1.1.5'
-p918
-sa(dp919
+sg111
+Nsa(dp686
 g64
 I00
 sg65
-S'1010504'
-p920
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp921
+sg67
+I00
+sg68
+Nsg69
+(lp687
 sg71
-g72
-sS'gradle'
-p922
-(lp923
 S'VanillaARMv7'
-p924
-asS'srclibs'
-p925
-(lp926
+p688
+sg72
 S'VLC@e6b4585'
-p927
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p689
+sg74
+Nsg75
+(lp690
+sg77
+g19
+sg78
 S'1.1.5'
-p928
-sS'build'
-p929
+p691
+sg80
+S'vlc-android'
+p692
+sg82
+(lp693
+sg84
 S'cd ../ && ./compile.sh -a "armeabi-v7a" --release'
-p930
+p694
 sg86
-g87
+I1010504
+sg87
+I00
 sg88
+(lp695
+sg90
+Nsg95
 I00
-sS'subdir'
-p931
-S'vlc-android'
-p932
-sg840
+sg96
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.1.5'
+p696
 sg99
-I00
-sg100
-I00
+(lp697
 sg101
-g20
+I00
 sg102
-g103
-sS'buildjni'
-p933
-(lp934
-S'no'
-p935
-asS'ndk'
-p936
 S'r10d'
-p937
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p938
+p698
+sg103
+Nsg104
+(lp699
+sg106
+(lp700
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p939
-sg116
+p701
+sg110
 I00
-sS'commit'
-p940
-S'1.1.5'
-p941
-sa(dp942
+sg111
+Nsa(dp702
 g64
 I00
 sg65
-S'1010505'
-p943
-sg283
 I00
-sg68
+sg66
+I00
+sg67
 I00
-sg69
-(lp944
+sg68
+Nsg69
+(lp703
 sg71
-g72
-sS'gradle'
-p945
-(lp946
 S'VanillaX86'
-p947
-asS'srclibs'
-p948
-(lp949
+p704
+sg72
 S'VLC@e6b4585'
-p950
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p705
+sg74
+Nsg75
+(lp706
+sg77
+g19
+sg78
 S'1.1.5'
-p951
-sS'build'
-p952
+p707
+sg80
+S'vlc-android'
+p708
+sg82
+(lp709
+sg84
 S'cd ../ && ./compile.sh -a "x86" --release'
-p953
+p710
 sg86
-g87
-sg88
-I00
-sS'subdir'
-p954
-S'vlc-android'
-p955
-sg840
+I1010505
+sg87
 I00
-sg92
-g93
-sg200
-g201
-sg99
+sg88
+(lp711
+sg90
+Nsg95
 I00
-sg100
+sg96
 I00
+sg97
+S'1.1.5'
+p712
+sg99
+(lp713
 sg101
-g20
+I00
 sg102
-g103
-sS'buildjni'
-p956
-(lp957
-S'no'
-p958
-asS'ndk'
-p959
 S'r10d'
-p960
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p961
+p714
+sg103
+Nsg104
+(lp715
+sg106
+(lp716
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p962
-sg116
+p717
+sg110
 I00
-sS'commit'
-p963
-S'1.1.5'
-p964
-sa(dp965
+sg111
+Nsa(dp718
 g64
 I00
 sg65
-S'1010603'
-p966
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp967
+sg67
+I00
+sg68
+Nsg69
+(lp719
 sg71
-g72
-sS'gradle'
-p968
-(lp969
 S'VanillaARMv6fpu'
-p970
-asS'srclibs'
-p971
-(lp972
+p720
+sg72
 S'VLC@551b670'
-p973
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p721
+sg74
+Nsg75
+(lp722
+sg77
+g19
+sg78
 S'1.1.6'
-p974
-sS'build'
-p975
+p723
+sg80
+S'vlc-android'
+p724
+sg82
+(lp725
+sg84
 S'cd ../ && ./compile.sh -a "armeabi" --release'
-p976
+p726
 sg86
-g87
+I1010603
+sg87
+I00
 sg88
+(lp727
+sg90
+Nsg95
 I00
-sS'subdir'
-p977
-S'vlc-android'
-p978
-sg840
+sg96
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.1.6'
+p728
 sg99
-I00
-sg100
-I00
+(lp729
 sg101
-g20
+I00
 sg102
-g103
-sS'buildjni'
-p979
-(lp980
-S'no'
-p981
-asS'ndk'
-p982
 S'r10d'
-p983
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p984
+p730
+sg103
+Nsg104
+(lp731
+sg106
+(lp732
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p985
-sg116
+p733
+sg110
 I00
-sS'commit'
-p986
-S'1.1.6'
-p987
-sa(dp988
+sg111
+Nsa(dp734
 g64
 I00
 sg65
-S'1010604'
-p989
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp990
+sg67
+I00
+sg68
+Nsg69
+(lp735
 sg71
-g72
-sS'gradle'
-p991
-(lp992
 S'VanillaARMv7'
-p993
-asS'srclibs'
-p994
-(lp995
+p736
+sg72
 S'VLC@551b670'
-p996
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p737
+sg74
+Nsg75
+(lp738
+sg77
+g19
+sg78
 S'1.1.6'
-p997
-sS'build'
-p998
+p739
+sg80
+S'vlc-android'
+p740
+sg82
+(lp741
+sg84
 S'cd ../ && ./compile.sh -a "armeabi-v7a" --release'
-p999
+p742
 sg86
-g87
+I1010604
+sg87
+I00
 sg88
+(lp743
+sg90
+Nsg95
 I00
-sS'subdir'
-p1000
-S'vlc-android'
-p1001
-sg840
+sg96
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.1.6'
+p744
 sg99
-I00
-sg100
-I00
+(lp745
 sg101
-g20
+I00
 sg102
-g103
-sS'buildjni'
-p1002
-(lp1003
-S'no'
-p1004
-asS'ndk'
-p1005
 S'r10d'
-p1006
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1007
+p746
+sg103
+Nsg104
+(lp747
+sg106
+(lp748
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1008
-sg116
+p749
+sg110
 I00
-sS'commit'
-p1009
-S'1.1.6'
-p1010
-sa(dp1011
+sg111
+Nsa(dp750
 g64
 I00
 sg65
-S'1010605'
-p1012
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp1013
+sg67
+I00
+sg68
+Nsg69
+(lp751
 sg71
-g72
-sS'gradle'
-p1014
-(lp1015
 S'VanillaX86'
-p1016
-asS'srclibs'
-p1017
-(lp1018
+p752
+sg72
 S'VLC@551b670'
-p1019
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p753
+sg74
+Nsg75
+(lp754
+sg77
+g19
+sg78
 S'1.1.6'
-p1020
-sS'build'
-p1021
+p755
+sg80
+S'vlc-android'
+p756
+sg82
+(lp757
+sg84
 S'cd ../ && ./compile.sh -a "x86" --release'
-p1022
+p758
 sg86
-g87
+I1010605
+sg87
+I00
 sg88
+(lp759
+sg90
+Nsg95
 I00
-sS'subdir'
-p1023
-S'vlc-android'
-p1024
-sg840
+sg96
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.1.6'
+p760
 sg99
-I00
-sg100
-I00
+(lp761
 sg101
-g20
+I00
 sg102
-g103
-sS'buildjni'
-p1025
-(lp1026
-S'no'
-p1027
-asS'ndk'
-p1028
 S'r10d'
-p1029
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1030
+p762
+sg103
+Nsg104
+(lp763
+sg106
+(lp764
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1031
-sg116
+p765
+sg110
 I00
-sS'commit'
-p1032
-S'1.1.6'
-p1033
-sa(dp1034
+sg111
+Nsa(dp766
 g64
 I00
 sg65
-S'1020003'
-p1035
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp1036
+sg67
+I00
+sg68
+Nsg69
+(lp767
 sg71
-g72
-sS'gradle'
-p1037
-(lp1038
 S'VanillaARMv6fpu'
-p1039
-asS'srclibs'
-p1040
-(lp1041
+p768
+sg72
 S'VLC@23c8d86'
-p1042
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p769
+sg74
+Nsg75
+(lp770
+sg77
+g19
+sg78
 S'1.2.0'
-p1043
-sS'build'
-p1044
+p771
+sg80
+S'vlc-android'
+p772
+sg82
+(lp773
+sg84
 S'cd ../ && ./compile.sh -a "armeabi" --release'
-p1045
+p774
 sg86
-g87
+I1020003
+sg87
+I00
 sg88
+(lp775
+sg90
+Nsg95
 I00
-sS'subdir'
-p1046
-S'vlc-android'
-p1047
-sg840
+sg96
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.0'
+p776
 sg99
-I00
-sg100
-I00
+(lp777
 sg101
-g20
+I00
 sg102
-g103
-sS'buildjni'
-p1048
-(lp1049
-S'no'
-p1050
-asS'ndk'
-p1051
 S'r10d'
-p1052
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1053
+p778
+sg103
+Nsg104
+(lp779
+sg106
+(lp780
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1054
-sg116
+p781
+sg110
 I00
-sS'commit'
-p1055
-S'1.2.0'
-p1056
-sa(dp1057
+sg111
+Nsa(dp782
 g64
 I00
 sg65
-S'1020004'
-p1058
-sg283
 I00
-sg68
+sg66
+I00
+sg67
 I00
-sg69
-(lp1059
+sg68
+Nsg69
+(lp783
 sg71
-g72
-sS'gradle'
-p1060
-(lp1061
 S'VanillaARMv7'
-p1062
-asS'srclibs'
-p1063
-(lp1064
+p784
+sg72
 S'VLC@23c8d86'
-p1065
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p785
+sg74
+Nsg75
+(lp786
+sg77
+g19
+sg78
 S'1.2.0'
-p1066
-sS'build'
-p1067
+p787
+sg80
+S'vlc-android'
+p788
+sg82
+(lp789
+sg84
 S'cd ../ && ./compile.sh -a "armeabi-v7a" --release'
-p1068
+p790
 sg86
-g87
+I1020004
+sg87
+I00
 sg88
+(lp791
+sg90
+Nsg95
 I00
-sS'subdir'
-p1069
-S'vlc-android'
-p1070
-sg840
+sg96
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.0'
+p792
 sg99
-I00
-sg100
-I00
+(lp793
 sg101
-g20
+I00
 sg102
-g103
-sS'buildjni'
-p1071
-(lp1072
-S'no'
-p1073
-asS'ndk'
-p1074
 S'r10d'
-p1075
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1076
+p794
+sg103
+Nsg104
+(lp795
+sg106
+(lp796
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1077
-sg116
+p797
+sg110
 I00
-sS'commit'
-p1078
-S'1.2.0'
-p1079
-sa(dp1080
+sg111
+Nsa(dp798
 g64
 I00
 sg65
-S'1020005'
-p1081
-sg283
 I00
-sg68
+sg66
+I00
+sg67
 I00
-sg69
-(lp1082
+sg68
+Nsg69
+(lp799
 sg71
-g72
-sS'gradle'
-p1083
-(lp1084
 S'VanillaX86'
-p1085
-asS'srclibs'
-p1086
-(lp1087
+p800
+sg72
 S'VLC@23c8d86'
-p1088
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p801
+sg74
+Nsg75
+(lp802
+sg77
+g19
+sg78
 S'1.2.0'
-p1089
-sS'build'
-p1090
+p803
+sg80
+S'vlc-android'
+p804
+sg82
+(lp805
+sg84
 S'cd ../ && ./compile.sh -a "x86" --release'
-p1091
+p806
 sg86
-g87
+I1020005
+sg87
+I00
 sg88
+(lp807
+sg90
+Nsg95
 I00
-sS'subdir'
-p1092
-S'vlc-android'
-p1093
-sg840
+sg96
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.0'
+p808
 sg99
-I00
-sg100
-I00
+(lp809
 sg101
-g20
+I00
 sg102
-g103
-sS'buildjni'
-p1094
-(lp1095
-S'no'
-p1096
-asS'ndk'
-p1097
 S'r10d'
-p1098
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1099
+p810
+sg103
+Nsg104
+(lp811
+sg106
+(lp812
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1100
-sg116
+p813
+sg110
 I00
-sS'commit'
-p1101
-S'1.2.0'
-p1102
-sa(dp1103
+sg111
+Nsa(dp814
 g64
 I00
 sg65
-S'1020103'
-p1104
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp1105
+sg67
+I00
+sg68
+Nsg69
+(lp815
 sg71
-g72
-sS'gradle'
-p1106
-(lp1107
 S'VanillaARMv6fpu'
-p1108
-asS'srclibs'
-p1109
-(lp1110
+p816
+sg72
 S'VLC@23c8d86'
-p1111
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p817
+sg74
+Nsg75
+(lp818
+sg77
+g19
+sg78
 S'1.2.1'
-p1112
-sS'build'
-p1113
+p819
+sg80
+S'vlc-android'
+p820
+sg82
+(lp821
+sg84
 S'cd ../ && ./compile.sh -a "armeabi" --release'
-p1114
+p822
 sg86
-g87
+I1020103
+sg87
+I00
 sg88
+(lp823
+sg90
+Nsg95
 I00
-sS'subdir'
-p1115
-S'vlc-android'
-p1116
-sg840
+sg96
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.1'
+p824
 sg99
-I00
-sg100
-I00
+(lp825
 sg101
-g20
+I00
 sg102
-g103
-sS'buildjni'
-p1117
-(lp1118
-S'no'
-p1119
-asS'ndk'
-p1120
 S'r10d'
-p1121
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1122
+p826
+sg103
+Nsg104
+(lp827
+sg106
+(lp828
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1123
-sg116
+p829
+sg110
 I00
-sS'commit'
-p1124
-S'1.2.1'
-p1125
-sa(dp1126
+sg111
+Nsa(dp830
 g64
 I00
 sg65
-S'1020104'
-p1127
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp1128
+sg67
+I00
+sg68
+Nsg69
+(lp831
 sg71
-g72
-sS'gradle'
-p1129
-(lp1130
 S'VanillaARMv7'
-p1131
-asS'srclibs'
-p1132
-(lp1133
+p832
+sg72
 S'VLC@23c8d86'
-p1134
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p833
+sg74
+Nsg75
+(lp834
+sg77
+g19
+sg78
 S'1.2.1'
-p1135
-sS'build'
-p1136
+p835
+sg80
+S'vlc-android'
+p836
+sg82
+(lp837
+sg84
 S'cd ../ && ./compile.sh -a "armeabi-v7a" --release'
-p1137
+p838
 sg86
-g87
+I1020104
+sg87
+I00
 sg88
+(lp839
+sg90
+Nsg95
 I00
-sS'subdir'
-p1138
-S'vlc-android'
-p1139
-sg840
+sg96
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.1'
+p840
 sg99
-I00
-sg100
-I00
+(lp841
 sg101
-g20
+I00
 sg102
-g103
-sS'buildjni'
-p1140
-(lp1141
-S'no'
-p1142
-asS'ndk'
-p1143
 S'r10d'
-p1144
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1145
+p842
+sg103
+Nsg104
+(lp843
+sg106
+(lp844
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1146
-sg116
+p845
+sg110
 I00
-sS'commit'
-p1147
-S'1.2.1'
-p1148
-sa(dp1149
+sg111
+Nsa(dp846
 g64
 I00
 sg65
-S'1020105'
-p1150
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp1151
+sg67
+I00
+sg68
+Nsg69
+(lp847
 sg71
-g72
-sS'gradle'
-p1152
-(lp1153
 S'VanillaX86'
-p1154
-asS'srclibs'
-p1155
-(lp1156
+p848
+sg72
 S'VLC@23c8d86'
-p1157
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p849
+sg74
+Nsg75
+(lp850
+sg77
+g19
+sg78
 S'1.2.1'
-p1158
-sS'build'
-p1159
+p851
+sg80
+S'vlc-android'
+p852
+sg82
+(lp853
+sg84
 S'cd ../ && ./compile.sh -a "x86" --release'
-p1160
+p854
 sg86
-g87
+I1020105
+sg87
+I00
 sg88
+(lp855
+sg90
+Nsg95
 I00
-sS'subdir'
-p1161
-S'vlc-android'
-p1162
-sg840
+sg96
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.1'
+p856
 sg99
-I00
-sg100
-I00
+(lp857
 sg101
-g20
+I00
 sg102
-g103
-sS'buildjni'
-p1163
-(lp1164
-S'no'
-p1165
-asS'ndk'
-p1166
 S'r10d'
-p1167
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1168
+p858
+sg103
+Nsg104
+(lp859
+sg106
+(lp860
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1169
-sg116
+p861
+sg110
 I00
-sS'commit'
-p1170
-S'1.2.1'
-p1171
-sa(dp1172
+sg111
+Nsa(dp862
 g64
 I00
 sg65
-S'1020203'
-p1173
-sg283
 I00
-sg68
+sg66
+I00
+sg67
 I00
-sg69
-(lp1174
+sg68
+Nsg69
+(lp863
 sg71
-g72
-sS'gradle'
-p1175
-(lp1176
 S'VanillaARMv6fpu'
-p1177
-asS'srclibs'
-p1178
-(lp1179
+p864
+sg72
 S'VLC@7491a5f'
-p1180
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p865
+sg74
+Nsg75
+(lp866
+sg77
+g19
+sg78
 S'1.2.2'
-p1181
-sS'build'
-p1182
+p867
+sg80
+S'vlc-android'
+p868
+sg82
+(lp869
+sg84
 S'cd ../ && ./compile.sh -a "armeabi" --release'
-p1183
+p870
 sg86
-g87
+I1020203
+sg87
+I00
 sg88
+(lp871
+sg90
+Nsg95
 I00
-sS'subdir'
-p1184
-S'vlc-android'
-p1185
-sg840
+sg96
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.2'
+p872
 sg99
-I00
-sg100
-I00
+(lp873
 sg101
-g20
+I00
 sg102
-g103
-sS'buildjni'
-p1186
-(lp1187
-S'no'
-p1188
-asS'ndk'
-p1189
 S'r10d'
-p1190
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1191
+p874
+sg103
+Nsg104
+(lp875
+sg106
+(lp876
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1192
-sg116
+p877
+sg110
 I00
-sS'commit'
-p1193
-S'1.2.2'
-p1194
-sa(dp1195
+sg111
+Nsa(dp878
 g64
 I00
 sg65
-S'1020204'
-p1196
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp1197
+sg67
+I00
+sg68
+Nsg69
+(lp879
 sg71
-g72
-sS'gradle'
-p1198
-(lp1199
 S'VanillaARMv7'
-p1200
-asS'srclibs'
-p1201
-(lp1202
+p880
+sg72
 S'VLC@7491a5f'
-p1203
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p881
+sg74
+Nsg75
+(lp882
+sg77
+g19
+sg78
 S'1.2.2'
-p1204
-sS'build'
-p1205
+p883
+sg80
+S'vlc-android'
+p884
+sg82
+(lp885
+sg84
 S'cd ../ && ./compile.sh -a "armeabi-v7a" --release'
-p1206
+p886
 sg86
-g87
+I1020204
+sg87
+I00
 sg88
+(lp887
+sg90
+Nsg95
 I00
-sS'subdir'
-p1207
-S'vlc-android'
-p1208
-sg840
+sg96
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.2'
+p888
 sg99
-I00
-sg100
-I00
+(lp889
 sg101
-g20
+I00
 sg102
-g103
-sS'buildjni'
-p1209
-(lp1210
-S'no'
-p1211
-asS'ndk'
-p1212
 S'r10d'
-p1213
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1214
+p890
+sg103
+Nsg104
+(lp891
+sg106
+(lp892
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1215
-sg116
+p893
+sg110
 I00
-sS'commit'
-p1216
-S'1.2.2'
-p1217
-sa(dp1218
+sg111
+Nsa(dp894
 g64
 I00
 sg65
-S'1020205'
-p1219
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp1220
+sg67
+I00
+sg68
+Nsg69
+(lp895
 sg71
-g72
-sS'gradle'
-p1221
-(lp1222
 S'VanillaX86'
-p1223
-asS'srclibs'
-p1224
-(lp1225
+p896
+sg72
 S'VLC@7491a5f'
-p1226
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p897
+sg74
+Nsg75
+(lp898
+sg77
+g19
+sg78
 S'1.2.2'
-p1227
-sS'build'
-p1228
+p899
+sg80
+S'vlc-android'
+p900
+sg82
+(lp901
+sg84
 S'cd ../ && ./compile.sh -a "x86" --release'
-p1229
+p902
 sg86
-g87
+I1020205
+sg87
+I00
 sg88
+(lp903
+sg90
+Nsg95
 I00
-sS'subdir'
-p1230
-S'vlc-android'
-p1231
-sg840
+sg96
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.2'
+p904
 sg99
-I00
-sg100
-I00
+(lp905
 sg101
-g20
+I00
 sg102
-g103
-sS'buildjni'
-p1232
-(lp1233
-S'no'
-p1234
-asS'ndk'
-p1235
 S'r10d'
-p1236
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1237
+p906
+sg103
+Nsg104
+(lp907
+sg106
+(lp908
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1238
-sg116
+p909
+sg110
 I00
-sS'commit'
-p1239
-S'1.2.2'
-p1240
-sa(dp1241
+sg111
+Nsa(dp910
 g64
 I00
 sg65
-S'1020303'
-p1242
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp1243
+sg67
+I00
+sg68
+Nsg69
+(lp911
 sg71
-g72
-sS'gradle'
-p1244
-(lp1245
 S'VanillaARMv6fpu'
-p1246
-asS'srclibs'
-p1247
-(lp1248
+p912
+sg72
 S'VLC@7491a5f'
-p1249
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p913
+sg74
+Nsg75
+(lp914
+sg77
+g19
+sg78
 S'1.2.3'
-p1250
-sS'build'
-p1251
+p915
+sg80
+S'vlc-android'
+p916
+sg82
+(lp917
+sg84
 S'cd ../ && ./compile.sh -a "armeabi" --release'
-p1252
+p918
 sg86
-g87
+I1020303
+sg87
+I00
 sg88
+(lp919
+sg90
+Nsg95
 I00
-sS'subdir'
-p1253
-S'vlc-android'
-p1254
-sg840
+sg96
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.3'
+p920
 sg99
-I00
-sg100
-I00
+(lp921
 sg101
-g20
+I00
 sg102
-g103
-sS'buildjni'
-p1255
-(lp1256
-S'no'
-p1257
-asS'ndk'
-p1258
 S'r10d'
-p1259
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1260
+p922
+sg103
+Nsg104
+(lp923
+sg106
+(lp924
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1261
-sg116
+p925
+sg110
 I00
-sS'commit'
-p1262
-S'1.2.3'
-p1263
-sa(dp1264
+sg111
+Nsa(dp926
 g64
 I00
 sg65
-S'1020304'
-p1265
-sg283
 I00
-sg68
+sg66
+I00
+sg67
 I00
-sg69
-(lp1266
+sg68
+Nsg69
+(lp927
 sg71
-g72
-sS'gradle'
-p1267
-(lp1268
 S'VanillaARMv7'
-p1269
-asS'srclibs'
-p1270
-(lp1271
+p928
+sg72
 S'VLC@7491a5f'
-p1272
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p929
+sg74
+Nsg75
+(lp930
+sg77
+g19
+sg78
 S'1.2.3'
-p1273
-sS'build'
-p1274
+p931
+sg80
+S'vlc-android'
+p932
+sg82
+(lp933
+sg84
 S'cd ../ && ./compile.sh -a "armeabi-v7a" --release'
-p1275
+p934
 sg86
-g87
+I1020304
+sg87
+I00
 sg88
+(lp935
+sg90
+Nsg95
 I00
-sS'subdir'
-p1276
-S'vlc-android'
-p1277
-sg840
+sg96
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.3'
+p936
 sg99
-I00
-sg100
-I00
+(lp937
 sg101
-g20
+I00
 sg102
-g103
-sS'buildjni'
-p1278
-(lp1279
-S'no'
-p1280
-asS'ndk'
-p1281
 S'r10d'
-p1282
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1283
+p938
+sg103
+Nsg104
+(lp939
+sg106
+(lp940
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1284
-sg116
+p941
+sg110
 I00
-sS'commit'
-p1285
-S'1.2.3'
-p1286
-sa(dp1287
+sg111
+Nsa(dp942
 g64
 I00
 sg65
-S'1020305'
-p1288
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp1289
+sg67
+I00
+sg68
+Nsg69
+(lp943
 sg71
-g72
-sS'gradle'
-p1290
-(lp1291
 S'VanillaX86'
-p1292
-asS'srclibs'
-p1293
-(lp1294
+p944
+sg72
 S'VLC@7491a5f'
-p1295
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p945
+sg74
+Nsg75
+(lp946
+sg77
+g19
+sg78
 S'1.2.3'
-p1296
-sS'build'
-p1297
+p947
+sg80
+S'vlc-android'
+p948
+sg82
+(lp949
+sg84
 S'cd ../ && ./compile.sh -a "x86" --release'
-p1298
+p950
 sg86
-g87
+I1020305
+sg87
+I00
 sg88
+(lp951
+sg90
+Nsg95
 I00
-sS'subdir'
-p1299
-S'vlc-android'
-p1300
-sg840
+sg96
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.3'
+p952
 sg99
-I00
-sg100
-I00
+(lp953
 sg101
-g20
+I00
 sg102
-g103
-sS'buildjni'
-p1301
-(lp1302
-S'no'
-p1303
-asS'ndk'
-p1304
 S'r10d'
-p1305
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1306
+p954
+sg103
+Nsg104
+(lp955
+sg106
+(lp956
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1307
-sg116
+p957
+sg110
 I00
-sS'commit'
-p1308
-S'1.2.3'
-p1309
-sa(dp1310
+sg111
+Nsa(dp958
 g64
 I00
 sg65
-S'1020403'
-p1311
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp1312
+sg67
+I00
+sg68
+Nsg69
+(lp959
 sg71
-g72
-sS'gradle'
-p1313
-(lp1314
 S'VanillaARMv6fpu'
-p1315
-asS'srclibs'
-p1316
-(lp1317
+p960
+sg72
 S'VLC@7491a5f'
-p1318
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
+p961
+sg74
+Nsg75
+(lp962
+sg77
+g19
+sg78
+S'1.2.4'
+p963
+sg80
+S'vlc-android'
+p964
 sg82
-S'1.2.4'
-p1319
-sS'build'
-p1320
+(lp965
+sg84
 S'cd ../ && ./compile.sh -a "armeabi" --release'
-p1321
+p966
 sg86
-g87
+I1020403
+sg87
+I00
 sg88
+(lp967
+sg90
+Nsg95
 I00
-sS'subdir'
-p1322
-S'vlc-android'
-p1323
-sg840
+sg96
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.4'
+p968
 sg99
-I00
-sg100
-I00
+(lp969
 sg101
-g20
+I00
 sg102
-g103
-sS'buildjni'
-p1324
-(lp1325
-S'no'
-p1326
-asS'ndk'
-p1327
 S'r10d'
-p1328
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1329
+p970
+sg103
+Nsg104
+(lp971
+sg106
+(lp972
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1330
-sg116
+p973
+sg110
 I00
-sS'commit'
-p1331
-S'1.2.4'
-p1332
-sa(dp1333
+sg111
+Nsa(dp974
 g64
 I00
 sg65
-S'1020404'
-p1334
-sg283
 I00
-sg68
+sg66
+I00
+sg67
 I00
-sg69
-(lp1335
+sg68
+Nsg69
+(lp975
 sg71
-g72
-sS'gradle'
-p1336
-(lp1337
 S'VanillaARMv7'
-p1338
-asS'srclibs'
-p1339
-(lp1340
+p976
+sg72
 S'VLC@7491a5f'
-p1341
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p977
+sg74
+Nsg75
+(lp978
+sg77
+g19
+sg78
 S'1.2.4'
-p1342
-sS'build'
-p1343
+p979
+sg80
+S'vlc-android'
+p980
+sg82
+(lp981
+sg84
 S'cd ../ && ./compile.sh -a "armeabi-v7a" --release'
-p1344
+p982
 sg86
-g87
+I1020404
+sg87
+I00
 sg88
+(lp983
+sg90
+Nsg95
 I00
-sS'subdir'
-p1345
-S'vlc-android'
-p1346
-sg840
+sg96
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.4'
+p984
 sg99
-I00
-sg100
-I00
+(lp985
 sg101
-g20
+I00
 sg102
-g103
-sS'buildjni'
-p1347
-(lp1348
-S'no'
-p1349
-asS'ndk'
-p1350
 S'r10d'
-p1351
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1352
+p986
+sg103
+Nsg104
+(lp987
+sg106
+(lp988
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1353
-sg116
+p989
+sg110
 I00
-sS'commit'
-p1354
-S'1.2.4'
-p1355
-sa(dp1356
+sg111
+Nsa(dp990
 g64
 I00
 sg65
-S'1020405'
-p1357
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp1358
+sg67
+I00
+sg68
+Nsg69
+(lp991
 sg71
-g72
-sS'gradle'
-p1359
-(lp1360
 S'VanillaX86'
-p1361
-asS'srclibs'
-p1362
-(lp1363
+p992
+sg72
 S'VLC@7491a5f'
-p1364
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p993
+sg74
+Nsg75
+(lp994
+sg77
+g19
+sg78
 S'1.2.4'
-p1365
-sS'build'
-p1366
+p995
+sg80
+S'vlc-android'
+p996
+sg82
+(lp997
+sg84
 S'cd ../ && ./compile.sh -a "x86" --release'
-p1367
+p998
 sg86
-g87
+I1020405
+sg87
+I00
 sg88
+(lp999
+sg90
+Nsg95
 I00
-sS'subdir'
-p1368
-S'vlc-android'
-p1369
-sg840
+sg96
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.4'
+p1000
 sg99
-I00
-sg100
-I00
+(lp1001
 sg101
-g20
+I00
 sg102
-g103
-sS'buildjni'
-p1370
-(lp1371
-S'no'
-p1372
-asS'ndk'
-p1373
 S'r10d'
-p1374
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1375
+p1002
+sg103
+Nsg104
+(lp1003
+sg106
+(lp1004
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1376
-sg116
+p1005
+sg110
 I00
-sS'commit'
-p1377
-S'1.2.4'
-p1378
-sa(dp1379
+sg111
+Nsa(dp1006
 g64
 I00
 sg65
-S'1020503'
-p1380
-sg283
 I00
-sg68
+sg66
+I00
+sg67
 I00
-sg69
-(lp1381
+sg68
+Nsg69
+(lp1007
 sg71
-g72
-sS'gradle'
-p1382
-(lp1383
 S'VanillaARMv6fpu'
-p1384
-asS'srclibs'
-p1385
-(lp1386
+p1008
+sg72
 S'VLC@50accb8'
-p1387
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p1009
+sg74
+Nsg75
+(lp1010
+sg77
+g19
+sg78
 S'1.2.5'
-p1388
-sS'build'
-p1389
+p1011
+sg80
+S'vlc-android'
+p1012
+sg82
+(lp1013
+sg84
 S'cd ../ && ./compile.sh -a "armeabi" --release'
-p1390
+p1014
 sg86
-g87
+I1020503
+sg87
+I00
 sg88
+(lp1015
+sg90
+Nsg95
 I00
-sS'subdir'
-p1391
-S'vlc-android'
-p1392
-sg840
+sg96
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.5'
+p1016
 sg99
-I00
-sg100
-I00
+(lp1017
 sg101
-g20
+I00
 sg102
-g103
-sS'buildjni'
-p1393
-(lp1394
-S'no'
-p1395
-asS'ndk'
-p1396
 S'r10d'
-p1397
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1398
+p1018
+sg103
+Nsg104
+(lp1019
+sg106
+(lp1020
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1399
-sg116
+p1021
+sg110
 I00
-sS'commit'
-p1400
-S'1.2.5'
-p1401
-sa(dp1402
+sg111
+Nsa(dp1022
 g64
 I00
 sg65
-S'1020504'
-p1403
-sg283
 I00
-sg68
+sg66
+I00
+sg67
 I00
-sg69
-(lp1404
+sg68
+Nsg69
+(lp1023
 sg71
-g72
-sS'gradle'
-p1405
-(lp1406
 S'VanillaARMv7'
-p1407
-asS'srclibs'
-p1408
-(lp1409
+p1024
+sg72
 S'VLC@50accb8'
-p1410
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p1025
+sg74
+Nsg75
+(lp1026
+sg77
+g19
+sg78
 S'1.2.5'
-p1411
-sS'build'
-p1412
+p1027
+sg80
+S'vlc-android'
+p1028
+sg82
+(lp1029
+sg84
 S'cd ../ && ./compile.sh -a "armeabi-v7a" --release'
-p1413
+p1030
 sg86
-g87
+I1020504
+sg87
+I00
 sg88
+(lp1031
+sg90
+Nsg95
 I00
-sS'subdir'
-p1414
-S'vlc-android'
-p1415
-sg840
+sg96
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.5'
+p1032
 sg99
-I00
-sg100
-I00
+(lp1033
 sg101
-g20
+I00
 sg102
-g103
-sS'buildjni'
-p1416
-(lp1417
-S'no'
-p1418
-asS'ndk'
-p1419
 S'r10d'
-p1420
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1421
+p1034
+sg103
+Nsg104
+(lp1035
+sg106
+(lp1036
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1422
-sg116
+p1037
+sg110
 I00
-sS'commit'
-p1423
-S'1.2.5'
-p1424
-sa(dp1425
+sg111
+Nsa(dp1038
 g64
 I00
 sg65
-S'1020505'
-p1426
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp1427
+sg67
+I00
+sg68
+Nsg69
+(lp1039
 sg71
-g72
-sS'gradle'
-p1428
-(lp1429
 S'VanillaX86'
-p1430
-asS'srclibs'
-p1431
-(lp1432
+p1040
+sg72
 S'VLC@50accb8'
-p1433
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p1041
+sg74
+Nsg75
+(lp1042
+sg77
+g19
+sg78
 S'1.2.5'
-p1434
-sS'build'
-p1435
+p1043
+sg80
+S'vlc-android'
+p1044
+sg82
+(lp1045
+sg84
 S'cd ../ && ./compile.sh -a "x86" --release'
-p1436
+p1046
 sg86
-g87
+I1020505
+sg87
+I00
 sg88
+(lp1047
+sg90
+Nsg95
 I00
-sS'subdir'
-p1437
-S'vlc-android'
-p1438
-sg840
+sg96
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.5'
+p1048
 sg99
-I00
-sg100
-I00
+(lp1049
 sg101
-g20
+I00
 sg102
-g103
-sS'buildjni'
-p1439
-(lp1440
-S'no'
-p1441
-asS'ndk'
-p1442
 S'r10d'
-p1443
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1444
+p1050
+sg103
+Nsg104
+(lp1051
+sg106
+(lp1052
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1445
-sg116
+p1053
+sg110
 I00
-sS'commit'
-p1446
-S'1.2.5'
-p1447
-sa(dp1448
+sg111
+Nsa(dp1054
 g64
 I00
 sg65
-S'1030003'
-p1449
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp1450
+sg67
+I00
+sg68
+Nsg69
+(lp1055
 sg71
-g72
-sS'gradle'
-p1451
-(lp1452
 S'VanillaARMv6fpu'
-p1453
-asS'srclibs'
-p1454
-(lp1455
+p1056
+sg72
 S'VLC@d59b81a'
-p1456
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p1057
+sg74
+Nsg75
+(lp1058
+sg77
+g19
+sg78
 S'1.2.6'
-p1457
-sS'build'
-p1458
+p1059
+sg80
+S'vlc-android'
+p1060
+sg82
+(lp1061
+sg84
 S'cd ../ && ./compile.sh -a "armeabi" --release'
-p1459
+p1062
 sg86
-g87
+I1030003
+sg87
+I00
 sg88
+(lp1063
+sg90
+Nsg95
 I00
-sS'subdir'
-p1460
-S'vlc-android'
-p1461
-sg840
+sg96
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.6'
+p1064
 sg99
-I00
-sg100
-I00
+(lp1065
 sg101
-g20
+I00
 sg102
-g103
-sS'buildjni'
-p1462
-(lp1463
-S'no'
-p1464
-asS'ndk'
-p1465
 S'r10d'
-p1466
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1467
+p1066
+sg103
+Nsg104
+(lp1067
+sg106
+(lp1068
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1468
-sg116
+p1069
+sg110
 I00
-sS'commit'
-p1469
-S'1.2.6'
-p1470
-sa(dp1471
+sg111
+Nsa(dp1070
 g64
 I00
 sg65
-S'1030004'
-p1472
-sg283
 I00
-sg68
+sg66
 I00
-sg69
-(lp1473
+sg67
+I00
+sg68
+Nsg69
+(lp1071
 sg71
-g72
-sS'gradle'
-p1474
-(lp1475
 S'VanillaARMv7'
-p1476
-asS'srclibs'
-p1477
-(lp1478
+p1072
+sg72
 S'VLC@d59b81a'
-p1479
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p1073
+sg74
+Nsg75
+(lp1074
+sg77
+g19
+sg78
 S'1.2.6'
-p1480
-sS'build'
-p1481
+p1075
+sg80
+S'vlc-android'
+p1076
+sg82
+(lp1077
+sg84
 S'cd ../ && ./compile.sh -a "armeabi-v7a" --release'
-p1482
+p1078
 sg86
-g87
+I1030004
+sg87
+I00
 sg88
+(lp1079
+sg90
+Nsg95
 I00
-sS'subdir'
-p1483
-S'vlc-android'
-p1484
-sg840
+sg96
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.6'
+p1080
 sg99
-I00
-sg100
-I00
+(lp1081
 sg101
-g20
+I00
 sg102
-g103
-sS'buildjni'
-p1485
-(lp1486
-S'no'
-p1487
-asS'ndk'
-p1488
 S'r10d'
-p1489
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1490
+p1082
+sg103
+Nsg104
+(lp1083
+sg106
+(lp1084
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1491
-sg116
+p1085
+sg110
 I00
-sS'commit'
-p1492
-S'1.2.6'
-p1493
-sa(dp1494
+sg111
+Nsa(dp1086
 g64
 I00
 sg65
-S'1030005'
-p1495
-sg283
 I00
-sg68
+sg66
+I00
+sg67
 I00
-sg69
-(lp1496
+sg68
+Nsg69
+(lp1087
 sg71
-g72
-sS'gradle'
-p1497
-(lp1498
 S'VanillaX86'
-p1499
-asS'srclibs'
-p1500
-(lp1501
+p1088
+sg72
 S'VLC@d59b81a'
-p1502
-asg77
-Nsg78
-Nsg79
-g80
-sg81
-g20
-sg82
+p1089
+sg74
+Nsg75
+(lp1090
+sg77
+g19
+sg78
 S'1.2.6'
-p1503
-sS'build'
-p1504
+p1091
+sg80
+S'vlc-android'
+p1092
+sg82
+(lp1093
+sg84
 S'cd ../ && ./compile.sh -a "x86" --release'
-p1505
+p1094
 sg86
-g87
+I1030005
+sg87
+I00
 sg88
+(lp1095
+sg90
+Nsg95
 I00
-sS'subdir'
-p1506
-S'vlc-android'
-p1507
-sg840
+sg96
 I00
-sg92
-g93
-sg200
-g201
+sg97
+S'1.2.6'
+p1096
 sg99
-I00
-sg100
-I00
+(lp1097
 sg101
-g20
+I00
 sg102
-g103
-sS'buildjni'
-p1508
-(lp1509
-S'no'
-p1510
-asS'ndk'
-p1511
 S'r10d'
-p1512
-sg109
-Nsg110
-g113
-sg112
-Nsg73
-g74
-sS'prebuild'
-p1513
+p1098
+sg103
+Nsg104
+(lp1099
+sg106
+(lp1100
+sg108
 S'sed -i -e \'/^TARGET/aexit 0\' -e \'s@\\-d \\"gradle\\/wrapper\\"@1@g\' ../compile.sh && ln -s vlc-android/$$VLC$$ ../vlc'
-p1514
-sg116
+p1101
+sg110
 I00
-sS'commit'
-p1515
-S'1.2.6'
-p1516
-sasS'FlattrID'
-p1517
+sg111
+NsasS'FlattrID'
+p1102
 NsS'metadatapath'
-p1518
+p1103
 S'metadata/org.videolan.vlc.yaml'
-p1519
+p1104
 sS'Disabled'
-p1520
-NsS'added'
-p1521
-NsS'lastupdated'
-p1522
-NsS'Update Check Name'
-p1523
+p1105
+NsS'Web Site'
+p1106
+S'http://www.videolan.org/vlc/download-android.html'
+p1107
+sS'Update Check Name'
+p1108
 NsS'Vercode Operation'
-p1524
+p1109
 S'%c + 5'
-p1525
-sS'Current Version'
-p1526
-S'1.2.6'
-p1527
-s.
+p1110
+sS'Auto Update Mode'
+p1111
+S'None'
+p1112
+s.
\ No newline at end of file
diff --git a/tests/metadata/update-pickle.py b/tests/metadata/update-pickle.py
deleted file mode 100755 (executable)
index 2811133..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-#!/usr/bin/env python2
-#
-# This script is for updating the .pickle test files when there are changes to
-# the default metadata, e.g. adding a new key/tag.
-
-import glob
-import pickle
-
-for picklefile in glob.glob('*.pickle'):
-    p = pickle.load(open(picklefile))
-
-    for build in p['builds']:
-        build['gradleprops'] = []
-
-    pickle.dump(p, open(picklefile, 'w'))