Needs to implement the full DEP-11 icon spec for compatibility with 3rd-party repos

Bug #1576780 reported by Matthias Klumpp
18
This bug affects 2 people
Affects Status Importance Assigned to Milestone
appstream-glib (Ubuntu)
Fix Released
Medium
Matthias Klumpp
Xenial
Fix Released
Medium
Matthias Klumpp

Bug Description

[Impact]

 * The AppStream YAML spec describes a way to include width/height properties in cached-icon metadata, which isn't forward-compatible to the old spec.
 * asglib doesn't implement the full spec in the release present in Xenial, so it ignores cached icons with size info, as well as it doesn't support several features present in the spec, e.g. the remote icon type.
 * This leads to AppStream components from 3rd-party repos/PPAs not showing up in GNOME Software, since asglib is unable to find icons if they use a more recent version of the spec.
 * The attched patch fixes this.

[Test Case 1]

 * Close all instances of GNOME Software (also the background daemon!)
 * Launch GNOME Software again: All apps should be present, you should notice no change.

[Test Case 2]

 * Close all instances of GNOME Software (also the background daemon!)
 * Get new-style metadata, e.g. from Elementary or Debian[1], or simply add the SIL repo which is shipping that metadata now: http://packages.sil.org/ (that would be the easiest way to test)
 * Launch GNOME Software again: All apps should be present, including the 3rd-party ones (search for "FieldWorks").

[1]: ftp://ftp.debian.org/debian/dists/stretch/main/dep11/

[Regression Potential]

 * This is adding a missing feature, restoring compatibility with 3rd-party repos. The existing data should be parsed as before, so I don't see much regression potential ("Test Case 1" needs to work)

[Other Info]

 * This fix has been applied upstream: https://github.com/hughsie/appstream-glib/commit/628e3cfb1c62c3177d6decd86102217f2546e0a2
 * The fix is also present in Debian.

Matthias Klumpp (ximion)
Changed in appstream-glib (Ubuntu):
status: New → Fix Committed
Revision history for this message
Ubuntu Foundations Team Bug Bot (crichton) wrote :

The attachment "asglib_yamlspec-lp1576780.debdiff" seems to be a debdiff. The ubuntu-sponsors team has been subscribed to the bug report so that they can review and hopefully sponsor the debdiff. If the attachment isn't a patch, please remove the "patch" flag from the attachment, remove the "patch" tag, and if you are member of the ~ubuntu-sponsors, unsubscribe the team.

[This is an automated message performed by a Launchpad user owned by ~brian-murray, for any issue please contact him.]

tags: added: patch
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package appstream-glib - 0.5.14-2

