diff options
author | José Bollo <jose.bollo@iot.bzh> | 2017-10-13 14:47:13 +0200 |
---|---|---|
committer | José Bollo <jose.bollo@iot.bzh> | 2018-12-18 10:54:16 +0100 |
commit | b422f52e6afcce6bd0bdaa3c04dc2dee72d51b2e (patch) | |
tree | adc62a40f9e8fa0a9b5f449ddb2f64e997ac97a9 | |
parent | d9d7eb20d17acde2f4e3826736ad45fa6d441837 (diff) |
weston: Create really shared files
Last time it was discussed, this patch was not upstreamable.
But it is needed for a reason that still have to be investigated.
Nevertheless the patch is enough simple to be maintained
while waiting for the full investigation/resolution.
Change-Id: I47b17c7aa9ca5c495267259a15caacef50b4b324
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
3 files changed, 56 insertions, 0 deletions
diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/weston.service.add b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/weston.service.add index b51d2223a..d24a8eb23 100644 --- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/weston.service.add +++ b/meta-agl-profile-graphical/recipes-graphics/wayland/weston-init/weston.service.add @@ -1,5 +1,8 @@ Type=notify Environment="XDG_RUNTIME_DIR=@XDG_RUNTIME_DIR@" +Environment="XDG_RUNTIMESHARE_DIR=@XDG_RUNTIME_DIR@/share" +ExecStartPre=/bin/mkdir -p @XDG_RUNTIME_DIR@/share +ExecStartPre=+/usr/bin/chsmack -a User::App-Shared -t @XDG_RUNTIME_DIR@/share TTYPath=/dev/tty@WESTONTTY@ StandardInput=tty TTYReset=yes diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston/use-XDG_RUNTIMESHARE_DIR.patch b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/use-XDG_RUNTIMESHARE_DIR.patch new file mode 100644 index 000000000..91c2239cb --- /dev/null +++ b/meta-agl-profile-graphical/recipes-graphics/wayland/weston/use-XDG_RUNTIMESHARE_DIR.patch @@ -0,0 +1,52 @@ +From 0ed62e1a0beb47e033f7632dbf6d2087366b7830 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Jos=C3=A9=20Bollo?= <jose.bollo@iot.bzh> +Date: Fri, 13 Oct 2017 14:05:56 +0200 +Subject: [PATCH] use XDG_RUNTIMESHARE_DIR + +When running with LSM Smack, the file returned by the +function 'os_create_anonymous_file' is tagged with the +security label of weston. That security label genrally doesn't +allow sharing of files? Then passing the vreated file descriptor +to the client application fails with EPERM. + +To allow file descriptors to be tagged with a security +label that allows clients to receive and use it, that +patch introduce the use of the environment variable +XDG_RUNTIMESHARE_DIR that takes precedence over +XDG_RUNTIME_DIR whe, creating anonymous file is needed. + +A correct setting of the shared directory using Smack's +transmute mechanism allows set up file tag for sharing. + +This patch was submitted upstream for discussion but +was rejected with the following reason (IIRC): "the +function 'os_create_anonymous_file' and the sharing +are obsolete and should not be used anymore. IVI was +requiring it but newer version don't use it". Halas, +even aligned with latest versions of IVI-shell and weston, +the patch is needed. Because of its simplicity, it can +remain maintained locally out of mainstream in the wait +of further investigations. + +Signed-off-by: José Bollo <jose.bollo@iot.bzh> +--- + shared/os-compatibility.c | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/shared/os-compatibility.c b/shared/os-compatibility.c +index e19fb61b..7e93e818 100644 +--- a/shared/os-compatibility.c ++++ b/shared/os-compatibility.c +@@ -157,6 +157,8 @@ os_create_anonymous_file(off_t size) + int fd; + int ret; + +- path = getenv("XDG_RUNTIME_DIR"); ++ path = getenv("XDG_RUNTIMESHARE_DIR"); ++ if (!path) ++ path = getenv("XDG_RUNTIME_DIR"); + if (!path) { + errno = ENOENT; +-- +2.13.6 + diff --git a/meta-agl-profile-graphical/recipes-graphics/wayland/weston_2.0.0.bbappend b/meta-agl-profile-graphical/recipes-graphics/wayland/weston_2.0.0.bbappend index fe1e1a11f..c0a301ec1 100644 --- a/meta-agl-profile-graphical/recipes-graphics/wayland/weston_2.0.0.bbappend +++ b/meta-agl-profile-graphical/recipes-graphics/wayland/weston_2.0.0.bbappend @@ -21,6 +21,7 @@ SRC_URI_append = "\ file://0017-ivi-shell-register-ivi_layout_interface.patch \ file://0018-compositor-add-output-type-to-weston_output.patch \ file://0019-compositor-drm-introduce-drm_get_dmafd_from_view.patch \ + file://use-XDG_RUNTIMESHARE_DIR.patch \ " EXTRA_OECONF_append = " --enable-sys-uid" |