mirror of
https://gitlab.com/fdroid/fdroidserver.git
synced 2024-10-05 18:50:09 +02:00
Merge branch 'fix_760' into 'master'
update.py (and index.py) refactoring Closes #524 and #760 See merge request fdroid/fdroidserver!756
This commit is contained in:
commit
1902bfb6fc
1
.gitignore
vendored
1
.gitignore
vendored
@ -25,6 +25,7 @@ README.rst
|
|||||||
tmp/
|
tmp/
|
||||||
/tests/repo/icons*
|
/tests/repo/icons*
|
||||||
/tests/repo/latestapps.dat
|
/tests/repo/latestapps.dat
|
||||||
|
/tests/repo/status
|
||||||
|
|
||||||
# files used in manual testing
|
# files used in manual testing
|
||||||
/config.py
|
/config.py
|
||||||
|
@ -21,7 +21,6 @@
|
|||||||
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
import collections
|
import collections
|
||||||
import copy
|
|
||||||
import json
|
import json
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
@ -41,31 +40,32 @@ from . import metadata
|
|||||||
from . import net
|
from . import net
|
||||||
from . import signindex
|
from . import signindex
|
||||||
from fdroidserver.common import FDroidPopen, FDroidPopenBytes, load_stats_fdroid_signing_key_fingerprints
|
from fdroidserver.common import FDroidPopen, FDroidPopenBytes, load_stats_fdroid_signing_key_fingerprints
|
||||||
from fdroidserver.exception import FDroidException, VerificationException, MetaDataException
|
from fdroidserver.exception import FDroidException, VerificationException
|
||||||
|
|
||||||
|
|
||||||
def make(apps, sortedids, apks, repodir, archive):
|
def make(apps, apks, repodir, archive):
|
||||||
"""Generate the repo index files.
|
"""Generate the repo index files.
|
||||||
|
|
||||||
This requires properly initialized options and config objects.
|
This requires properly initialized options and config objects.
|
||||||
|
|
||||||
:param apps: fully populated apps list
|
:param apps: OrderedDict of apps to go into the index, each app should have
|
||||||
:param sortedids: app package IDs, sorted
|
at least one associated apk
|
||||||
:param apks: full populated apks list
|
:param apks: list of apks to go into the index
|
||||||
:param repodir: the repo directory
|
:param repodir: the repo directory
|
||||||
:param archive: True if this is the archive repo, False if it's the
|
:param archive: True if this is the archive repo, False if it's the
|
||||||
main one.
|
main one.
|
||||||
"""
|
"""
|
||||||
from fdroidserver.update import METADATA_VERSION
|
from fdroidserver.update import METADATA_VERSION
|
||||||
|
|
||||||
def _resolve_description_link(appid):
|
|
||||||
if appid in apps:
|
|
||||||
return "fdroid.app:" + appid, apps[appid].Name
|
|
||||||
raise MetaDataException("Cannot resolve app id " + appid)
|
|
||||||
|
|
||||||
if not common.options.nosign:
|
if not common.options.nosign:
|
||||||
common.assert_config_keystore(common.config)
|
common.assert_config_keystore(common.config)
|
||||||
|
|
||||||
|
# Historically the index has been sorted by App Name, so we enforce this ordering here
|
||||||
|
sortedids = sorted(apps, key=lambda appid: apps[appid].Name.upper())
|
||||||
|
sortedapps = collections.OrderedDict()
|
||||||
|
for appid in sortedids:
|
||||||
|
sortedapps[appid] = apps[appid]
|
||||||
|
|
||||||
repodict = collections.OrderedDict()
|
repodict = collections.OrderedDict()
|
||||||
repodict['timestamp'] = datetime.utcnow().replace(tzinfo=timezone.utc)
|
repodict['timestamp'] = datetime.utcnow().replace(tzinfo=timezone.utc)
|
||||||
repodict['version'] = METADATA_VERSION
|
repodict['version'] = METADATA_VERSION
|
||||||
@ -106,21 +106,6 @@ def make(apps, sortedids, apks, repodir, archive):
|
|||||||
if mirrors:
|
if mirrors:
|
||||||
repodict['mirrors'] = mirrors
|
repodict['mirrors'] = mirrors
|
||||||
|
|
||||||
appsWithPackages = collections.OrderedDict()
|
|
||||||
for packageName in sortedids:
|
|
||||||
app = apps[packageName]
|
|
||||||
if app['Disabled']:
|
|
||||||
continue
|
|
||||||
|
|
||||||
# only include apps with packages
|
|
||||||
for apk in apks:
|
|
||||||
if apk['packageName'] == packageName:
|
|
||||||
newapp = copy.copy(app) # update wiki needs unmodified description
|
|
||||||
newapp['Description'] = metadata.description_html(app['Description'],
|
|
||||||
_resolve_description_link)
|
|
||||||
appsWithPackages[packageName] = newapp
|
|
||||||
break
|
|
||||||
|
|
||||||
requestsdict = collections.OrderedDict()
|
requestsdict = collections.OrderedDict()
|
||||||
for command in ('install', 'uninstall'):
|
for command in ('install', 'uninstall'):
|
||||||
packageNames = []
|
packageNames = []
|
||||||
@ -136,9 +121,9 @@ def make(apps, sortedids, apks, repodir, archive):
|
|||||||
|
|
||||||
fdroid_signing_key_fingerprints = load_stats_fdroid_signing_key_fingerprints()
|
fdroid_signing_key_fingerprints = load_stats_fdroid_signing_key_fingerprints()
|
||||||
|
|
||||||
make_v0(appsWithPackages, apks, repodir, repodict, requestsdict,
|
make_v0(sortedapps, apks, repodir, repodict, requestsdict,
|
||||||
fdroid_signing_key_fingerprints)
|
fdroid_signing_key_fingerprints)
|
||||||
make_v1(appsWithPackages, apks, repodir, repodict, requestsdict,
|
make_v1(sortedapps, apks, repodir, repodict, requestsdict,
|
||||||
fdroid_signing_key_fingerprints)
|
fdroid_signing_key_fingerprints)
|
||||||
|
|
||||||
|
|
||||||
@ -311,11 +296,6 @@ def make_v0(apps, apks, repodir, repodict, requestsdict, fdroid_signing_key_fing
|
|||||||
value = str(apk[key])
|
value = str(apk[key])
|
||||||
addElement(name, value, doc, parent)
|
addElement(name, value, doc, parent)
|
||||||
|
|
||||||
def addElementCDATA(name, value, doc, parent):
|
|
||||||
el = doc.createElement(name)
|
|
||||||
el.appendChild(doc.createCDATASection(value))
|
|
||||||
parent.appendChild(el)
|
|
||||||
|
|
||||||
def addElementCheckLocalized(name, app, key, doc, parent, default=''):
|
def addElementCheckLocalized(name, app, key, doc, parent, default=''):
|
||||||
"""Fill in field from metadata or localized block
|
"""Fill in field from metadata or localized block
|
||||||
|
|
||||||
|
@ -616,7 +616,7 @@ class DescriptionFormatter:
|
|||||||
warn_or_exception(_("Unterminated ]]"))
|
warn_or_exception(_("Unterminated ]]"))
|
||||||
url = txt[2:index]
|
url = txt[2:index]
|
||||||
if self.linkResolver:
|
if self.linkResolver:
|
||||||
url, urltext = self.linkResolver(url)
|
url, urltext = self.linkResolver.resolve_description_link(url)
|
||||||
else:
|
else:
|
||||||
urltext = url
|
urltext = url
|
||||||
res_html += '<a href="' + url + '">' + html.escape(urltext, quote=False) + '</a>'
|
res_html += '<a href="' + url + '">' + html.escape(urltext, quote=False) + '</a>'
|
||||||
@ -899,14 +899,9 @@ def read_metadata(xref=True, check_vcs=[], refresh=True, sort_by_time=False):
|
|||||||
if xref:
|
if xref:
|
||||||
# Parse all descriptions at load time, just to ensure cross-referencing
|
# Parse all descriptions at load time, just to ensure cross-referencing
|
||||||
# errors are caught early rather than when they hit the build server.
|
# errors are caught early rather than when they hit the build server.
|
||||||
def linkres(appid):
|
|
||||||
if appid in apps:
|
|
||||||
return ("fdroid.app:" + appid, "Dummy name - don't know yet")
|
|
||||||
warn_or_exception(_("Cannot resolve app id {appid}").format(appid=appid))
|
|
||||||
|
|
||||||
for appid, app in apps.items():
|
for appid, app in apps.items():
|
||||||
try:
|
try:
|
||||||
description_html(app.Description, linkres)
|
description_html(app.Description, DummyDescriptionResolver(apps))
|
||||||
except MetaDataException as e:
|
except MetaDataException as e:
|
||||||
warn_or_exception(_("Problem with description of {appid}: {error}")
|
warn_or_exception(_("Problem with description of {appid}: {error}")
|
||||||
.format(appid=appid, error=str(e)))
|
.format(appid=appid, error=str(e)))
|
||||||
@ -1679,3 +1674,21 @@ def add_metadata_arguments(parser):
|
|||||||
'''add common command line flags related to metadata processing'''
|
'''add common command line flags related to metadata processing'''
|
||||||
parser.add_argument("-W", choices=['error', 'warn', 'ignore'], default='error',
|
parser.add_argument("-W", choices=['error', 'warn', 'ignore'], default='error',
|
||||||
help=_("force metadata errors (default) to be warnings, or to be ignored."))
|
help=_("force metadata errors (default) to be warnings, or to be ignored."))
|
||||||
|
|
||||||
|
|
||||||
|
class DescriptionResolver:
|
||||||
|
def __init__(self, apps):
|
||||||
|
self.apps = apps
|
||||||
|
|
||||||
|
def resolve_description_link(self, appid):
|
||||||
|
if appid in self.apps:
|
||||||
|
if self.apps[appid].Name:
|
||||||
|
return "fdroid.app:" + appid, self.apps[appid].Name
|
||||||
|
raise MetaDataException("Cannot resolve app id " + appid)
|
||||||
|
|
||||||
|
|
||||||
|
class DummyDescriptionResolver(DescriptionResolver):
|
||||||
|
def resolve_description_link(self, appid):
|
||||||
|
if appid in self.apps:
|
||||||
|
return "fdroid.app:" + appid, "Dummy name - don't know yet"
|
||||||
|
warn_or_exception(_("Cannot resolve app id {appid}").format(appid=appid))
|
||||||
|
@ -126,7 +126,7 @@ def disabled_algorithms_allowed():
|
|||||||
return options.allow_disabled_algorithms or config['allow_disabled_algorithms']
|
return options.allow_disabled_algorithms or config['allow_disabled_algorithms']
|
||||||
|
|
||||||
|
|
||||||
def status_update_json(apps, sortedids, apks):
|
def status_update_json(apps, apks):
|
||||||
"""Output a JSON file with metadata about this `fdroid update` run
|
"""Output a JSON file with metadata about this `fdroid update` run
|
||||||
|
|
||||||
:param apps: fully populated list of all applications
|
:param apps: fully populated list of all applications
|
||||||
@ -141,7 +141,7 @@ def status_update_json(apps, sortedids, apks):
|
|||||||
output['failedBuilds'] = dict()
|
output['failedBuilds'] = dict()
|
||||||
output['noPackages'] = []
|
output['noPackages'] = []
|
||||||
|
|
||||||
for appid in sortedids:
|
for appid in apps:
|
||||||
app = apps[appid]
|
app = apps[appid]
|
||||||
for af in app.get('AntiFeatures', []):
|
for af in app.get('AntiFeatures', []):
|
||||||
antiFeatures = output['antiFeatures'] # JSON camelCase
|
antiFeatures = output['antiFeatures'] # JSON camelCase
|
||||||
@ -177,7 +177,7 @@ def status_update_json(apps, sortedids, apks):
|
|||||||
common.write_status_json(output, options.pretty)
|
common.write_status_json(output, options.pretty)
|
||||||
|
|
||||||
|
|
||||||
def update_wiki(apps, sortedids, apks):
|
def update_wiki(apps, apks):
|
||||||
"""Update the wiki
|
"""Update the wiki
|
||||||
|
|
||||||
:param apps: fully populated list of all applications
|
:param apps: fully populated list of all applications
|
||||||
@ -193,7 +193,7 @@ def update_wiki(apps, sortedids, apks):
|
|||||||
generated_pages = {}
|
generated_pages = {}
|
||||||
generated_redirects = {}
|
generated_redirects = {}
|
||||||
|
|
||||||
for appid in sortedids:
|
for appid in apps:
|
||||||
app = metadata.App(apps[appid])
|
app = metadata.App(apps[appid])
|
||||||
|
|
||||||
wikidata = ''
|
wikidata = ''
|
||||||
@ -1113,7 +1113,7 @@ def insert_localized_app_metadata(apps):
|
|||||||
...as well as the /metadata/<packageName>/<locale> directory.
|
...as well as the /metadata/<packageName>/<locale> directory.
|
||||||
|
|
||||||
If it finds them, they will be added to the dict of all packages, with the
|
If it finds them, they will be added to the dict of all packages, with the
|
||||||
versions in the /metadata/ folder taking precendence over the what
|
versions in the /metadata/ folder taking precedence over the what
|
||||||
is in the app's source repo.
|
is in the app's source repo.
|
||||||
|
|
||||||
The <locale> is the locale of the files supplied in that directory, using
|
The <locale> is the locale of the files supplied in that directory, using
|
||||||
@ -2009,19 +2009,19 @@ def make_categories_txt(repodir, categories):
|
|||||||
|
|
||||||
|
|
||||||
def archive_old_apks(apps, apks, archapks, repodir, archivedir, defaultkeepversions):
|
def archive_old_apks(apps, apks, archapks, repodir, archivedir, defaultkeepversions):
|
||||||
|
|
||||||
def filter_apk_list_sorted(apk_list):
|
def filter_apk_list_sorted(apk_list):
|
||||||
res = []
|
apkList = []
|
||||||
currentVersionApk = None
|
currentVersionApk = None
|
||||||
for apk in apk_list:
|
for apk in apk_list:
|
||||||
if apk['packageName'] == appid:
|
if apk['packageName'] == appid:
|
||||||
|
if app.CurrentVersionCode is not None:
|
||||||
if apk['versionCode'] == common.version_code_string_to_int(app.CurrentVersionCode):
|
if apk['versionCode'] == common.version_code_string_to_int(app.CurrentVersionCode):
|
||||||
currentVersionApk = apk
|
currentVersionApk = apk
|
||||||
continue
|
continue
|
||||||
res.append(apk)
|
apkList.append(apk)
|
||||||
|
|
||||||
# Sort the apk list by version code. First is highest/newest.
|
# Sort the apk list by version code. First is highest/newest.
|
||||||
sorted_list = sorted(res, key=lambda apk: apk['versionCode'], reverse=True)
|
sorted_list = sorted(apkList, key=lambda apk: apk['versionCode'], reverse=True)
|
||||||
if currentVersionApk:
|
if currentVersionApk:
|
||||||
# Insert apk which corresponds to currentVersion at the front
|
# Insert apk which corresponds to currentVersion at the front
|
||||||
sorted_list.insert(0, currentVersionApk)
|
sorted_list.insert(0, currentVersionApk)
|
||||||
@ -2166,6 +2166,75 @@ def create_metadata_from_template(apk):
|
|||||||
logging.info(_("Generated skeleton metadata for {appid}").format(appid=apk['packageName']))
|
logging.info(_("Generated skeleton metadata for {appid}").format(appid=apk['packageName']))
|
||||||
|
|
||||||
|
|
||||||
|
def read_names_from_apks(apps, apks):
|
||||||
|
"""This is a stripped down copy of apply_info_from_latest_apk that only parses app names"""
|
||||||
|
for appid, app in apps.items():
|
||||||
|
bestver = UNSET_VERSION_CODE
|
||||||
|
for apk in apks:
|
||||||
|
if apk['packageName'] == appid:
|
||||||
|
if apk['versionCode'] > bestver:
|
||||||
|
bestver = apk['versionCode']
|
||||||
|
bestapk = apk
|
||||||
|
|
||||||
|
if bestver == UNSET_VERSION_CODE:
|
||||||
|
if app.Name is None:
|
||||||
|
app.Name = app.AutoName or appid
|
||||||
|
app.icon = None
|
||||||
|
else:
|
||||||
|
if app.Name is None:
|
||||||
|
app.Name = bestapk['name']
|
||||||
|
|
||||||
|
|
||||||
|
def render_app_descriptions(apps, all_apps):
|
||||||
|
"""
|
||||||
|
Renders the app html description.
|
||||||
|
For resolving inter-app links it needs the full list of apps, even if they end up in
|
||||||
|
separate repos (i.e. archive or per app repos).
|
||||||
|
"""
|
||||||
|
for app in apps.values():
|
||||||
|
app['Description'] = metadata.description_html(app['Description'], metadata.DescriptionResolver(all_apps))
|
||||||
|
|
||||||
|
|
||||||
|
def get_apps_with_packages(apps, apks):
|
||||||
|
"""Returns a deepcopy of that subset apps that actually has any associated packages. Skips disabled apps."""
|
||||||
|
appsWithPackages = collections.OrderedDict()
|
||||||
|
for packageName in apps:
|
||||||
|
app = apps[packageName]
|
||||||
|
if app['Disabled']:
|
||||||
|
continue
|
||||||
|
|
||||||
|
# only include apps with packages
|
||||||
|
for apk in apks:
|
||||||
|
if apk['packageName'] == packageName:
|
||||||
|
newapp = copy.copy(app)
|
||||||
|
appsWithPackages[packageName] = newapp
|
||||||
|
break
|
||||||
|
return appsWithPackages
|
||||||
|
|
||||||
|
|
||||||
|
def prepare_apps(apps, apks, repodir):
|
||||||
|
"""Encapsulates all necessary preparation steps before we can build an index out of apps and apks.
|
||||||
|
|
||||||
|
:param apps: All apps as read from metadata
|
||||||
|
:param apks: list of apks that belong into repo, this gets modified in place
|
||||||
|
:param repodir: the target repository directory, metadata files will be copied here
|
||||||
|
:return: the relevant subset of apps (as a deepcopy)
|
||||||
|
"""
|
||||||
|
apps_with_packages = get_apps_with_packages(apps, apks)
|
||||||
|
apply_info_from_latest_apk(apps_with_packages, apks)
|
||||||
|
render_app_descriptions(apps_with_packages, apps)
|
||||||
|
insert_funding_yml_donation_links(apps)
|
||||||
|
# This is only currently done for /repo because doing it for the archive
|
||||||
|
# will take a lot of time and bloat the archive mirrors and index
|
||||||
|
if repodir == 'repo':
|
||||||
|
copy_triple_t_store_metadata(apps_with_packages)
|
||||||
|
insert_obbs(repodir, apps_with_packages, apks)
|
||||||
|
translate_per_build_anti_features(apps_with_packages, apks)
|
||||||
|
if repodir == 'repo':
|
||||||
|
insert_localized_app_metadata(apps_with_packages)
|
||||||
|
return apps_with_packages
|
||||||
|
|
||||||
|
|
||||||
config = None
|
config = None
|
||||||
options = None
|
options = None
|
||||||
start_timestamp = time.gmtime()
|
start_timestamp = time.gmtime()
|
||||||
@ -2302,12 +2371,6 @@ def main():
|
|||||||
else:
|
else:
|
||||||
logging.warning(msg + '\n\t' + _('Use `fdroid update -c` to create it.'))
|
logging.warning(msg + '\n\t' + _('Use `fdroid update -c` to create it.'))
|
||||||
|
|
||||||
insert_funding_yml_donation_links(apps)
|
|
||||||
copy_triple_t_store_metadata(apps)
|
|
||||||
insert_obbs(repodirs[0], apps, apks)
|
|
||||||
insert_localized_app_metadata(apps)
|
|
||||||
translate_per_build_anti_features(apps, apks)
|
|
||||||
|
|
||||||
# Scan the archive repo for apks as well
|
# Scan the archive repo for apks as well
|
||||||
if len(repodirs) > 1:
|
if len(repodirs) > 1:
|
||||||
archapks, cc = process_apks(apkcache, repodirs[1], knownapks, options.use_date_from_apk)
|
archapks, cc = process_apks(apkcache, repodirs[1], knownapks, options.use_date_from_apk)
|
||||||
@ -2316,13 +2379,18 @@ def main():
|
|||||||
else:
|
else:
|
||||||
archapks = []
|
archapks = []
|
||||||
|
|
||||||
# Apply information from latest apks to the application and update dates
|
# We need app.Name populated for all apps regardless of which repo they end up in
|
||||||
apply_info_from_latest_apk(apps, apks + archapks)
|
# for the old-style inter-app links, so let's do it before we do anything else.
|
||||||
|
# This will be done again (as part of apply_info_from_latest_apk) for repo and archive
|
||||||
|
# separately later on, but it's fairly cheap anyway.
|
||||||
|
read_names_from_apks(apps, apks + archapks)
|
||||||
|
|
||||||
# Sort the app list by name, then the web site doesn't have to by default.
|
if len(repodirs) > 1:
|
||||||
# (we had to wait until we'd scanned the apks to do this, because mostly the
|
archive_old_apks(apps, apks, archapks, repodirs[0], repodirs[1], config['archive_older'])
|
||||||
# name comes from there!)
|
archived_apps = prepare_apps(apps, archapks, repodirs[1])
|
||||||
sortedids = sorted(apps.keys(), key=lambda appid: apps[appid].Name.upper())
|
index.make(archived_apps, archapks, repodirs[1], True)
|
||||||
|
|
||||||
|
repoapps = prepare_apps(apps, apks, repodirs[0])
|
||||||
|
|
||||||
# APKs are placed into multiple repos based on the app package, providing
|
# APKs are placed into multiple repos based on the app package, providing
|
||||||
# per-app subscription feeds for nightly builds and things like it
|
# per-app subscription feeds for nightly builds and things like it
|
||||||
@ -2333,25 +2401,15 @@ def main():
|
|||||||
appdict = dict()
|
appdict = dict()
|
||||||
appdict[appid] = app
|
appdict[appid] = app
|
||||||
if os.path.isdir(repodir):
|
if os.path.isdir(repodir):
|
||||||
index.make(appdict, [appid], apks, repodir, False)
|
index.make(appdict, apks, repodir, False)
|
||||||
else:
|
else:
|
||||||
logging.info(_('Skipping index generation for {appid}').format(appid=appid))
|
logging.info(_('Skipping index generation for {appid}').format(appid=appid))
|
||||||
return
|
return
|
||||||
|
|
||||||
if len(repodirs) > 1:
|
|
||||||
archive_old_apks(apps, apks, archapks, repodirs[0], repodirs[1], config['archive_older'])
|
|
||||||
|
|
||||||
# Make the index for the main repo...
|
# Make the index for the main repo...
|
||||||
index.make(apps, sortedids, apks, repodirs[0], False)
|
index.make(repoapps, apks, repodirs[0], False)
|
||||||
make_categories_txt(repodirs[0], categories)
|
make_categories_txt(repodirs[0], categories)
|
||||||
|
|
||||||
# If there's an archive repo, make the index for it. We already scanned it
|
|
||||||
# earlier on.
|
|
||||||
if len(repodirs) > 1:
|
|
||||||
archived_apps = copy.deepcopy(apps)
|
|
||||||
apply_info_from_latest_apk(archived_apps, archapks)
|
|
||||||
index.make(archived_apps, sortedids, archapks, repodirs[1], True)
|
|
||||||
|
|
||||||
git_remote = config.get('binary_transparency_remote')
|
git_remote = config.get('binary_transparency_remote')
|
||||||
if git_remote or os.path.isdir(os.path.join('binary_transparency', '.git')):
|
if git_remote or os.path.isdir(os.path.join('binary_transparency', '.git')):
|
||||||
from . import btlog
|
from . import btlog
|
||||||
@ -2381,8 +2439,8 @@ def main():
|
|||||||
|
|
||||||
# Update the wiki...
|
# Update the wiki...
|
||||||
if options.wiki:
|
if options.wiki:
|
||||||
update_wiki(apps, sortedids, apks + archapks)
|
update_wiki(apps, apks + archapks)
|
||||||
status_update_json(apps, sortedids, apks + archapks)
|
status_update_json(apps, apks + archapks)
|
||||||
|
|
||||||
logging.info(_("Finished"))
|
logging.info(_("Finished"))
|
||||||
|
|
||||||
|
@ -905,6 +905,13 @@ class MetadataTest(unittest.TestCase):
|
|||||||
'Subdir': None,
|
'Subdir': None,
|
||||||
'Prepare': None}})
|
'Prepare': None}})
|
||||||
|
|
||||||
|
def test_read_xref_metadata(self):
|
||||||
|
os.chdir('xref')
|
||||||
|
fdroidserver.metadata.warnings_action = 'error'
|
||||||
|
apps = fdroidserver.metadata.read_metadata(xref=True)
|
||||||
|
self.assertListEqual(list(apps.keys()),
|
||||||
|
['aarddict.android', 'org.coolreader', 'org.geometerplus.zlibrary.ui.android'])
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
os.chdir(os.path.dirname(__file__))
|
os.chdir(os.path.dirname(__file__))
|
||||||
|
@ -607,6 +607,18 @@ grep -F 'info.guardianproject.urzip_100.apk' repo/index-v1.json repo/index.xml
|
|||||||
grep -F 'info.guardianproject.urzip_100_b4964fd.apk' repo/index-v1.json
|
grep -F 'info.guardianproject.urzip_100_b4964fd.apk' repo/index-v1.json
|
||||||
! grep -F 'info.guardianproject.urzip_100_b4964fd.apk' repo/index.xml
|
! grep -F 'info.guardianproject.urzip_100_b4964fd.apk' repo/index.xml
|
||||||
|
|
||||||
|
#------------------------------------------------------------------------------#
|
||||||
|
echo_header "test whatsnew from fastlane without CVC set"
|
||||||
|
REPOROOT=`create_test_dir`
|
||||||
|
cd $REPOROOT
|
||||||
|
fdroid_init_with_prebuilt_keystore
|
||||||
|
mkdir -p metadata/com.politedroid/en-US/changelogs/
|
||||||
|
cp $WORKSPACE/tests/repo/com.politedroid_6.apk repo
|
||||||
|
cp $WORKSPACE/tests/metadata/com.politedroid.yml metadata
|
||||||
|
echo "whatsnew test" > metadata/com.politedroid/en-US/changelogs/6.txt
|
||||||
|
sed -i -e '/CurrentVersion/d' metadata/com.politedroid.yml
|
||||||
|
$fdroid update --pretty --nosign
|
||||||
|
grep -F 'whatsnew' repo/index-v1.json
|
||||||
|
|
||||||
#------------------------------------------------------------------------------#
|
#------------------------------------------------------------------------------#
|
||||||
echo_header "test metadata checks"
|
echo_header "test metadata checks"
|
||||||
|
104
tests/xref/metadata/aarddict.android.yml
Normal file
104
tests/xref/metadata/aarddict.android.yml
Normal file
@ -0,0 +1,104 @@
|
|||||||
|
Categories:
|
||||||
|
- Reading
|
||||||
|
License: GPL-3.0-only
|
||||||
|
WebSite: http://aarddict.org
|
||||||
|
SourceCode: https://github.com/aarddict/android
|
||||||
|
IssueTracker: https://github.com/aarddict/android/issues
|
||||||
|
Donate: http://aarddict.org/android
|
||||||
|
FlattrID: '80944'
|
||||||
|
|
||||||
|
AutoName: Aard
|
||||||
|
Description: |-
|
||||||
|
'''Note:''' This app is no longer maintained.
|
||||||
|
|
||||||
|
* looks up words fast even with huge dictionaries like English Wikipedia
|
||||||
|
* looks up words in multiple dictionaries in multiple languages without switching
|
||||||
|
* works great as an offline Wikipedia reader
|
||||||
|
* uses same the efficient, highly compressed dictionary data storage format as the desktop version
|
||||||
|
* it can integrate with both [[org.geometerplus.zlibrary.ui.android]] and [[org.coolreader]]
|
||||||
|
|
||||||
|
Ready-made dictionaries can be found on the website, or you can roll your own
|
||||||
|
with the tools on the website.
|
||||||
|
|
||||||
|
RepoType: git
|
||||||
|
Repo: https://github.com/aarddict/android.git
|
||||||
|
|
||||||
|
Builds:
|
||||||
|
- versionName: 1.3.1
|
||||||
|
versionCode: 10
|
||||||
|
commit: 1.3.1
|
||||||
|
prebuild: mv lib libs
|
||||||
|
|
||||||
|
- versionName: 1.4.0
|
||||||
|
versionCode: 12
|
||||||
|
commit: 7df930161256324e31b2c720281629f58446b6d6
|
||||||
|
prebuild: mv lib libs
|
||||||
|
|
||||||
|
- versionName: 1.4.1
|
||||||
|
versionCode: 13
|
||||||
|
commit: b81c9c8c52de5f65b550e3c608a610962582e5cd
|
||||||
|
prebuild: mv lib libs
|
||||||
|
|
||||||
|
- versionName: 1.6.1
|
||||||
|
versionCode: 16
|
||||||
|
commit: 1.6.1
|
||||||
|
target: android-17
|
||||||
|
|
||||||
|
- versionName: 1.6.2
|
||||||
|
versionCode: 17
|
||||||
|
commit: 1.6.2
|
||||||
|
target: android-17
|
||||||
|
|
||||||
|
- versionName: 1.6.3
|
||||||
|
versionCode: 18
|
||||||
|
commit: 1.6.3
|
||||||
|
target: android-17
|
||||||
|
|
||||||
|
- versionName: 1.6.4
|
||||||
|
versionCode: 19
|
||||||
|
commit: 1.6.4
|
||||||
|
target: android-17
|
||||||
|
|
||||||
|
- versionName: 1.6.5
|
||||||
|
versionCode: 20
|
||||||
|
commit: 1.6.5
|
||||||
|
target: android-17
|
||||||
|
|
||||||
|
- versionName: 1.6.6
|
||||||
|
versionCode: 21
|
||||||
|
commit: 1.6.6
|
||||||
|
target: android-17
|
||||||
|
|
||||||
|
- versionName: 1.6.7
|
||||||
|
versionCode: 22
|
||||||
|
commit: 1.6.7
|
||||||
|
target: android-17
|
||||||
|
|
||||||
|
- versionName: 1.6.8
|
||||||
|
versionCode: 23
|
||||||
|
commit: 1.6.8
|
||||||
|
target: android-17
|
||||||
|
|
||||||
|
- versionName: 1.6.9
|
||||||
|
versionCode: 24
|
||||||
|
commit: 1.6.9
|
||||||
|
target: android-17
|
||||||
|
|
||||||
|
- versionName: 1.6.10
|
||||||
|
versionCode: 25
|
||||||
|
commit: 1.6.10
|
||||||
|
target: android-17
|
||||||
|
|
||||||
|
- versionName: 1.6.11
|
||||||
|
versionCode: 26
|
||||||
|
commit: 1.6.11
|
||||||
|
target: android-17
|
||||||
|
|
||||||
|
MaintainerNotes: |-
|
||||||
|
Github site points to https://github.com/itkach/aard2-android (itkach.aard2) as successor.
|
||||||
|
We cannot point to this app as all its builds are disabled (as of 2018-10-16).
|
||||||
|
|
||||||
|
AutoUpdateMode: Version %v
|
||||||
|
UpdateCheckMode: Tags
|
||||||
|
CurrentVersion: 1.6.11
|
||||||
|
CurrentVersionCode: 26
|
551
tests/xref/metadata/org.coolreader.yml
Normal file
551
tests/xref/metadata/org.coolreader.yml
Normal file
@ -0,0 +1,551 @@
|
|||||||
|
Categories:
|
||||||
|
- Reading
|
||||||
|
License: GPL-2.0-only
|
||||||
|
AuthorName: Vadim Lopatin
|
||||||
|
AuthorEmail: coolreader.org@gmail.com
|
||||||
|
WebSite: https://sourceforge.net/projects/crengine/
|
||||||
|
SourceCode: https://github.com/buggins/coolreader
|
||||||
|
IssueTracker: https://github.com/buggins/coolreader/issues
|
||||||
|
Donate: https://sourceforge.net/p/crengine/donate
|
||||||
|
|
||||||
|
AutoName: Cool Reader
|
||||||
|
Description: |-
|
||||||
|
An e-book reader. Supported formats: FB2, TXT, RTF, TCR, HTML, EPUB, CHM. Browse
|
||||||
|
free books online and add your own OPDS shares.
|
||||||
|
|
||||||
|
The default dictionary app is non-free. However, you can choose
|
||||||
|
[[aarddict.android]] as a dictionary from the Dictionary section of the
|
||||||
|
Settings.
|
||||||
|
|
||||||
|
RepoType: git
|
||||||
|
Repo: https://github.com/buggins/coolreader
|
||||||
|
|
||||||
|
Builds:
|
||||||
|
- versionName: 3.0.39-35
|
||||||
|
versionCode: 60
|
||||||
|
commit: 68ad007ac1272ef322fd61cb6591618723422380
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.40-1
|
||||||
|
versionCode: 64
|
||||||
|
commit: cr3.0.40-1
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.40-6
|
||||||
|
versionCode: 69
|
||||||
|
commit: cr3.0.40-6
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.41-3
|
||||||
|
versionCode: 75
|
||||||
|
commit: cr3.0.41-3
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.41-9
|
||||||
|
versionCode: 81
|
||||||
|
commit: cr3.0.41-9
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.42-6
|
||||||
|
versionCode: 86
|
||||||
|
commit: cr3.0.42-6
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.43-4
|
||||||
|
versionCode: 94
|
||||||
|
commit: cr3.0.43-4
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.43-6
|
||||||
|
versionCode: 96
|
||||||
|
commit: cr3.0.43-6
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.44-03
|
||||||
|
versionCode: 103
|
||||||
|
commit: cr3.0.44-3
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.44-09
|
||||||
|
versionCode: 109
|
||||||
|
commit: cr3.0.44-9
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.45-04
|
||||||
|
versionCode: 114
|
||||||
|
disable: tag points to wrong version
|
||||||
|
commit: unknown - see disabled
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.45-09
|
||||||
|
versionCode: 119
|
||||||
|
disable: tag points to wrong version
|
||||||
|
commit: unknown - see disabled
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.45-11
|
||||||
|
versionCode: 121
|
||||||
|
commit: 6c42a9b65090da9640ccb6ee317bb32de24201fb
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.45-14
|
||||||
|
versionCode: 124
|
||||||
|
commit: cr3.0.45-14
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.46-1
|
||||||
|
versionCode: 131
|
||||||
|
commit: cr3.0.46-1
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.46-5
|
||||||
|
versionCode: 135
|
||||||
|
commit: cr3.0.46-5
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.46-11
|
||||||
|
versionCode: 141
|
||||||
|
commit: cr3.0.46-11
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.48-5
|
||||||
|
versionCode: 155
|
||||||
|
commit: cr3.0.48-5
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.49-2
|
||||||
|
versionCode: 162
|
||||||
|
commit: cr3.0.49-2
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.49-5
|
||||||
|
versionCode: 165
|
||||||
|
commit: cr3.0.49-5
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.49-9
|
||||||
|
versionCode: 169
|
||||||
|
commit: cr3.0.49-9
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.49-16
|
||||||
|
versionCode: 176
|
||||||
|
commit: cr3.0.49-16
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.51-7
|
||||||
|
versionCode: 197
|
||||||
|
commit: cr3.0.51-7
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.52-1
|
||||||
|
versionCode: 241
|
||||||
|
commit: cr3.0.52-1
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.52-4
|
||||||
|
versionCode: 244
|
||||||
|
commit: cr3.0.52-4
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.53-3
|
||||||
|
versionCode: 247
|
||||||
|
commit: cr3.0.53-3
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.53-10
|
||||||
|
versionCode: 255
|
||||||
|
commit: cr3.0.53-10
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.53-14
|
||||||
|
versionCode: 259
|
||||||
|
commit: cr3.0.53-14
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.53-18
|
||||||
|
versionCode: 263
|
||||||
|
commit: c555ecd66d18b218fb255733c8b33a0825992f76
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.53-19
|
||||||
|
versionCode: 264
|
||||||
|
commit: cr3.0.53-19
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.54-5
|
||||||
|
versionCode: 275
|
||||||
|
commit: cr3.0.54-5
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.54-9
|
||||||
|
versionCode: 279
|
||||||
|
commit: cr3.0.54-9
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.54-33
|
||||||
|
versionCode: 303
|
||||||
|
commit: cr3.0.54-33
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.54-38
|
||||||
|
versionCode: 308
|
||||||
|
commit: cr3.0.54-38
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.54-47
|
||||||
|
versionCode: 447
|
||||||
|
commit: cr3.0.54-47
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.55-5
|
||||||
|
versionCode: 505
|
||||||
|
commit: cr3.0.55-5
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.55-9
|
||||||
|
versionCode: 509
|
||||||
|
commit: cr3.0.55-9
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.55-14
|
||||||
|
versionCode: 514
|
||||||
|
commit: cr3.0.55-14
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.55-30
|
||||||
|
versionCode: 530
|
||||||
|
commit: cr3.0.55-30
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/ant.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.55-32
|
||||||
|
versionCode: 532
|
||||||
|
commit: cr3.0.55-32
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/ant.properties
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.56-5
|
||||||
|
versionCode: 565
|
||||||
|
disable: builds ok but crashes at cr3.0.56-5
|
||||||
|
commit: cr3.0.56-5
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/ant.properties
|
||||||
|
target: android-14
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.57-15
|
||||||
|
versionCode: 625
|
||||||
|
disable: builds ok but crashes at cr3.0.57-15
|
||||||
|
commit: cr3.0.57-15
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/ant.properties
|
||||||
|
target: android-14
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.0.57-16
|
||||||
|
versionCode: 626
|
||||||
|
disable: builds ok but crashes at 2f3d5fb86df316d
|
||||||
|
commit: 2f3d5fb86df316d
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/ant.properties
|
||||||
|
target: android-14
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.1.2-27
|
||||||
|
versionCode: 847
|
||||||
|
commit: cr3-3.1.2-27
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/ant.properties
|
||||||
|
target: android-16
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.1.2-38
|
||||||
|
versionCode: 858
|
||||||
|
disable: ndk build errors
|
||||||
|
commit: cr3-3.1.2-38
|
||||||
|
subdir: android
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.1.2-39
|
||||||
|
versionCode: 859
|
||||||
|
commit: cr3-3.1.2-39-market
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
target: android-19
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.1.2-48
|
||||||
|
versionCode: 868
|
||||||
|
commit: cr3.1.2-48
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
target: android-19
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.1.2-50
|
||||||
|
versionCode: 870
|
||||||
|
commit: cr3.1.2-50
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
target: android-19
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.1.2-51
|
||||||
|
versionCode: 871
|
||||||
|
commit: cr3-3.1.2-51
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
target: android-19
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.1.2-55
|
||||||
|
versionCode: 875
|
||||||
|
commit: cr3-3.1.2-55
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
target: android-19
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.1.2-68
|
||||||
|
versionCode: 888
|
||||||
|
commit: cr3.1.2-68
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
target: android-22
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.1.2-72
|
||||||
|
versionCode: 892
|
||||||
|
commit: cr3.1.2-71
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
prebuild: sed -i -e 's/^APP_ABI\s*:=.*/APP_ABI := all/' jni/Application.mk
|
||||||
|
target: android-22
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.1.2-87
|
||||||
|
versionCode: 907
|
||||||
|
commit: 1e07d15d4644c690
|
||||||
|
subdir: android
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
prebuild: sed -i -e 's/^APP_ABI\s*:=.*/APP_ABI := all/' jni/Application.mk
|
||||||
|
target: android-22
|
||||||
|
scanignore:
|
||||||
|
- cr3wx
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 3.2.9-1
|
||||||
|
versionCode: 2091
|
||||||
|
commit: bf48e5b7a5e89e5fc8b1f971573b5046e6b27bd3
|
||||||
|
subdir: android
|
||||||
|
gradle:
|
||||||
|
- yes
|
||||||
|
output: app/build/outputs/apk/release/app-universal-release-unsigned.apk
|
||||||
|
rm:
|
||||||
|
- android/build.properties
|
||||||
|
prebuild: sed -i -e 's/^APP_ABI\s*:=.*/APP_ABI := all/' jni/Application.mk
|
||||||
|
scanignore:
|
||||||
|
- cr3wx
|
||||||
|
ndk: r16b
|
||||||
|
|
||||||
|
- versionName: 3.2.38-1
|
||||||
|
versionCode: 32380
|
||||||
|
commit: cr3.2.38
|
||||||
|
subdir: android/app
|
||||||
|
gradle:
|
||||||
|
- yes
|
||||||
|
rm:
|
||||||
|
- cr3wx/src/resources/crrcconv.exe
|
||||||
|
prebuild:
|
||||||
|
- sed -i -e 's/\r//' ../gradle/wrapper/gradle-wrapper.properties
|
||||||
|
- sed -i -e 's/enable true/enable false/' build.gradle
|
||||||
|
ndk: r21
|
||||||
|
|
||||||
|
AutoUpdateMode: None
|
||||||
|
UpdateCheckMode: Tags
|
||||||
|
CurrentVersion: 3.2.39-1
|
||||||
|
CurrentVersionCode: 32390
|
556
tests/xref/metadata/org.geometerplus.zlibrary.ui.android.yml
Normal file
556
tests/xref/metadata/org.geometerplus.zlibrary.ui.android.yml
Normal file
@ -0,0 +1,556 @@
|
|||||||
|
AntiFeatures:
|
||||||
|
- NonFreeAdd
|
||||||
|
- UpstreamNonFree
|
||||||
|
Categories:
|
||||||
|
- Reading
|
||||||
|
License: GPL-2.0-or-later
|
||||||
|
AuthorName: Nikolay Pultsin
|
||||||
|
AuthorEmail: geometer@fbreader.org
|
||||||
|
AuthorWebSite: https://fbreader.org/
|
||||||
|
WebSite: https://fbreader.org/FBReaderJ
|
||||||
|
SourceCode: https://github.com/geometer/FBReaderJ
|
||||||
|
IssueTracker: https://github.com/geometer/FBReaderJ/issues
|
||||||
|
Changelog: https://raw.githubusercontent.com/geometer/FBReaderJ/HEAD/ChangeLog
|
||||||
|
Donate: https://fbreader.org/donation/make.php
|
||||||
|
|
||||||
|
AutoName: FBReader
|
||||||
|
Description: |-
|
||||||
|
'''N.B'''There are three different apks to cover the different versions of
|
||||||
|
Android. Donut covers 1.5-1.6; Froyo covers 2.0-2.3 and Honeycomb covers 3.0+.
|
||||||
|
x86 and MIPS are supported natively in all apks.
|
||||||
|
|
||||||
|
An e-book reader. Features include the ability to stock up on books from online
|
||||||
|
OPDS libraries like Project Gutenberg straight from the app. F-Droid.org has two
|
||||||
|
other addon apps that provide text-to-speech functionality and one to support
|
||||||
|
''local'' OPDS shares.
|
||||||
|
|
||||||
|
Anti-features: Addons. While there are some addons for this app that are free,
|
||||||
|
the dictionaries that are suggested are not. However, it does support
|
||||||
|
[[aarddict.android]], as long as that is installed beforehand '''and''' you
|
||||||
|
choose it via the Dictionary section of the settings.
|
||||||
|
|
||||||
|
RepoType: git
|
||||||
|
Repo: https://github.com/geometer/FBReaderJ.git
|
||||||
|
|
||||||
|
Builds:
|
||||||
|
- versionName: 0.99.11
|
||||||
|
versionCode: 9911
|
||||||
|
commit: 0.99.11
|
||||||
|
antcommands:
|
||||||
|
- package
|
||||||
|
|
||||||
|
- versionName: 0.99.12
|
||||||
|
versionCode: 9912
|
||||||
|
commit: 0.99.12
|
||||||
|
antcommands:
|
||||||
|
- package
|
||||||
|
|
||||||
|
- versionName: 0.99.15
|
||||||
|
versionCode: 9915
|
||||||
|
commit: 0.99.15
|
||||||
|
antcommands:
|
||||||
|
- package
|
||||||
|
|
||||||
|
- versionName: 0.99.18
|
||||||
|
versionCode: 9918
|
||||||
|
commit: 0.99.18
|
||||||
|
antcommands:
|
||||||
|
- package
|
||||||
|
|
||||||
|
- versionName: 1.0.9
|
||||||
|
versionCode: 10011
|
||||||
|
commit: 1.0.9
|
||||||
|
antcommands:
|
||||||
|
- package
|
||||||
|
|
||||||
|
- versionName: 1.0.11
|
||||||
|
versionCode: 10013
|
||||||
|
commit: 1.0.11
|
||||||
|
antcommands:
|
||||||
|
- package
|
||||||
|
|
||||||
|
- versionName: 1.0.12
|
||||||
|
versionCode: 10014
|
||||||
|
commit: fd349108eff9caa9152a
|
||||||
|
antcommands:
|
||||||
|
- package
|
||||||
|
|
||||||
|
- versionName: 1.1.0
|
||||||
|
versionCode: 10100
|
||||||
|
commit: 5eb993e1fac2898d2361
|
||||||
|
antcommands:
|
||||||
|
- package
|
||||||
|
|
||||||
|
- versionName: 1.1.1
|
||||||
|
versionCode: 10101
|
||||||
|
commit: 1.1.1
|
||||||
|
antcommands:
|
||||||
|
- package
|
||||||
|
|
||||||
|
- versionName: 1.1.2
|
||||||
|
versionCode: 10102
|
||||||
|
commit: 1.1.2
|
||||||
|
antcommands:
|
||||||
|
- package
|
||||||
|
|
||||||
|
- versionName: 1.1.8
|
||||||
|
versionCode: 101081
|
||||||
|
commit: 1.1.8
|
||||||
|
antcommands:
|
||||||
|
- package
|
||||||
|
|
||||||
|
- versionName: 1.1.9
|
||||||
|
versionCode: 101091
|
||||||
|
commit: 1.1.9
|
||||||
|
antcommands:
|
||||||
|
- package
|
||||||
|
|
||||||
|
- versionName: 1.1.10
|
||||||
|
versionCode: 101101
|
||||||
|
commit: 13ee5d79431815dd694e
|
||||||
|
antcommands:
|
||||||
|
- package
|
||||||
|
|
||||||
|
- versionName: 1.2.2
|
||||||
|
versionCode: 102021
|
||||||
|
commit: e63c553aeb032da828b270a735f0171d8d22c54c
|
||||||
|
prebuild:
|
||||||
|
- mkdir res/drawable
|
||||||
|
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
||||||
|
target: android-10
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 1.2.3
|
||||||
|
versionCode: 102031
|
||||||
|
commit: 46d83bb4351c2f6ec51e0d9aa6202c86c1297e7f
|
||||||
|
prebuild:
|
||||||
|
- mkdir res/drawable
|
||||||
|
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
||||||
|
target: android-10
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 1.2.4
|
||||||
|
versionCode: 102041
|
||||||
|
commit: 6426bcf131d4
|
||||||
|
prebuild:
|
||||||
|
- mkdir res/drawable
|
||||||
|
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
||||||
|
target: android-10
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 1.2.6
|
||||||
|
versionCode: 102061
|
||||||
|
commit: 1.2.6
|
||||||
|
prebuild:
|
||||||
|
- mkdir res/drawable
|
||||||
|
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
||||||
|
target: android-10
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 1.3.3
|
||||||
|
versionCode: 103031
|
||||||
|
commit: 1.3.3
|
||||||
|
prebuild:
|
||||||
|
- mkdir res/drawable
|
||||||
|
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
||||||
|
target: android-10
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 1.3.6
|
||||||
|
versionCode: 103061
|
||||||
|
commit: a16e3eb7ff731edea99248f8a7c1633148a26236
|
||||||
|
prebuild:
|
||||||
|
- mkdir res/drawable
|
||||||
|
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
||||||
|
target: android-10
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 1.5.5
|
||||||
|
versionCode: 105051
|
||||||
|
commit: 1.5.5
|
||||||
|
prebuild:
|
||||||
|
- mkdir res/drawable
|
||||||
|
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
||||||
|
target: android-10
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 1.6.1
|
||||||
|
versionCode: 106011
|
||||||
|
commit: 1.6.1
|
||||||
|
prebuild:
|
||||||
|
- mkdir res/drawable
|
||||||
|
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 1.6.4-Donut
|
||||||
|
versionCode: 106040
|
||||||
|
commit: af881fe37
|
||||||
|
forceversion: true
|
||||||
|
prebuild:
|
||||||
|
- mkdir res/drawable
|
||||||
|
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 1.6.4-Froyo
|
||||||
|
versionCode: 106041
|
||||||
|
commit: 696ed7704
|
||||||
|
forceversion: true
|
||||||
|
prebuild:
|
||||||
|
- mkdir res/drawable
|
||||||
|
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 1.6.4
|
||||||
|
versionCode: 106042
|
||||||
|
commit: b3b4667ccb
|
||||||
|
prebuild:
|
||||||
|
- mkdir res/drawable
|
||||||
|
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 1.7.2-Donut
|
||||||
|
versionCode: 107019
|
||||||
|
commit: a4a5e506b
|
||||||
|
forceversion: true
|
||||||
|
forcevercode: true
|
||||||
|
prebuild:
|
||||||
|
- mkdir res/drawable
|
||||||
|
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 1.7.2-Froyo
|
||||||
|
versionCode: 107020
|
||||||
|
commit: 33ffc7e5b
|
||||||
|
forceversion: true
|
||||||
|
forcevercode: true
|
||||||
|
prebuild:
|
||||||
|
- mkdir res/drawable
|
||||||
|
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 1.7.2-Honeycomb
|
||||||
|
versionCode: 107021
|
||||||
|
commit: 0520159677
|
||||||
|
forceversion: true
|
||||||
|
prebuild:
|
||||||
|
- mkdir res/drawable
|
||||||
|
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 1.7.3-Donut
|
||||||
|
versionCode: 107040
|
||||||
|
commit: 2c6253dd
|
||||||
|
forceversion: true
|
||||||
|
prebuild:
|
||||||
|
- mkdir res/drawable
|
||||||
|
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 1.7.3-Froyo
|
||||||
|
versionCode: 107041
|
||||||
|
commit: 934bf7f5
|
||||||
|
forceversion: true
|
||||||
|
prebuild:
|
||||||
|
- mkdir res/drawable
|
||||||
|
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 1.7.3-Honeycomb
|
||||||
|
versionCode: 107042
|
||||||
|
commit: c4a3c7a9a
|
||||||
|
forceversion: true
|
||||||
|
prebuild:
|
||||||
|
- mkdir res/drawable
|
||||||
|
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 1.7.8-Donut
|
||||||
|
versionCode: 107080
|
||||||
|
commit: c1470c9be1
|
||||||
|
forceversion: true
|
||||||
|
prebuild:
|
||||||
|
- mkdir res/drawable
|
||||||
|
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 1.7.8-Froyo
|
||||||
|
versionCode: 107084
|
||||||
|
commit: 1.7.8
|
||||||
|
forceversion: true
|
||||||
|
prebuild:
|
||||||
|
- mkdir res/drawable
|
||||||
|
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 1.7.8-Honeycomb
|
||||||
|
versionCode: 107085
|
||||||
|
commit: 1.7.8-ics
|
||||||
|
forceversion: true
|
||||||
|
prebuild:
|
||||||
|
- mkdir res/drawable
|
||||||
|
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 1.8.2-Donut
|
||||||
|
versionCode: 108020
|
||||||
|
commit: 9bec0ff445e66a
|
||||||
|
forceversion: true
|
||||||
|
prebuild:
|
||||||
|
- mkdir res/drawable
|
||||||
|
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
||||||
|
androidupdate:
|
||||||
|
- third-party/AmbilWarna
|
||||||
|
- .
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 1.8.2-Froyo
|
||||||
|
versionCode: 108021
|
||||||
|
commit: 0f02d4e9232227
|
||||||
|
forceversion: true
|
||||||
|
prebuild:
|
||||||
|
- mkdir res/drawable
|
||||||
|
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
||||||
|
androidupdate:
|
||||||
|
- third-party/AmbilWarna
|
||||||
|
- .
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 1.8.2-Honeycomb+
|
||||||
|
versionCode: 108022
|
||||||
|
commit: 1112df415d
|
||||||
|
forceversion: true
|
||||||
|
prebuild:
|
||||||
|
- mkdir res/drawable
|
||||||
|
- find icons -iname "*.*" -exec cp {} res/drawable \;
|
||||||
|
androidupdate:
|
||||||
|
- third-party/AmbilWarna
|
||||||
|
- .
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 2.0.6-gb
|
||||||
|
versionCode: 2000610
|
||||||
|
disable: missing res with android-9
|
||||||
|
commit: 2.0.6
|
||||||
|
patch:
|
||||||
|
- fbreader-2.0.6.patch
|
||||||
|
srclibs:
|
||||||
|
- PDFParseLib@36d7479ce85638eb4f0ff9c875ec77680177da5d
|
||||||
|
- ApacheHttpClient@4.2.5
|
||||||
|
- NanoHttpd@Release-2.0.5
|
||||||
|
- JsonSimple@tag_release_1_1_1
|
||||||
|
forceversion: true
|
||||||
|
rm:
|
||||||
|
- libs/*jar
|
||||||
|
- obsolete/lib/*.jar
|
||||||
|
prebuild:
|
||||||
|
- echo -e "sdk.dir=$$SDK$$\nndk.dir=$$NDK$$\n" >> local.properties
|
||||||
|
- cp local.properties third-party/AmbilWarna/
|
||||||
|
- cp local.properties third-party/android-filechooser/code/
|
||||||
|
- cp local.properties third-party/drag-sort-listview/library/
|
||||||
|
- pushd $$ApacheHttpClient$$/httpmime/
|
||||||
|
- $$MVN3$$ package
|
||||||
|
- popd
|
||||||
|
- cp $$ApacheHttpClient$$/httpmime/target/httpmime-4.2.5.jar libs/
|
||||||
|
- pushd $$NanoHttpd$$
|
||||||
|
- $$MVN3$$ package
|
||||||
|
- popd
|
||||||
|
- cp $$NanoHttpd$$/core/target/nanohttpd-2.0.5.jar libs/
|
||||||
|
- cp -fR $$JsonSimple$$/src/main/java/org src/
|
||||||
|
- cp -fR $$PDFParseLib$$/pdfparse-lib/src/main/java/org src/
|
||||||
|
- rm -fR src/com/paragon
|
||||||
|
androidupdate:
|
||||||
|
- third-party/AmbilWarna
|
||||||
|
- third-party/android-filechooser/code
|
||||||
|
- third-party/drag-sort-listview/library
|
||||||
|
- .
|
||||||
|
target: android-14
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 2.0.6-ics
|
||||||
|
versionCode: 2000620
|
||||||
|
commit: b1dd70ff149560889e7548762046da4933e51e94
|
||||||
|
patch:
|
||||||
|
- fbreader-2.0.6.patch
|
||||||
|
srclibs:
|
||||||
|
- FBReaderJ@2.0.6
|
||||||
|
- PDFParseLib@36d7479ce85638eb4f0ff9c875ec77680177da5d
|
||||||
|
- ApacheHttpClient@4.2.5
|
||||||
|
- NanoHttpd@Release-2.0.5
|
||||||
|
- JsonSimple@tag_release_1_1_1
|
||||||
|
forceversion: true
|
||||||
|
rm:
|
||||||
|
- libs/*jar
|
||||||
|
- obsolete/lib/*.jar
|
||||||
|
prebuild:
|
||||||
|
- echo -e "sdk.dir=$$SDK$$\nndk.dir=$$NDK$$\n" >> local.properties
|
||||||
|
- cp local.properties third-party/AmbilWarna/
|
||||||
|
- cp local.properties third-party/android-filechooser/code/
|
||||||
|
- cp local.properties third-party/drag-sort-listview/library/
|
||||||
|
- pushd $$ApacheHttpClient$$/httpmime/
|
||||||
|
- $$MVN3$$ package
|
||||||
|
- popd
|
||||||
|
- cp $$ApacheHttpClient$$/httpmime/target/httpmime-4.2.5.jar libs/
|
||||||
|
- pushd $$NanoHttpd$$
|
||||||
|
- $$MVN3$$ package
|
||||||
|
- popd
|
||||||
|
- cp $$NanoHttpd$$/core/target/nanohttpd-2.0.5.jar libs/
|
||||||
|
- cp -fR $$JsonSimple$$/src/main/java/org src/
|
||||||
|
- cp -fR $$PDFParseLib$$/pdfparse-lib/src/main/java/org src/
|
||||||
|
- rm -fR src/com/paragon
|
||||||
|
- sed -i -e '/com.google.android.gms.version/d' -e '/google_play_services/d' AndroidManifest.xml
|
||||||
|
- sed -i -e '/google.services.lib.dir/d' project.properties
|
||||||
|
- rm -fR src/org/geometerplus/android/fbreader/network/auth
|
||||||
|
- cp -fR $$FBReaderJ$$/src/org/geometerplus/android/fbreader/network/auth src/org/geometerplus/android/fbreader/network/
|
||||||
|
androidupdate:
|
||||||
|
- third-party/AmbilWarna
|
||||||
|
- third-party/android-filechooser/code
|
||||||
|
- third-party/drag-sort-listview/library
|
||||||
|
- .
|
||||||
|
target: android-14
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 2.1-ics
|
||||||
|
versionCode: 2010020
|
||||||
|
commit: 33139e2b04ae36388956a57373ba74e8cc0ef23c
|
||||||
|
patch:
|
||||||
|
- fbreader-2.0.6.patch
|
||||||
|
srclibs:
|
||||||
|
- FBReaderJ@2.1
|
||||||
|
- PDFParseLib@36d7479ce85638eb4f0ff9c875ec77680177da5d
|
||||||
|
- ApacheHttpClient@4.2.5
|
||||||
|
- NanoHttpd@Release-2.0.5
|
||||||
|
- JsonSimple@tag_release_1_1_1
|
||||||
|
forceversion: true
|
||||||
|
rm:
|
||||||
|
- libs/*jar
|
||||||
|
- obsolete/lib/*.jar
|
||||||
|
prebuild:
|
||||||
|
- echo -e "sdk.dir=$$SDK$$\nndk.dir=$$NDK$$\n" >> local.properties
|
||||||
|
- cp local.properties third-party/AmbilWarna/
|
||||||
|
- cp local.properties third-party/android-filechooser/code/
|
||||||
|
- cp local.properties third-party/drag-sort-listview/library/
|
||||||
|
- pushd $$ApacheHttpClient$$/httpmime/
|
||||||
|
- $$MVN3$$ package
|
||||||
|
- popd
|
||||||
|
- cp $$ApacheHttpClient$$/httpmime/target/httpmime-4.2.5.jar libs/
|
||||||
|
- pushd $$NanoHttpd$$
|
||||||
|
- $$MVN3$$ package
|
||||||
|
- popd
|
||||||
|
- cp $$NanoHttpd$$/core/target/nanohttpd-2.0.5.jar libs/
|
||||||
|
- cp -fR $$JsonSimple$$/src/main/java/org src/
|
||||||
|
- cp -fR $$PDFParseLib$$/pdfparse-lib/src/main/java/org src/
|
||||||
|
- rm -fR src/com/paragon
|
||||||
|
- sed -i -e '/com.google.android.gms.version/d' -e '/google_play_services/d' AndroidManifest.xml
|
||||||
|
- sed -i -e '/google.services.lib.dir/d' project.properties
|
||||||
|
- rm -fR src/org/geometerplus/android/fbreader/network/auth
|
||||||
|
- cp -fR $$FBReaderJ$$/src/org/geometerplus/android/fbreader/network/auth src/org/geometerplus/android/fbreader/network/
|
||||||
|
androidupdate:
|
||||||
|
- third-party/AmbilWarna
|
||||||
|
- third-party/android-filechooser/code
|
||||||
|
- third-party/drag-sort-listview/library
|
||||||
|
- .
|
||||||
|
target: android-14
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
- versionName: 2.5.9-ics
|
||||||
|
versionCode: 2050920
|
||||||
|
commit: 43e14feedf10ad53ec68bf42b1644f488889381c
|
||||||
|
srclibs:
|
||||||
|
- FBReaderJ@2.5.9
|
||||||
|
- PDFParseLib@36d7479ce85638eb4f0ff9c875ec77680177da5d
|
||||||
|
- ApacheHttpClient@4.2.5
|
||||||
|
- NanoHttpd@Release-2.0.5
|
||||||
|
- JsonSimple@tag_release_1_1_1
|
||||||
|
forceversion: true
|
||||||
|
rm:
|
||||||
|
- libs/*jar
|
||||||
|
- obsolete/lib/*.jar
|
||||||
|
- src/org/geometerplus/android/fbreader/dict/OpenDictionary.java
|
||||||
|
- src/org/geometerplus/android/fbreader/dict/Lingvo.java
|
||||||
|
extlibs:
|
||||||
|
- android/android-support-v4.jar
|
||||||
|
prebuild:
|
||||||
|
- echo -e "sdk.dir=$$SDK$$\nndk.dir=$$NDK$$\n" >> local.properties
|
||||||
|
- cp local.properties third-party/AmbilWarna/
|
||||||
|
- cp local.properties third-party/android-filechooser/code/
|
||||||
|
- cp local.properties third-party/drag-sort-listview/library/
|
||||||
|
- echo 'APP_PLATFORM := android-11' >> jni/Application.mk
|
||||||
|
- pushd $$ApacheHttpClient$$/httpmime/
|
||||||
|
- $$MVN3$$ package -Dmaven.javadoc.skip=true
|
||||||
|
- popd
|
||||||
|
- cp $$ApacheHttpClient$$/httpmime/target/httpmime-4.2.5.jar libs/
|
||||||
|
- pushd $$NanoHttpd$$
|
||||||
|
- $$MVN3$$ package
|
||||||
|
- popd
|
||||||
|
- cp $$NanoHttpd$$/core/target/nanohttpd-2.0.5.jar libs/
|
||||||
|
- cp -fR $$JsonSimple$$/src/main/java/org src/
|
||||||
|
- cp -fR $$PDFParseLib$$/pdfparse-lib/src/main/java/org src/
|
||||||
|
- rm -fR src/com/paragon
|
||||||
|
- sed -i -e '/com.google.android.gms.version/d' -e '/google_play_services/d' AndroidManifest.xml
|
||||||
|
- sed -i -e '/google.services.lib.dir/d' project.properties
|
||||||
|
- mkdir third-party/drag-sort-listview/library/libs
|
||||||
|
- cp libs/android-support-v4.jar third-party/drag-sort-listview/library/libs/&&
|
||||||
|
sed -i -e '/Lingvo/d' src/org/geometerplus/android/fbreader/dict/DictionaryUtil.java
|
||||||
|
- rm -fR src/org/geometerplus/android/fbreader/network/auth
|
||||||
|
- cp -fR $$FBReaderJ$$/src/org/geometerplus/android/fbreader/network/auth src/org/geometerplus/android/fbreader/network/
|
||||||
|
- sed -i -e '/^\s*OpenDictionary.collect/d' src/org/geometerplus/android/fbreader/dict/DictionaryUtil.java
|
||||||
|
androidupdate:
|
||||||
|
- third-party/AmbilWarna
|
||||||
|
- third-party/android-filechooser/code
|
||||||
|
- third-party/drag-sort-listview/library
|
||||||
|
- .
|
||||||
|
target: android-21
|
||||||
|
buildjni:
|
||||||
|
- yes
|
||||||
|
|
||||||
|
MaintainerNotes: |-
|
||||||
|
* LingvoIntegration and OpenDictionary APIs are non-free. Remove jars and patch
|
||||||
|
depending code. Currently done with rm and sed in prebuilds.
|
||||||
|
* %v tags are currently targeting gingerbread, but have ressource conflicts
|
||||||
|
with target=android-9; they build with target=android-14
|
||||||
|
* %v-ics tags are actually based on the yotaphone branch, so we have to
|
||||||
|
use raw commits for the ice-cream-sandwich branch (look for "Merge
|
||||||
|
branch 'master' into ice-cream-sandwich" after a commit with "version
|
||||||
|
=> ...")
|
||||||
|
* ics branch uses google play, so we have to sed AM.xml and ant files.
|
||||||
|
/fbreader/network/ depends on Google Play Services, so these are
|
||||||
|
removed and replaced with the master branch which does not depend on
|
||||||
|
these.
|
||||||
|
* UCM is set to master branch, we don't care for target or device specific
|
||||||
|
releases.
|
||||||
|
|
||||||
|
TODO:
|
||||||
|
* make gingerbread/master available for android-9!
|
||||||
|
|
||||||
|
ArchivePolicy: 6 versions
|
||||||
|
AutoUpdateMode: None
|
||||||
|
UpdateCheckMode: Tags ^[0-9.]*$
|
||||||
|
VercodeOperation: '%c + 10'
|
||||||
|
CurrentVersion: 2.5.9
|
||||||
|
CurrentVersionCode: 2050920
|
Loading…
Reference in New Issue
Block a user