Browse Source

metadata: make linkresolver an actual object

Previously this was magically capturing the apps dict when passing it around as a
function. This also moved the code to the metadata module.

Add a test doing read_metadata where the linkresolver is used. This
happens when the apps we read have a [[app.id]] link to another app.
merge-requests/774/head
Marcus Hoffmann 5 months ago
parent
commit
03881154c6
6 changed files with 1240 additions and 18 deletions
  1. +1
    -11
      fdroidserver/index.py
  2. +20
    -7
      fdroidserver/metadata.py
  3. +8
    -0
      tests/metadata.TestCase
  4. +104
    -0
      tests/xref/metadata/aarddict.android.yml
  5. +551
    -0
      tests/xref/metadata/org.coolreader.yml
  6. +556
    -0
      tests/xref/metadata/org.geometerplus.zlibrary.ui.android.yml

+ 1
- 11
fdroidserver/index.py View File

@ -58,11 +58,6 @@ def make(apps, sortedids, apks, repodir, archive):
"""
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:
common.assert_config_keystore(common.config)
@ -117,7 +112,7 @@ def make(apps, sortedids, apks, repodir, archive):
if apk['packageName'] == packageName:
newapp = copy.copy(app) # update wiki needs unmodified description
newapp['Description'] = metadata.description_html(app['Description'],
_resolve_description_link)
metadata.DescriptionResolver(apps))
appsWithPackages[packageName] = newapp
break
@ -311,11 +306,6 @@ def make_v0(apps, apks, repodir, repodict, requestsdict, fdroid_signing_key_fing
value = str(apk[key])
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=''):
"""Fill in field from metadata or localized block

+ 20
- 7
fdroidserver/metadata.py View File

@ -616,7 +616,7 @@ class DescriptionFormatter:
warn_or_exception(_("Unterminated ]]"))
url = txt[2:index]
if self.linkResolver:
url, urltext = self.linkResolver(url)
url, urltext = self.linkResolver.resolve_description_link(url)
else:
urltext = url
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:
# Parse all descriptions at load time, just to ensure cross-referencing
# 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():
try:
description_html(app.Description, linkres)
description_html(app.Description, DummyDescriptionResolver(apps))
except MetaDataException as e:
warn_or_exception(_("Problem with description of {appid}: {error}")
.format(appid=appid, error=str(e)))
@ -1679,3 +1674,21 @@ def add_metadata_arguments(parser):
'''add common command line flags related to metadata processing'''
parser.add_argument("-W", choices=['error', 'warn', 'ignore'], default='error',
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))

+ 8
- 0
tests/metadata.TestCase View File

@ -905,6 +905,14 @@ class MetadataTest(unittest.TestCase):
'Subdir': None,
'Prepare': None}})
def test_read_xref_metadata(self):
fdroidserver.common.config = {'accepted_formats': ['yml']}
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__":
os.chdir(os.path.dirname(__file__))

+ 104
- 0
tests/xref/metadata/aarddict.android.yml View 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
- 0
tests/xref/metadata/org.coolreader.yml View 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
- 0
tests/xref/metadata/org.geometerplus.zlibrary.ui.android.yml View 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…
Cancel
Save