chiark / gitweb /
New field: Provides
authorDaniel Martí <mvdan@mvdan.cc>
Tue, 31 Dec 2013 09:47:50 +0000 (10:47 +0100)
committerDaniel Martí <mvdan@mvdan.cc>
Thu, 9 Jan 2014 15:23:48 +0000 (16:23 +0100)
docs/fdroid.texi
fdroidserver/metadata.py
fdroidserver/update.py

index a00063883de7eda71551a25cbc11ee64cc275195..842d8d608f5b3cd8e1422211022401af4eae2e1e 100644 (file)
@@ -461,6 +461,7 @@ The following sections describe the fields recognised within the file.
 * Categories::
 * License::
 * Name::
+* Provides::
 * Auto Name::
 * Web Site::
 * Source Code::
@@ -585,6 +586,17 @@ overridden using this. Note that this only overrides the name in the list of
 apps presented in the client; it doesn't changed the name or application label
 in the source code.
 
+@node Provides
+@section Provides
+
+@cindex Provides
+
+Comma-separated list of application IDs that this app provides. In other
+words, if the user has any of these apps installed, F-Droid will show this app
+as installed instead. It will also appear if the user clicks on urls linking
+to the other app IDs. Useful when an app switches package name, or when you
+want an app to act as multiple apps.
+
 @node Web Site
 @section Web Site
 
index 1dc948ed5bdaadd59be7281fb8cf2baa466394fc..337a7d4def845fdc59fbf5d44c5081462b9c942b 100644 (file)
@@ -472,6 +472,7 @@ def parse_metadata(metafile):
 
     # Defaults for fields that come from metadata...
     thisinfo['Name'] = None
+    thisinfo['Provides'] = None
     thisinfo['Auto Name'] = ''
     thisinfo['Categories'] = 'None'
     thisinfo['Description'] = []
@@ -641,6 +642,8 @@ def write_metadata(dest, app):
         writefield('Disabled')
     if app['AntiFeatures']:
         writefield('AntiFeatures')
+    if app['Provides']:
+        writefield('Provides')
     writefield('Categories')
     writefield('License')
     writefield('Web Site')
index 0b705312e4f092ed46b6fa16baf22d77ac6bc59d..b1393b82875a888dd0cf18acf2c67f8b741f14fd 100644 (file)
@@ -71,6 +71,9 @@ def update_wiki(apps, apks):
                 app['License'],
                 app.get('Requires Root', 'No'))
 
+        if app['Provides']:
+            wikidata += "This app provides: %s" % ', '.join(app['Summary'].split(','))
+
         wikidata += app['Summary']
         wikidata += " - [http://f-droid.org/repository/browse/?fdid=" + app['id'] + " view in repository]\n\n"
 
@@ -580,6 +583,9 @@ def make_index(apps, apks, repodir, archive, categories):
                 af.remove('UpstreamNonFree')
             if af:
                 addElement('antifeatures', ','.join(af), doc, apel)
+        if app['Provides']:
+            pv = app['Provides'].split(',')
+            addElement('provides', ','.join(pv), doc, apel)
         if app['Requires Root']:
             addElement('requirements', 'root', doc, apel)