Ever since we rolled out the GNOME Software Center, people have wanted to extend it to do other things. One thing that was very important to the Eclipse developers was a way of adding addons to the main application, which seems a sensible request. We wanted to make this generic enough so that it could be used in gedit and similar modular GNOME and KDE applications. We’ve deliberately not targeted Chrome or Firefox, as these applications will do a much better job compared to the package-centric operation of GNOME Software.
So. Do you maintain a plugin or extension that should be shown as an addon to an existing desktop application in the software center? If the answer is “no” you can probably stop reading, but otherwise, please create a file something like this:
<?xml version="1.0" encoding="UTF-8"?> <!-- Copyright 2014 Your Name Here <firstname.lastname@example.org> --> <component type="addon"> <id>gedit-code-assistance</id> <extends>gedit.desktop</extends> <name>Code Assistance</name> <summary>Code assistance for C, C++ and Objective-C</summary> <url type="homepage">http://projects.gnome.org/gedit</url> <metadata_license>CC0-1.0</metadata_license> <project_license>GPL-3.0+</project_license> <updatecontact>richard_at_hughsie.com</updatecontact> </component>
This wants to be installed into
/usr/share/appdata/gedit-code-assistance.metainfo.xml — this isn’t just another file format, this is the main component schema used internally by AppStream. Some notes when creating the file:
- You can use anything as the
<id>but it needs to be unique and sensible and also match the
- You can use
appstream-util validate gedit-code-assistance.metainfo.xmlif you install appstream-glib from git.
- Don’t put the application name you’re extending in the
<summary>tags — so you’d use “Code Assistance” rather than “GEdit Code Assistance“
- You can omit the
<url>if it’s the same as the upstream project
- You don’t need to create the
metainfo.xmlif the plugin is typically shipped in the same package as the application you’re extending
- Please use
<_summary>if you’re using intltool to translate either your desktop file or the existing appdata file and remember to add the file to POTFILES.in if you use one
Please grab me on IRC if you have any questions or concerns, or leave a comment here. Kalev is currently working on the GNOME Software UI side, and I only finished the metadata extractor for Fedora today, so don’t expect the feature to be visible until GNOME 3.14 and Fedora 21.