# 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:
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):
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))
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():
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...")
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:
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:
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)
# 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 = []
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(':')
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):
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)
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):
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:
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)
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
'-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'))
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')
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'
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)
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'))])
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')
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...
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:
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
# 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...
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.
: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)
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
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
first = True
- for thisbuild in app.builds:
+ for build in app.builds:
wikilog = None
try:
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,
# 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)
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')
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
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})"
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
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})"
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)
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
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
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)
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'''
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))
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):
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()
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)
# 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:
# 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)
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
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'))
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):
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)
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:
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)
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
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)
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
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):
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)
# use the C implementation when available
import xml.etree.cElementTree as ElementTree
-from collections import OrderedDict
-
import common
srclibs = None
# 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):
# 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
# '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:
% (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:
# 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
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
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(',')]
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):
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)
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
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):
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))
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)
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:
mode = 0
buildlines = []
curcomments = []
- curbuild = None
+ build = None
vc_seen = {}
c = 0
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('\\'):
else:
buildlines.append(line.lstrip())
bl = ''.join(buildlines)
- add_buildflag(bl, curbuild)
+ add_buildflag(bl, build)
buildlines = []
if mode == 0:
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:
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:
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')
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)
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'
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)
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)
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
]
]
- 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()
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)
# 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
# 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:
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
"""
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),
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:
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:
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
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):
# 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: '
+ '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)
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
# 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
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
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__":
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__":
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
p51
sS'Changelog'
p52
-g23
+g21
sS'Update Check Mode'
p53
S'None'
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
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
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
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'
p35
S'http://git.videolan.org/?p=vlc-ports/android.git;a=summary'
p36
-sS'Litecoin'
+sS'added'
p37
NsS'Update Check Ignore'
p38
p41
sS'Changelog'
p42
-g20
+g19
sS'Update Check Mode'
p43
S'Tags'
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
+++ /dev/null
-#!/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'))