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”
No HTTPS for the GPG key download? 🙁
Unfortunately the gnome https cert for the webserver does not cover the sdk.gnome.org subdomain, so https doesn’t work.
However, I put the keys here:
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 ?
Juanjo: No, that gnome-software is built with xdg-app support, but without packagekit support.
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 🙂
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.
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…
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.
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…
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
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.
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…
Kamil: Its semi-automatically built atm. I have to manually rsync it to sdk.gnome.org, but the plan is to fullt automate that.
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
There was a build issue with weather. Can you try again (i.e. xdg-app –user update org.gnome.Weather if you installed it before).
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).
For builder you need to install org.gnome.Sdk
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?
Weird. Is this error reproducible?
I’m not sure what kind of data you mean. We’re not putting the runtime in git, that makes no sense.
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.
Weird. I just tried it on jessie with the debs from my repo, and it works fine.
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!
The apps are built from:
Just run build_all.sh to build them all.
I will write some more blog posts on how this stuff works soon.
All the examples seem to download the apps/runtimes from http://sdk.gnome.org.
I don’t see any mirror parameter in the xdg-app manpage.
How is this going to scale?
Jorge: xdg-app uses ostree to distribute apps/runtimes, which supports metalink (https://en.wikipedia.org/wiki/Metalink) for mirroring.
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.
Yes, this should be fixed in 0.4.12 building atm.
The commands listed here don’t work for me.
It seems that apps are not in the same repo as the runtime, so I had to do:
$ xdg-app –user remote-add –gpg-key=nightly.gpg gnome-nightly-apps http://sdk.gnome.org/nightly/repo-apps
$ xdg-app –user install gnome-nightly-apps org.gnome.Software.XdgApp
Hope that helps. 🙂
Yeah, this changed a bit. Will update the blog post.
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.
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.
Comments are closed.