[opensuse-buildservice] AppStream AppData
Hi. It would be great if OBS could support generating AppStream AppData - http://www.freedesktop.org/software/appstream/docs/sect-AppStream-Metadata-A... AppData is the only way I could make my program appear in Gnome Software, and any other Software Center that uses AppData. -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On Thu, Jan 30, 2014 at 04:46:23PM +0530, Satyajit Sahoo wrote:
It would be great if OBS could support generating AppStream AppData - http://www.freedesktop.org/software/appstream/docs/sect-AppStream-Metadata-A...
You're in luck, OBS already generates AppStream data. The build process must it available somehow, thogh. This is usually done by some brp script copying a "appdata.xml" file into the "%_topdir/OTHER" directory. Cheers, Michael. -- Michael Schroeder mls@suse.de SUSE LINUX Products GmbH, GF Jeff Hawn, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);} -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
Thanks. Any documentation which I can refer? On 30 January 2014 18:44, Michael Schroeder <mls@suse.de> wrote:
On Thu, Jan 30, 2014 at 04:46:23PM +0530, Satyajit Sahoo wrote:
It would be great if OBS could support generating AppStream AppData - http://www.freedesktop.org/software/appstream/docs/sect-AppStream-Metadata-A...
You're in luck, OBS already generates AppStream data. The build process must it available somehow, thogh. This is usually done by some brp script copying a "appdata.xml" file into the "%_topdir/OTHER" directory.
Cheers, Michael.
-- Michael Schroeder mls@suse.de SUSE LINUX Products GmbH, GF Jeff Hawn, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);}
-- Satyajit Sahoo Profile - Facebook, Google+ Artwork - DeviantArt -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On Thu, Jan 30, 2014 at 06:48:26PM +0530, Satyajit Sahoo wrote:
Thanks. Any documentation which I can refer?
As said, the build process just needs to drop an "appdata.xml" file. As the build itself is highly distribution specific, I can't really help you much. For testing purposes, just add mkdir -p %_topdir/OTHER cp <your_appdata_file> %_topdir/OTHER/appdata.xml into some specfile. The appdata.xml file needs to look like this: <applications> <application> <id type="desktop">blabla.desktop</id> ... </application> </applications> So you probably need to concat the files from /usr/share/appdata somehow (don't forget to strip the "<?xml...>" line). Cheers, Michael. -- Michael Schroeder mls@suse.de SUSE LINUX Products GmbH, GF Jeff Hawn, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);} -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
Quoting Michael Schroeder <mls@suse.de>:
On Thu, Jan 30, 2014 at 06:48:26PM +0530, Satyajit Sahoo wrote:
Thanks. Any documentation which I can refer?
As said, the build process just needs to drop an "appdata.xml" file. As the build itself is highly distribution specific, I can't really help you much. For testing purposes, just add
mkdir -p %_topdir/OTHER cp <your_appdata_file> %_topdir/OTHER/appdata.xml
into some specfile.
The appdata.xml file needs to look like this:
<applications> <application> <id type="desktop">blabla.desktop</id> ... </application> </applications>
So you probably need to concat the files from /usr/share/appdata somehow (don't forget to strip the "<?xml...>" line).
A good starting point would be to look at (and improve) brp-extract-appdata package in openSUSE (which is used to do some extracting). in openSUSE 13.1 we provide a gnome-software-appdata which collects all *.appdata from all packages (there is also an appdata.xml.gz published, but not used by zypper). So in short: OBS does the right things on openSUSE for example.. what we're missing is that zypper copies the appdata.xml.gz (and related icons!) to the right cache location (a zypp plugin is missing for that). Dominique -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On Thu, Jan 30, 2014 at 01:42:15PM +0000, Dominique Leuenberger a.k.a. Dimstar wrote:
A good starting point would be to look at (and improve) brp-extract-appdata package in openSUSE (which is used to do some extracting).
in openSUSE 13.1 we provide a gnome-software-appdata which collects all *.appdata from all packages (there is also an appdata.xml.gz published, but not used by zypper).
(It unfortunatelly collects from the wrong directory, so the data is not useful at all...)
So in short: OBS does the right things on openSUSE for example.. what we're missing is that zypper copies the appdata.xml.gz (and related icons!) to the right cache location (a zypp plugin is missing for that).
Btw: Factory's libzypp already parses the appdata.xml.gz file. Dunno if 'zypper se -t application' already works, though. Cheers, Michael. -- Michael Schroeder mls@suse.de SUSE LINUX Products GmbH, GF Jeff Hawn, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);} -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
Quoting Michael Schroeder <mls@suse.de>:
(It unfortunatelly collects from the wrong directory, so the data is not useful at all...)
Careful not to confuse appdata and appstream data... appdata is the file you find in /usr/share/appdata (one per application) and appstream is the collection... which is sadly enough distributed / expected to be called appdata.xml.gz (yeah... very confusing).
So in short: OBS does the right things on openSUSE for example.. what we're missing is that zypper copies the appdata.xml.gz (and related icons!) to the right cache location (a zypp plugin is missing for that).
Btw: Factory's libzypp already parses the appdata.xml.gz file. Dunno if 'zypper se -t application' already works, though.
zypp should especially put the appdata.xml.gz into /var/cache/appdata (IIRC.. will have to validate) and extract the corresponding icons.tar.gz in the right location.. that's how gnome-software could make use of them; and preferably, they are updated based on the repo metadata. Sounds like a good spring to work out with Richard (gnome-software maintainer), who assisted me a great deal end of last year (just before the 13.1 release) to get at least 'something' to work. Dominique -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On Thu, Jan 30, 2014 at 01:56:24PM +0000, Dominique Leuenberger a.k.a. Dimstar wrote:
Careful not to confuse appdata and appstream data... appdata is the file you find in /usr/share/appdata (one per application) and appstream is the collection... which is sadly enough distributed / expected to be called appdata.xml.gz (yeah... very confusing).
My point was more that the brp-72-extract-appdata script does not look at /usr/share/appdata, but checks /usr/share/applications, which is completely wrong.
So in short: OBS does the right things on openSUSE for example.. what we're missing is that zypper copies the appdata.xml.gz (and related icons!) to the right cache location (a zypp plugin is missing for that).
Btw: Factory's libzypp already parses the appdata.xml.gz file. Dunno if 'zypper se -t application' already works, though.
zypp should especially put the appdata.xml.gz into /var/cache/appdata (IIRC.. will have to validate) and extract the corresponding icons.tar.gz in the right location.. that's how gnome-software could make use of them; and preferably, they are updated based on the repo metadata.
Yeah, I know. (I still believe that it's bad design, though, it should instead ask packagekit about the data.) Cheers, Michael. -- Michael Schroeder mls@suse.de SUSE LINUX Products GmbH, GF Jeff Hawn, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);} -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On Thu, Jan 30, 2014 at 01:42:15PM +0000, Dominique Leuenberger a.k.a. Dimstar wrote:
in openSUSE 13.1 we provide a gnome-software-appdata which collects all *.appdata from all packages (there is also an appdata.xml.gz published, but not used by zypper).
Is this just for Factory or can outside OBS projects participate? Regards, Martin -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On Freitag, 31. Januar 2014, 08:49:29 wrote Martin Koegler:
On Thu, Jan 30, 2014 at 01:42:15PM +0000, Dominique Leuenberger a.k.a. Dimstar wrote:
in openSUSE 13.1 we provide a gnome-software-appdata which collects all *.appdata from all packages (there is also an appdata.xml.gz published, but not used by zypper).
Is this just for Factory or can outside OBS projects participate?
The OBS publisher has also support for appdata. -- Adrian Schroeter email: adrian@suse.de SUSE LINUX GmbH, GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer, HRB 21284 (AG Nürnberg) Maxfeldstraße 5 90409 Nürnberg Germany -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On Fri, Jan 31, 2014 at 08:49:29AM +0100, Martin Koegler wrote:
On Thu, Jan 30, 2014 at 01:42:15PM +0000, Dominique Leuenberger a.k.a. Dimstar wrote:
in openSUSE 13.1 we provide a gnome-software-appdata which collects all *.appdata from all packages (there is also an appdata.xml.gz published, but not used by zypper).
Is this just for Factory or can outside OBS projects participate?
The gnome-software-appdata package is just a crude hack to have some appdata files available. They really should be packaged in the individual packages. Cheers, Michael. -- Michael Schroeder mls@suse.de SUSE LINUX Products GmbH, GF Jeff Hawn, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);} -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
Quoting Michael Schroeder <mls@suse.de>:
On Fri, Jan 31, 2014 at 08:49:29AM +0100, Martin Koegler wrote:
On Thu, Jan 30, 2014 at 01:42:15PM +0000, Dominique Leuenberger a.k.a. Dimstar wrote:
in openSUSE 13.1 we provide a gnome-software-appdata which collects all *.appdata from all packages (there is also an appdata.xml.gz published, but not used by zypper).
Is this just for Factory or can outside OBS projects participate?
The gnome-software-appdata package is just a crude hack to have some appdata files available. They really should be packaged in the individual packages.
The APPDATA are indeed to be part of the application packages. but gnome-software-appdata provides 'appstream data. Dominique -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
On Fri, Jan 31, 2014 at 10:11:37AM +0000, Dominique Leuenberger a.k.a. Dimstar wrote:
The APPDATA are indeed to be part of the application packages. but gnome-software-appdata provides 'appstream data.
Except that IMHO no installed package is supposed to write to the app-info dir, as the data in that directory should come from the repositories and should reflect the available applications. Thus it's a crude workaround that is needed until the data transfer from the repository metadata into the app-info dir is working. Cheers, Michael. -- Michael Schroeder mls@suse.de SUSE LINUX Products GmbH, GF Jeff Hawn, HRB 16746 AG Nuernberg main(_){while(_=~getchar())putchar(~_-1/(~(_|32)/13*2-11)*13);} -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
Quoting Michael Schroeder <mls@suse.de>:
On Fri, Jan 31, 2014 at 10:11:37AM +0000, Dominique Leuenberger a.k.a. Dimstar wrote:
The APPDATA are indeed to be part of the application packages. but gnome-software-appdata provides 'appstream data.
Except that IMHO no installed package is supposed to write to the app-info dir, as the data in that directory should come from the repositories and should reflect the available applications.
Thus it's a crude workaround that is needed until the data transfer from the repository metadata into the app-info dir is working.
CORRECT. My view: - application RPMs can install appdata files to /usr/share/appdata (as they do). - the appdata.xml.gz has to come from the repo meta data and must be put in place as part of the 'repo caching' process (proposal: zypp plugin; i was told this should not be too hard). => This goes to /var/cache/app-info/xmls/<reponame>.xml and the corresponding icon set to be extracted to => /var/cache/app-info/icons/<reponame> One brp script 'creates' an 'appstream' xml as part of the package build. At this moment, ALL info is based on the .desktop files; this should be enhanced to be at least based on the appdata files (Fedora has some fun scripts in place!) The publisher has logic to 'merge all the appdata pieces' and create the appdata.xml.gz (AppStream data), as is needed for the repository Now, the 'problem' is still to produce a meaningful appstream data file appdata.xml.gz (as it is NOT just concatting all the (AppData) appname.appdata.xml files.. Same thoughts at your end? Are we aligned on that so far? Dominique -- To unsubscribe, e-mail: opensuse-buildservice+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-buildservice+owner@opensuse.org
participants (5)
-
Adrian Schröter
-
Dominique Leuenberger a.k.a. Dimstar
-
Martin Koegler
-
Michael Schroeder
-
Satyajit Sahoo