The state of AppStream/GNOME-Software in Debian Jessie

… or “Why do I not see any update notifications on my brand-new Debian Jessie installation??”

This is a short explanation of the status quo, and also explains the “no update notifications” issue in a slightly more detailed way, since I am already getting bug reports for that.

As you might know, GNOME provides GNOME-Software for installation of applications via PackageKit. In order to work properly, GNOME-Software needs AppStream metadata, which is not yet available in Debian. There was a GSoC student working on the necessary code for that, but the code is not yet ready and doesn’t produce good results yet. Therefore, I postponed AppStream integration to Jessie+1, with an option to include some metadata for GNOME and KDE to use via a normal .deb package.

Then, GNOME was updated to 3.14. GNOME 3.14 moved lots of stuff into GNOME-Software, including the support for update-notifications (which have been in g-s-d before). GNOME-Software is also the only thing which can edit the application groups in GNOME-Shell, at least currently.

So obviously, there was no a much stronger motivation to support GNOME-Software in Jessie. The appstream-glib library, which GNOME-Software uses exclusively to read AppStream metadata, didn’t support the DEP-11 metadata format which Debian uses in place of the original AppSTream XML for a while, but does so in it’s current development branch. So that component had to be packaged first. Later, GNOME-Software was uploaded to the archive as well, but still lacked the required metadata. That data was provided by me as a .deb package later, locally generated using the current code by my SoC student (the data isn’t great, but better than nothing). So far with the good news.

But there are multiple issues at time. First of all, the appstream-data package didn’t pass NEW so far, due to it’s complex copyright situation (nothing we can’t resolve, since app-install-data, which appstream-data would replace, is in Debian as well). Also, GNOME-Software is exclusively using offline-updates (more information also on [1] and [2]) at time. This isn’t always working at the moment, since I haven’t had the time to test it properly – and I didn’t expect it to be used in Debian Jessie as well[3].

Furthermore, the offline-updates feature requires systemd (which isn’t an issue in itself, I am quite fine with that, but people not using it will get unexpected results, unless someone does the work to implement offline-updates with sysvinit).

Since we are in freeze at time, and obviously this stuff is not ready yet, GNOME is currently without update notifications and without a way to change the shell application groups.

So, how can we fix this? One way would of course be to patch notification support back into g-s-d, if the new layout there allows doing that. But that would not give us the other features GNOME-Software provides, like application-group-editing.

Implementing that differently and patching it to make it work would be more or at least the same amount of work like making GNOME-Software run properly. I therefore prefer getting GNOME-Software to run, at least with basic functionality. That would likely mean hiding things like the offline-update functionality, and using online-updates with GNOME-PackageKit instead.

Obviously, this approach has it’s own issues, like doing most of the work post-freeze, which kind of defeats the purpose of the freeze and would need some close coordination with the release-team.

So, this is the status quo at time. It is kind of unfortunate that GNOME moved crucial functionality into a new component which requires additional integration work by the distributors so quickly, but that’s something which isn’t worth to talk about. We need a way forward to bring update-notifications back, and there is currently work going on to do that. For all Debian users: Please be patient while we resolve the situation, and sorry for the inconvenience. For all developers: If you would like to help, please contact me or Laurent Bigonville, there are some tasks which could use some help.

As a small remark: If you are using KDE, you are lucky – Apper provides the notification support like it always did, and thanks to improvements in aptcc and PackageKit, it even is a bit faster now. For the Xfce and <other_desktop> people, you need to check if your desktop provides integration with PackageKit for update-checking. At least Xfce doesn’t, but after GNOME-PackageKit removed support for it (which was moved to gnome-settings-daemon and now to GNOME-Software) nobody stepped up to implement it yet (so if you want to do it – it’s not super-complicated, but knowledge of C and GTK+ is needed).

—-

[3]: It looks like dpkg tries to ask a debconf question for some reason, or an external tool like apt-listchanges is interfering with the process, which must run completely unsupervised. There is some debugging needed to resolve these Debian-specific issues.

10 Comments

  • Kevin Krammer commented on 8. November 2014 Reply

    Can’t Debian not just downgrade GNOME to 3.12 for Jessie and restore all functionality in one go?

    • Matthias commented on 8. November 2014 Reply

      That is not an option – 3.14 brings tons of bugfixes and improvements, and downgrading it would be an incredibly invasive change which the release-team would never ever accept.
      Getting GS to work is the easier task.

  • Wilfried Lucha commented on 8. January 2015 Reply

    great article, really love it!

  • Kirk Young commented on 5. March 2015 Reply

    Thank you for this informative artcile. After having seen the way applications could be grouped in GNOME in Fedora 21 I was attempting to do the same with my new Debian Jessie install. Searching the web landed me here and made me realize I should pay more attention to Planet Debian, as your blog also appears there. If I could code, I’d offer to help. Keep up the good work!

    • Matthias commented on 9. March 2015 Reply

      For that feature only, you could try the gnome-software release from Debian Sid.
      For the full GNOME-Software / AppStream experience, tak a look at Tanglu ( http://tanglu.org/ ) which includes the necessary data.
      At Debian, we are working on this right now, so Debian 9 will have first-class AppStream support 🙂

  • Rudi commented on 1. April 2015 Reply

    Any updates on this? According to https://lists.debian.org/debian-devel-announce/2015/03/msg00016.html this must be in Jessie before the 18th of April to be part of the release…

    • Matthias commented on 1. April 2015 Reply

      This is far too late and a far too invasive change to land in Jessie.
      But the problem itself has been solved: GNOME on Jessie uses the old update-checking tools based on GNOME-PackageKit (there is no GNOME-Software in Jessie), and for other desktops we have “pk-update-icon”, which unfortunately didn’t land in Jessie in time, but which will likely be backported to it.
      So, the biggest issues are all resolved 🙂
      Debian 9 (Stretch) will feature full AppStream integration.

  • Manuel commented on 24. May 2015 Reply

    Dear Mathias,

    Just found your blog looking for a solution to enable update notifications in Jessie. I can confirm that in a clean installation of Jessie it doesn’t work by default although it’s activated in dconf.

    Seems that manually creating /etc/apt/apt.conf.d/10periodic solves the issue. What I actually did was copying the files you packaged under apt-config-auto-update (not avaliable in Jessie).

    There seems to be open bugs regarding this issue, but I don’t if there are other problems involved, I am too noob to that.

    Thanks for your hard work.

Leave a Reply

Your email address will not be published. Required fields are marked *