Testing unstable gnome using xdg-app

Lot of interesting work on xdg-app lately!

I’ve created a new runtime based on the latest unstable gnome, and during the Gnome developer experience hackfest we made bundles for a bunch of core Gnome applications.

I’ve set up a nightly build of these so that anyone can play with the latest Gnome apps on any distro, without having to build anything.

Additionally, Richard and I have been working on making gnome-software able to work with xdg-app.

The culmination of this is using xdg-app to install gnome-software and then using that to install more xdg-apps:

This works out of the box on Fedora 23, just make sure you have xdg-app 0.4.11 installed (it’s in updates-testing at the moment). For other distributions, I have made packages which are available here.

Once you have xdg-app installed, its very easy to test them. First you need to add the remote repositories:

$ curl -O http://sdk.gnome.org/nightly/keys/nightly.gpg
$ xdg-app --user remote-add --gpg-key=nightly.gpg gnome-nightly http://sdk.gnome.org/nightly/repo/
$ xdg-app --user remote-add --gpg-key=nightly.gpg gnome-nightly-apps http://sdk.gnome.org/nightly/repo-apps/

Then you need to install the runtime:

$ xdg-app --user install gnome-nightly org.gnome.Platform

And then you can install some app:

$ xdg-app --user install gnome-nightly-apps org.gnome.Weather

At this point the app is installed and you should be able to start it like any regular app in your desktop. You can also manually start it via xdg-app:

xdg-app run org.gnome.Weather

The list of available apps can be seen with:

$ xdg-app --user remote-ls gnome-nightly-apps --app

Or you can install and use gnome software like in the demo.

34 thoughts on “Testing unstable gnome using xdg-app”

  1. It is very impressive. I think this is a very good way to make development versions available to all the users interested in testing or trying the new cool features of their favorite applications.

    I have a question. Does it mean that there is a xdg-apps backend for PackageKit ?

  2. Nice work!

    Is there a roadmap? I look at the gnome wiki sandboxedapps page and didn’t find it.

    Do you have an ETA for a gnome release using it out of the box? (let’s say, 3.22 🙂

    1. Mario: I have a lot of TODO items, but not necessarily a public roadmap. I think we want to get people playing with packaging apps in gnome 3.20, but there is not enough support for sandboxing for it to be useful. Starting in 3.22 I hope we will be able to run many gnome apps in a more heavily sandboxed mode.

  3. so in this way, when Gnome 3.20 will be released, I’ll be able to update to it via xdg-app keeping my Fedora 23? I’ll end with Fedora 23 (old version are usually more stable then new one) and Gnome 3.20 apps? along with gnome 3.18 ones?
    If I’m not wrong, this is a revolution for Linux. Separating os from apps. In this way I could take Ubuntu LTS for years and at the same time update gnome at every release? That’s amazing achievement and surely something we have been waiting for so long time…

    1. medeoTL: Its not really possible to run Gnome the desktop environment in an application sandbox like this. It has deep dependencies into the Xserver, compositor, login management, etc. So, no, that will not really be possible.

      However, it will work for applications, as long as some basics are supported by the host. For instance you can’t depend on a new X extension that your old X server does not support, or a kernel feature your old kernel doesn’t have.

  4. Note: there is a bug in gnome-software where it sometimes comes up empty on the first run. Killall -9 gnone-software and starting it again solves that. It’s on the list to debug…

  5. This is fantastic, thank you very much! I’d love to try it out, but unfortunately on Ubuntu 15.10 it fails at this point:

    $ xdg-app run org.gnome.Weather
    error: No systemd user session available, sandboxing not available

    1. Yeah, for safe sandboxing we need systemd –user in the session for cgroup creation. Alternative cgroup manager support could be added though. And long-term the unified cgroup hierarchy will allow us to drop that requirement.

  6. Alex, awesome work! Is the gnome nightly repo rebuilt every day from git master, or is it just a playground repository for now? It would be great to have all gnome apps in a nightly repo, always up-to-date with latest git, that would make bug fix verification so much easier for QA…

  7. Hey, this is great! However, I’ve run into an annoying error:

    $ xdg-app run org.gnome.Weather
    error: app/org.gnome.Weather/x86_64/master not installed

    I don’t see how to install the x86_64 version :S

      1. Thanks, Alex! Weather works now. On the contrary, I still have the same issue with builder (even after updating the app, or removing/installing again).

  8. This looks really great! When I try it I get this error:

    $ xdg-app –user install gnome-nightly org.gnome.Platform
    Receiving delta parts: 11/12 1.3 MB/s 74.2 MB/206.6 MB
    error: While pulling runtime/org.gnome.Platform/x86_64/master from remote gnome-nightly: Unrecognized LZMA error

    Do you know what this could be?

    What I would really like is if all the necessary data for xdg-app can be contained in the upstream git repo. Is that eventually one of the goals?

      1. Yes, happens all the time. I’m using debian testing btw.

        No, I mean the data file describing what version of the runtime it needs, and what compiler flags to use etc.

  9. This is a really great oportunity to contribute to these projects with nightly releases available.

    Could you please copy the commands here which were used to build a nighly release and how to modify/rebuild it in the best way?

    Thanks a lot!

  10. After I installed and uninstalled nightly gedit, my regular gedit app launcher no longer displays in gnome shell. I believe the org.gnome.gedit.desktop file in ~/.local/share/xdg-app/exports/share/applications/ takes precedence over /usr/share/applications, but it’s a broken link (because I uninstalled it), and therefore I see no app launcher for gedit. You should either also remove the desktop files during uninstallation, or gnome-shell needs to ignore broken symlinks.

  11. Hi,
    This is very interesting.
    1. Being not very experienced I got into difficulties because I tried to run things as the wrong user. What worked in the end was…
    1.1 Install xdg-app as root
    1.2 run xdg-app commands as a normal user.

    2. I wanted to test spell checking in a more recent version of gEdit than the ‘native’ Debian Jessie version (v3.14)
    2.1 running gEdit from xdg-app worked OK with the following startup errors…

    xdg-app run org.gnome.gedit

    ** (gedit:2): WARNING **: Couldn’t connect to accessibility bus: Failed to connect to socket /tmp/dbus-1ZbiateoaK: Connection refused

    (gedit:2): Gtk-WARNING **: Calling Inhibit failed: GDBus.Error:org.freedesktop.DBus.Error.ServiceUnknown: org.freedesktop.DBus.Error.ServiceUnknown

    2.2 With xdg-app I could get version 3.20.1 of gEdit running, but…
    2.3 …I could not get spell checking to work as there were no dictionaries installed, and it was not clear to me how to get one installed, despite the suggestions here… https://help.gnome.org/users/gedit/stable/gedit-spellcheck.html.en

    Thanks for your good work.
    Dennis

    1. The accessibility warning is just it not having access to the a11y bus. This needs work. The other dbus is it not being allowed to talk to logind to inhibit. You can give it permissions if you want.

Leave a Reply to alexl Cancel reply

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