summaryrefslogtreecommitdiffstats
path: root/meta/recipes-graphics/wayland/weston
diff options
context:
space:
mode:
authorRoss Burton <ross.burton@intel.com>2013-06-19 15:51:03 +0100
committerRichard Purdie <richard.purdie@linuxfoundation.org>2013-06-25 17:44:54 +0100
commit9e28afb8245ed2acb06457f19bdd4ab4c7b7670f (patch)
tree1ad93baba3ef3fdaca10ceacd536076952503f7d /meta/recipes-graphics/wayland/weston
parentfb6f0d4d8100d7419f8a2ac5a5eba5a3edce0825 (diff)
downloadpoky-9e28afb8245ed2acb06457f19bdd4ab4c7b7670f.tar.gz
weston: add patches to make weston-launch work
(From OE-Core rev: 7b4f2c7c305ef4c0848311712f17cab76232c4bf) Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-graphics/wayland/weston')
-rw-r--r--meta/recipes-graphics/wayland/weston/groups.patch47
-rw-r--r--meta/recipes-graphics/wayland/weston/weston-launch-shell.patch74
2 files changed, 121 insertions, 0 deletions
diff --git a/meta/recipes-graphics/wayland/weston/groups.patch b/meta/recipes-graphics/wayland/weston/groups.patch
new file mode 100644
index 0000000000..9dc043ac3b
--- /dev/null
+++ b/meta/recipes-graphics/wayland/weston/groups.patch
@@ -0,0 +1,47 @@
1Upstream-Status: Submitted (https://bugs.freedesktop.org/show_bug.cgi?id=65933)
2Signed-off-by: Ross Burton <ross.burton@intel.com>
3
4From 42821739a228a85ce3432be1796858e5cc31688b Mon Sep 17 00:00:00 2001
5From: Quentin Glidic <sardemff7+git@sardemff7.net>
6Date: Wed, 19 Jun 2013 15:27:11 +0200
7Subject: [PATCH weston] weston-launch: Set all groups for user
8
9Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
10---
11 configure.ac | 2 +-
12 src/weston-launch.c | 4 ++++
13 2 files changed, 5 insertions(+), 1 deletion(-)
14
15diff --git a/configure.ac b/configure.ac
16index b625221..db3feb0 100644
17--- a/configure.ac
18+++ b/configure.ac
19@@ -52,7 +52,7 @@ AC_CHECK_DECL(CLOCK_MONOTONIC,[],
20 [[#include <time.h>]])
21 AC_CHECK_HEADERS([execinfo.h])
22
23-AC_CHECK_FUNCS([mkostemp strchrnul])
24+AC_CHECK_FUNCS([mkostemp strchrnul initgroups])
25
26 COMPOSITOR_MODULES="wayland-server >= 1.1.90 xkbcommon pixman-1"
27
28diff --git a/src/weston-launch.c b/src/weston-launch.c
29index 76dcede..7d7b556 100644
30--- a/src/weston-launch.c
31+++ b/src/weston-launch.c
32@@ -631,9 +631,13 @@ main(int argc, char *argv[])
33 }
34
35 if (setgid(wl.pw->pw_gid) < 0 ||
36+#ifdef HAVE_INITGROUPS
37+ initgroups(wl.pw->pw_name, wl.pw->pw_gid) < 0 ||
38+#endif
39 setuid(wl.pw->pw_uid) < 0)
40 error(1, errno, "dropping privilidges failed");
41
42+
43 if (sleep_fork) {
44 if (wl.verbose)
45 printf("weston-launch: waiting %d seconds\n", sleep_fork);
46--
471.8.3
diff --git a/meta/recipes-graphics/wayland/weston/weston-launch-shell.patch b/meta/recipes-graphics/wayland/weston/weston-launch-shell.patch
new file mode 100644
index 0000000000..ffe0608ee2
--- /dev/null
+++ b/meta/recipes-graphics/wayland/weston/weston-launch-shell.patch
@@ -0,0 +1,74 @@
1Upstream-Status: Backport
2Signed-off-by: Ross Burton <ross.burton@intel.com>
3
4From ff3230952a68077669e0ea0ac3ceb234273556fc Mon Sep 17 00:00:00 2001
5From: Quentin Glidic <sardemff7+git@sardemff7.net>
6Date: Fri, 17 May 2013 16:20:37 +0200
7Subject: [PATCH] weston-launch: Run weston in the user login shell
8
9This patch brings back the user environment from the shell.
10In the future, weston-launch could create the Wayland socket earlier, in
11which case the user's shell could be used to run Wayland-specific tools
12in the new Weston session.
13
14Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
15---
16 src/weston-launch.c | 19 ++++++++++++++++---
17 1 file changed, 16 insertions(+), 3 deletions(-)
18
19diff --git a/src/weston-launch.c b/src/weston-launch.c
20index 64d4a8a..89c3c5a 100644
21--- a/src/weston-launch.c
22+++ b/src/weston-launch.c
23@@ -60,6 +60,8 @@
24
25 #include "weston-launch.h"
26
27+#define MAX_ARGV_SIZE 256
28+
29 struct weston_launch {
30 struct pam_conv pc;
31 pam_handle_t *ph;
32@@ -523,8 +525,9 @@ main(int argc, char *argv[])
33 struct weston_launch wl;
34 char **env;
35 int i, c;
36- char **child_argv;
37+ char *child_argv[MAX_ARGV_SIZE];
38 char *tty = NULL, *new_user = NULL;
39+ char *term;
40 int sleep_fork = 0;
41 struct option opts[] = {
42 { "user", required_argument, NULL, 'u' },
43@@ -562,8 +565,8 @@ main(int argc, char *argv[])
44 }
45 }
46
47- child_argv = &argv[optind-1];
48- child_argv[0] = BINDIR "/weston";
49+ if ((argc - optind) > (MAX_ARGV_SIZE - 5))
50+ error(1, E2BIG, "Too many arguments to pass to weston");
51
52 if (new_user)
53 wl.pw = getpwnam(new_user);
54@@ -572,7 +575,17 @@ main(int argc, char *argv[])
55 if (wl.pw == NULL)
56 error(1, errno, "failed to get username");
57
58+ child_argv[0] = wl.pw->pw_shell;
59+ child_argv[1] = "-l";
60+ child_argv[2] = "-c";
61+ child_argv[3] = BINDIR "/weston \"$@\"";
62+ child_argv[4] = "weston";
63+ for (i = 0; i < (argc - optind); ++i)
64+ child_argv[5+i] = argv[optind+i];
65+
66+ term = getenv("TERM");
67 clearenv();
68+ setenv("TERM", term, 1);
69 setenv("USER", wl.pw->pw_name, 1);
70 setenv("LOGNAME", wl.pw->pw_name, 1);
71 setenv("HOME", wl.pw->pw_dir, 1);
72--
731.7.10.4
74