#880 Support appdata

2.2.0
new
nobody
appdata (2)
defect
blocker
Build system
2014-06-26
2014-06-11
madbad
No

Appdata is a file that contains information used by the gnome software center to be displayed to users.
This will make Speed-Dreams more easy to be found/attractive to gnome users and potentially increase our user base.

Here the specification for the appdata file:
http://people.freedesktop.org/~hughsient/appdata/

I provide here an appdata file to be reviewed.
For screen shots I used what was used on the website but we can maybe provide better ones in higther resolution and png format as the specification suggest.

Still need to figure out the cmake magic to make it install in "/usr/share/appdata/".

1 Attachments

Discussion

1 2 > >> (Page 1 of 2)
  • madbad
    madbad
    2014-06-15

    I'm trying to understand how cmake works.
    Anyway where do you think guys the appdata file should be put in our src structure?
    Something like

    /data/data/speed-dreams-2.appdata.xml
    

    sounds good to you?

    if I'm not wrong to install it I should add to

    /data/data/CMakeLists.txt
    

    something like

    IF (UNIX)
      SD_INSTALL_FILES(PREFIX /usr/share/appdata FILES speed-dreams-2.appdata.xml)
    
     
    • Kristof
      Kristof
      2014-06-15

      I would say /packaging/appdata, as /data represents what goes to
      /usr/share/data.

      OK, it has no Cmake files now, but if I understand well, this file will be
      used by GSC independently of the remainder of the package, and there is no
      point to install it when someone installs from the source. Correct me, if I
      am wrong :).

      Cheers,
      Kristof

       
      Attachments
  • madbad
    madbad
    2014-06-15

    Ok for the location change, it was a doubt of mine too.

    Did you suggest to ship the appdata file with the source code but not instruct cmake to install it?

    Because the specification say:
    "Applications wishing to have long descriptions, screenshots and other useful things are required to ship one or more files in /usr/share/appdata/%{id}.appdata.xml."

    If it is not installed there it will not be used by the GSC.
    How do we know if the build is going to be used for a distro repo or for personal use?

     
  • beaglejoe
    beaglejoe
    2014-06-15

    My thought was to commit this file into the root of our tree. Like COPYING.txt, etc.
    I am not clear if downstream package maintainers are not the ones who need this?
    It would be easy for them to find at the root.
    Here is a pretty decent example of how another project did it.
    https://git.reviewboard.kde.org/r/117609/diff/1/
    Something similar would go in our root CMakeLists.txt (around line 100)
    We really don't need the configure_file step.
    I noticed that they have a BugTracker url in their appdata file.
    I assume this would show up in GSC somewhere.

    Also, there is a typo on line 15 of the attached file 'costant' should be 'constant' ?

     
  • Kristof
    Kristof
    2014-06-15

    I have read a bit more about Appstream. AFAIU it seems that a distribution with its packages is still needed behind the software center, so it is the distributors task to extract the xml file to the database while packaging. At least this is how I understand the figure in http://www.freedesktop.org/software/appstream/docs/chap-AppStream-About.html

    So I still do not see the point to install the appdata file when SD is compiled from sources. It seems even misleading if it then suddenly appears in the software center (or even worse only in some of the software centers), but it is not installable/uninstallable from it, because it is not packaged, it was compiled from sources.

    What might be useful to install (under Linux), is the desktop file (found in /usr/share/applications for the distro packages) with the icon, so that SD appears in the menu after a make install. I hope /usr/local/share/applications is also tracked by menus, so it can be installed under {prefix}/share/applications. And the icon should go to {prefix}/share/pixmaps.

    As for the location, /packaging seems more logical to me, but I am not against putting it into the root, especially if it makes your life easier.

    Also, there is a typo on line 15 of the attached file 'costant' should be 'constant' ?

    You are right. And the 'name' and 'summary' tags seem to be missing.

    Cheers,
    Kristof

     
    • madbad
      madbad
      2014-06-15

      The name and summary tags where missing because, from the specs:

      < name/>

      You can omit this tag if you want the software center to have the same strings as the desktop menu. In some cases it might be required to have a different name in the app-store, but most appdata.xml files will not need this.
      < summary/>

      You can omit this tag if you want the software center to have the same strings as the desktop menu. In some cases it might be required to have a different name in the app-store, but most appdata.xml files will not need this.

      I attach a corrected version of the appdata file updated with the suggestions given

       
  • madbad
    madbad
    2014-06-15

    Talking about the need or not to install to /usr/share/appdata I found an interesting comment here on the filezilla bugtracker.

    http://trac.filezilla-project.org/ticket/9037

    It'll be great if this file can be included in future releases, and
    optionally, if the build system could install it to /usr/share/appdata.
    The installation isn't necessary, since us maintainers can do it
    manually too.

     
  • simon wood
    simon wood
    2014-06-23

    '/packaging' directory does not normally get included in source tars (which Linux binaries will be built from). Presumably the Windows installers do no need this file.

     
    • beaglejoe
      beaglejoe
      2014-06-24

      As far as I can tell, this file is not used/needed on Windows

       
1 2 > >> (Page 1 of 2)