diff options
author | Alex Stewart <alex.stewart@ni.com> | 2023-01-05 15:21:19 -0600 |
---|---|---|
committer | Khem Raj <raj.khem@gmail.com> | 2023-01-06 11:38:16 -0800 |
commit | b3ace96246ed13320e8fc21b59ce92512aa8c843 (patch) | |
tree | e0e0d230998c2a67ee251ce8e0f2fcaee4273636 /meta-gnome | |
parent | 554f119627178b87e560e7d6b734cd9d4bf2df96 (diff) | |
download | meta-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.patch | 60 | ||||
-rw-r--r-- | meta-gnome/recipes-gnome/gvfs/gvfs_1.50.2.bb | 5 |
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" |