aboutsummaryrefslogtreecommitdiffstats
path: root/meta-gnome
diff options
context:
space:
mode:
authorAlex Stewart <alex.stewart@ni.com>2023-01-05 15:21:19 -0600
committerKhem Raj <raj.khem@gmail.com>2023-01-06 11:38:16 -0800
commitb3ace96246ed13320e8fc21b59ce92512aa8c843 (patch)
treee0e0d230998c2a67ee251ce8e0f2fcaee4273636 /meta-gnome
parent554f119627178b87e560e7d6b734cd9d4bf2df96 (diff)
downloadmeta-openembedded-contrib-b3ace96246ed13320e8fc21b59ce92512aa8c843.tar.gz
gvfs: obviate the ssh-client requirement for gvfs
The gvfs project meson configuration attempts to locate and resolve the path to an ssh-client on the build host, then pass that full-path to the gvfs sftp-backend as a constant string, to be used at runtime to fork ssh subprocesses. As a consequence, if the build machine's ssh client path differs from the gvfs target's path - as is common for OE/buildroot builds - gvfs can fail at runtime. Further, build machines cannot configure gvfs without an ssh client, even though nothing *uses* the client during the build. The .patch in this commit has been upstreamed with gvfs, and modifies the configuration to instead pass the string-literal `ssh` to the sftp backend. With this change, gvfs will instead rely on PATH-expansion to locate the user's ssh-client at runtime. This obviates the requirement that the build machine have an ssh-client. Signed-off-by: Alex Stewart <alex.stewart@ni.com> Signed-off-by: Khem Raj <raj.khem@gmail.com>
Diffstat (limited to 'meta-gnome')
-rw-r--r--meta-gnome/recipes-gnome/gvfs/gvfs/0001-daemon-PATH-expand-the-sftp-backend-ssh-client.patch60
-rw-r--r--meta-gnome/recipes-gnome/gvfs/gvfs_1.50.2.bb5
2 files changed, 64 insertions, 1 deletions
diff --git a/meta-gnome/recipes-gnome/gvfs/gvfs/0001-daemon-PATH-expand-the-sftp-backend-ssh-client.patch b/meta-gnome/recipes-gnome/gvfs/gvfs/0001-daemon-PATH-expand-the-sftp-backend-ssh-client.patch
new file mode 100644
index 0000000000..011858e80c
--- /dev/null
+++ b/meta-gnome/recipes-gnome/gvfs/gvfs/0001-daemon-PATH-expand-the-sftp-backend-ssh-client.patch
@@ -0,0 +1,60 @@
+From 8327383e262e1e7f32750a8a2d3dd708195b0f53 Mon Sep 17 00:00:00 2001
+From: Alex Stewart <alex.stewart@ni.com>
+Date: Wed, 14 Dec 2022 03:05:45 -0600
+Subject: [PATCH] daemon: PATH-expand the sftp backend ssh client
+
+Meson is currently configured to search the gvfs builder's PATH for an
+ssh client, and hardcode its fullpath as the canonical ssh client for
+the gvfs sftp backend.
+
+This setup breaks in cases where the builder has a different ssh client
+from the final runtime root, or where the client's pathes differ.
+Builders using OpenEmbedded or buildroot workspaces are particularly
+affected.
+
+Instead, set SSH_PROGRAM to `ssh` so that it gets PATH-expanded at
+runtime.
+
+Closes: https://gitlab.gnome.org/GNOME/gvfs/-/issues/465
+Signed-off-by: Alex Stewart <alex.stewart@ni.com>
+
+Upstream-Status: Accepted
+* https://gitlab.gnome.org/GNOME/gvfs/-/merge_requests/157
+ * Expect upstream merge in GNOME 44
+
+---
+ daemon/meson.build | 2 +-
+ meson.build | 4 ----
+ 2 files changed, 1 insertion(+), 5 deletions(-)
+
+diff --git a/daemon/meson.build b/daemon/meson.build
+index e20ada29..72a16890 100644
+--- a/daemon/meson.build
++++ b/daemon/meson.build
+@@ -256,7 +256,7 @@ if enable_sftp
+ '-DDEFAULT_BACKEND_TYPE=sftp',
+ '-DBACKEND_TYPES="sftp", G_VFS_TYPE_BACKEND_SFTP,',
+ '-DMAX_JOB_THREADS=1',
+- '-DSSH_PROGRAM="@0@"'.format(ssh.full_path()),
++ '-DSSH_PROGRAM="ssh"',
+ ]
+
+ programs += {'gvfsd-sftp': {'sources': sources, 'dependencies': deps, 'c_args': cflags}}
+diff --git a/meson.build b/meson.build
+index 7fd67427..a84c0104 100644
+--- a/meson.build
++++ b/meson.build
+@@ -457,10 +457,6 @@ endif
+
+ # *** SFTP backend ***
+ enable_sftp = get_option('sftp')
+-if enable_sftp
+- ssh = find_program('ssh', required: false)
+- assert(ssh.found(), 'SFTP backend requested but a ssh client is required')
+-endif
+
+ # *** Enable development utils ***
+ enable_devel_utils = get_option('devel_utils')
+--
+2.38.1
+
diff --git a/meta-gnome/recipes-gnome/gvfs/gvfs_1.50.2.bb b/meta-gnome/recipes-gnome/gvfs/gvfs_1.50.2.bb
index 5bad2153ce..6ea8727539 100644
--- a/meta-gnome/recipes-gnome/gvfs/gvfs_1.50.2.bb
+++ b/meta-gnome/recipes-gnome/gvfs/gvfs_1.50.2.bb
@@ -18,7 +18,10 @@ DEPENDS += "\
RDEPENDS:${PN} += "gsettings-desktop-schemas"
-SRC_URI = "https://download.gnome.org/sources/${BPN}/${@gnome_verdir("${PV}")}/${BPN}-${PV}.tar.xz;name=archive"
+SRC_URI = "\
+ https://download.gnome.org/sources/${BPN}/${@gnome_verdir("${PV}")}/${BPN}-${PV}.tar.xz;name=archive \
+ file://0001-daemon-PATH-expand-the-sftp-backend-ssh-client.patch \
+"
SRC_URI[archive.sha256sum] = "03d72b8c15ef438110f0cf457b5655266c8b515d0412b30f4d55cfa0da06ac5e"