Message ID | 87wn764xzf.fsf@protonmail.com |
---|---|
State | New |
Headers | show |
Series | [bug#59825] gnu: Add flatpak-xdg-utils. | expand |
Hi! John Kehayias <john.kehayias@protonmail.com> skribis: > Here is a little package from the Flatpak folks which is also useful in a guix shell container. This lets you run, for example, xdg-open in the container and it will open on the host side. So let's say you come across a URL, you can just use xdg-open from this package so it will open in the host's web browser, rather than trying in the container. This relies on having portals on the host side, like xdg-desktop-portal-gtk. > > Here is a simple test example: > > guix shell -NC flatpak-xdg-utils --preserve='^DBUS_SESSION_BUS_ADDRESS$' -- xdg-open "<https://guix.gnu.org>" > > which will open Guix's website on the host side. Interesting (and scary as well, depending on how it’s implemented). Don’t you need to share /tmp as well? ‘DBUS_SESSION_BUS_ADDRESS’ refers to a socket in /tmp for me. > From 8669a7fb0e1b9ba320c6312d7423500a56236edc Mon Sep 17 00:00:00 2001 > From: John Kehayias <john.kehayias@protonmail.com> > Date: Sun, 4 Dec 2022 17:06:19 -0500 > Subject: [PATCH] gnu: Add flatpak-xdg-utils. > > * gnu/packages/freedesktop.scm (flatpak-xdg-utils): New variable. <https://qa.guix.gnu.org/issue/59825> mentions a build failure on i686-linux; could you take a look? Apart from that, it LGTM! Thanks, Ludo’.
Howdy, On Wed, Dec 14, 2022 at 11:00 AM, Ludovic Courtès wrote: > Hi! > > John Kehayias <john.kehayias@protonmail.com> skribis: > >> Here is a little package from the Flatpak folks which is also useful in a guix shell >> container. This lets you run, for example, xdg-open in the container and it will open on >> the host side. So let's say you come across a URL, you can just use xdg-open from this >> package so it will open in the host's web browser, rather than trying in the container. >> This relies on having portals on the host side, like xdg-desktop-portal-gtk. >> >> Here is a simple test example: >> >> guix shell -NC flatpak-xdg-utils --preserve='^DBUS_SESSION_BUS_ADDRESS$' -- xdg-open >> "<https://guix.gnu.org>" >> >> which will open Guix's website on the host side. > > Interesting (and scary as well, depending on how it’s implemented). > Yes, a bit of both! The scary one I think is 'flatpak-spawn' which will run something on the host, but as this is done via portals there's some control there over what it implements and how. I don't know the details though, but I did see checks somewhere for what checking what is allowed to be accessed. e.g. with guix shell -NC flatpak-xdg-utils --preserve='^DBUS_SESSION_BUS_ADDRESS$' -- flatpak-spawn --host ls / So yeah, punching holes in a sandbox. Anyway... > Don’t you need to share /tmp as well? ‘DBUS_SESSION_BUS_ADDRESS’ refers > to a socket in /tmp for me. > It does point to something in /tmp for me as well, but which doesn't exist...not sure the details of DBus, which I always find confusing. Note the -N argument, that was key for me to get it working easily. Without that and even sharing /tmp it didn't work, nor if I tried manually adding files that -N adds. So it must be something else about the network option that gets access to the DBus socket? >> From 8669a7fb0e1b9ba320c6312d7423500a56236edc Mon Sep 17 00:00:00 2001 >> From: John Kehayias <john.kehayias@protonmail.com> >> Date: Sun, 4 Dec 2022 17:06:19 -0500 >> Subject: [PATCH] gnu: Add flatpak-xdg-utils. >> >> * gnu/packages/freedesktop.scm (flatpak-xdg-utils): New variable. > > <https://qa.guix.gnu.org/issue/59825> mentions a build failure on > i686-linux; could you take a look? > Took me a bit to figure out the logs, but looks like some issue on the build server as in the configure phase I see: WARNING: Could not create compilation database. Locally it has built fine, for the same derivation hash as well. > Apart from that, it LGTM! > Great! I'll add it to my early lists of commits I'll make, once I finally get a breather here. > Thanks, > Ludo’. And thank you! John
Pushed as 2f0418cd2c33497130e1b764952e8063117d7f8a (my first commit!)
From 8669a7fb0e1b9ba320c6312d7423500a56236edc Mon Sep 17 00:00:00 2001 From: John Kehayias <john.kehayias@protonmail.com> Date: Sun, 4 Dec 2022 17:06:19 -0500 Subject: [PATCH] gnu: Add flatpak-xdg-utils. * gnu/packages/freedesktop.scm (flatpak-xdg-utils): New variable. --- gnu/packages/freedesktop.scm | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 077d56ad3d..073bc1e754 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -2530,6 +2530,40 @@ (define-public snixembed @end itemize") (license license:isc))) +(define-public flatpak-xdg-utils + (package + (name "flatpak-xdg-utils") + (version "1.0.5") + (source (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/flatpak/flatpak-xdg-utils") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1q8wsc46fcjm737hz10jvgci5wl9sz8hj9aix2y2zdj11bqib9af")))) + (build-system meson-build-system) + (arguments + (list #:phases #~(modify-phases %standard-phases + (replace 'check + (lambda* (#:key tests? #:allow-other-keys) + (when tests? + (invoke "dbus-run-session" "--" "meson" "test" + "--print-errorlogs"))))))) + (inputs (list glib)) + (native-inputs (list dbus pkg-config)) + (synopsis + "Simple portal-based commandline tools for use inside sandboxes") + (description + "This package contains a number of commandline utilities for use inside +Flatpak sandboxes and other containers, like @command{guix shell --container}. +They work by talking to portals. Currently, there is flatpak-spawn for +running commands in sandboxes as well as xdg-open and xdg-email, which are +compatible with the well-known scripts of the same name.") + (home-page "https://github.com/flatpak/flatpak-xdg-utils") + (license (list license:lgpl2.0+ license:lgpl2.1+)))) + (define-public libportal (package (name "libportal") -- 2.38.1