Control: tags -1 + patch
I had a look at how to modify the source to fix this. Here is an untested patch to implement support for provides in the generated metadata XML file. Unfortunately I lacked the required free disk space to do a test build. I did not add the provides to the editor metadata entry, assuming that it is most relevant for the two other components. diff --git a/src/calibre/linux.py b/src/calibre/linux.py index bd0b6f9..b81215e 100644 --- a/src/calibre/linux.py +++ b/src/calibre/linux.py @@ -1157,6 +1157,10 @@ def get_appdata(): _('calibre is the one stop solution to all your e-book needs.'), _('You can use calibre to catalog your books, fetch metadata for them automatically, convert them from and to all the various e-book formats, send them to your e-book reader devices, read the books on your computer, edit the books in a dedicated e-book editor and even make them available over the network with the built-in Content server. You can also download news and periodicals in e-book format from over a thousand different news and magazine websites.') # noqa ), + 'provides': [ + {'modalias': 'usb:v2237p*d*ic08isc*ip*'}, + {'modalias': 'usb:v0525pA4A5d*ic08isc*ip*'}, + ], 'screenshots':( (1408, 792, 'https://lh4.googleusercontent.com/-bNE1hc_3pIc/UvHLwKPGBPI/AAAAAAAAASA/8oavs_c6xoU/w1408-h792-no/main-default.png',), (1408, 792, 'https://lh4.googleusercontent.com/-Zu2httSKABE/UvHMYK30JJI/AAAAAAAAATg/dQTQUjBvV5s/w1408-h792-no/main-grid.png'), @@ -1188,6 +1192,10 @@ def get_appdata(): _('The calibre E-book viewer allows you to read e-books in over a dozen different formats.'), _('It has a full screen mode for distraction free reading and can display the text with multiple columns per screen.'), ), + 'provides': [ + {'modalias': 'usb:v2237p*d*ic08isc*ip*'}, + {'modalias': 'usb:v0525pA4A5d*ic08isc*ip*'}, + ], 'screenshots':( (1408, 792, 'https://lh5.googleusercontent.com/-dzSO82BPpaE/UvHMYY5SpNI/AAAAAAAAATk/I_kF9fYWrZM/w1408-h792-no/viewer-default.png',), (1920, 1080, 'https://lh6.googleusercontent.com/-n32Ae5RytAk/UvHMY0QD94I/AAAAAAAAATs/Zw8Yz08HIKk/w1920-h1080-no/viewer-fs.png'), @@ -1260,7 +1268,7 @@ def make_appdata_releases(): def write_appdata(key, entry, base, translators): from lxml.builder import E - from lxml.etree import tostring + from lxml.etree import Element, tostring fpath = os.path.join(base, '%s.metainfo.xml' % key) screenshots = E.screenshots() for w, h, url in entry['screenshots']: @@ -1300,6 +1308,14 @@ def write_appdata(key, entry, base, translators): tp = t.gettext(entry['summary']) if tp != entry['summary']: root.append(E.summary(tp, **{'{http://www.w3.org/XML/1998/namespace}lang': lang})) + if 0 < len(entry.get('provides', [])): + provides = E.provides() + for p in entry['provides']: + for tag in p.keys(): + provided = Elements(tag) + provided.text = p[tag] + provides.append(provided) + root.append(provides) if entry.get('include-releases', False): try: root.append(make_appdata_releases()) -- Happy hacking Petter Reinholdtsen