---------------
appstream-glib (0.5.14-2) unstable; urgency=medium

  * yaml-icon-spec-compliant.patch: Correctly implement the DEP-11 YAML
    specification for icons (LP: #1576780).

 -- Matthias Klumpp <email address hidden> Fri, 29 Apr 2016 18:22:54 +0200

Changed in appstream-glib (Ubuntu):
status: Fix Committed → Fix Released
Revision history for this message
Matthias Klumpp (ximion) wrote :

Updated the attachment, there was an issue in the previous one (no prefix set for icons).

description: updated
Changed in appstream-glib (Ubuntu):
status: Fix Released → In Progress
status: In Progress → Fix Committed
Revision history for this message
Neil Mayhew (neil.mayhew) wrote :

I have a 3rd-party repo (packages.sil.org/ubuntu) and I can confirm that this change enables Gnome Software to work correctly with my repo. Previously my apps weren't showing up, but now they are.

I built a copy of appstream-glib_0.5.13-1 with this debdiff applied, installed it on a xenial system, and everything works nicely.

Revision history for this message
Matthias Klumpp (ximion) wrote :

This bug is fixed in Yakkety and Debian testing/unstable, but still needs to be resolved in Xenial.

Changed in appstream-glib (Ubuntu):
status: Fix Committed → Fix Released
Revision history for this message
Iain Lane (laney) wrote :

I uploaded to xenial - merci!

Changed in appstream-glib (Ubuntu Xenial):
status: New → In Progress
assignee: nobody → Matthias Klumpp (ximion)
Revision history for this message
Martin Pitt (pitti) wrote : Please test proposed package

Hello Matthias, or anyone else affected,

Accepted appstream-glib into xenial-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/appstream-glib/0.5.13-1ubuntu1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in appstream-glib (Ubuntu Xenial):
status: In Progress → Fix Committed
tags: added: verification-needed
Revision history for this message
Matthias Klumpp (ximion) wrote :

Works perfectly here, thanks!
@Neil: Can you test this too?

Revision history for this message
Neil Mayhew (neil.mayhew) wrote :

This works great for me here too. All my 3rd-party apps are showing in Gnome Software. Thanks!

tags: added: verification-done
removed: verification-needed
Matthias Klumpp (ximion)
Changed in appstream-glib (Ubuntu):
assignee: nobody → Matthias Klumpp (ximion)
Changed in appstream-glib (Ubuntu Xenial):
milestone: none → xenial-updates
Changed in appstream-glib (Ubuntu):
milestone: xenial-updates → none
Mathew Hodson (mhodson)
Changed in appstream-glib (Ubuntu Xenial):
importance: Undecided → Medium
Revision history for this message
Iain Lane (laney) wrote :

we just found out that this patch breaks the fetching of some icons, namely when there are cached: and stock: icons present in appstream

tags: added: verification-failed
removed: verification-done
Revision history for this message
Matthias Klumpp (ximion) wrote :

This bugfix in asglib was actually just exposing a different bug in GNOME Software, which has been reported as https://bugzilla.gnome.org/show_bug.cgi?id=766924 now.
When that one is fixed, both packages can be patched and go in together.

Revision history for this message
Matthias Klumpp (ximion) wrote :

Since fixing this properly in GNOME Software is a pretty invasive change which can't easily make it into Xenial, the best way forward with this is to achieve bug-compatibility with the previous asglib version.
The attached debdiff does exactly that and should make the regression disappear.
Please test it! :)

Revision history for this message
Matthias Klumpp (ximion) wrote :

How to test:

* Install updated appstream-glib
* Run GNOME Software
* Check if applications containing stock icons are present (e.g. GNOME Terminal, Dolphin, ...)
* Check if apps without stock icon can be found (e.g. MyPaint, Robocode, ...)

Revision history for this message
Iain Lane (laney) wrote :

Uploaded, sorry for the delay which was because I forgot. :(

Changed in appstream-glib (Ubuntu Xenial):
status: Fix Committed → In Progress
Matthias Klumpp (ximion)
tags: added: verification-needed
removed: verification-failed
Revision history for this message
Martin Pitt (pitti) wrote :

Hello Matthias, or anyone else affected,

Accepted appstream-glib into xenial-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/appstream-glib/0.5.13-1ubuntu2 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, and change the tag from verification-needed to verification-done. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed. In either case, details of your testing will help us make a better decision.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance!

Changed in appstream-glib (Ubuntu Xenial):
status: In Progress → Fix Committed
Revision history for this message
Neil Mayhew (neil.mayhew) wrote :

Works well for me (0.5.13-1ubuntu2). Thanks for getting this done. I assume it can go into -updates now.

tags: added: verification-done
removed: verification-needed
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package appstream-glib - 0.5.13-1ubuntu2

---------------
appstream-glib (0.5.13-1ubuntu2) xenial; urgency=medium

  * Do not load stock icons from the metadata. This is needed to not
    trigger a bug in GNOME Software which can not be fixed easily
    in Xenial. This will resolve the regression described in LP: #1576780

 -- Matthias Klumpp <email address hidden> Fri, 10 Jun 2016 18:02:34 +0200

Changed in appstream-glib (Ubuntu Xenial):
status: Fix Committed → Fix Released
Revision history for this message
Martin Pitt (pitti) wrote : Update Released

The verification of the Stable Release Update for appstream-glib has completed successfully and the package has now been released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.