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>
This commit is contained in:
Ross Burton 2013-06-19 15:51:03 +01:00 committed by Richard Purdie
parent fb6f0d4d81
commit 9e28afb824
3 changed files with 123 additions and 0 deletions

View File

@ -0,0 +1,47 @@
Upstream-Status: Submitted (https://bugs.freedesktop.org/show_bug.cgi?id=65933)
Signed-off-by: Ross Burton <ross.burton@intel.com>
From 42821739a228a85ce3432be1796858e5cc31688b Mon Sep 17 00:00:00 2001
From: Quentin Glidic <sardemff7+git@sardemff7.net>
Date: Wed, 19 Jun 2013 15:27:11 +0200
Subject: [PATCH weston] weston-launch: Set all groups for user
Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
---
configure.ac | 2 +-
src/weston-launch.c | 4 ++++
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index b625221..db3feb0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -52,7 +52,7 @@ AC_CHECK_DECL(CLOCK_MONOTONIC,[],
[[#include <time.h>]])
AC_CHECK_HEADERS([execinfo.h])
-AC_CHECK_FUNCS([mkostemp strchrnul])
+AC_CHECK_FUNCS([mkostemp strchrnul initgroups])
COMPOSITOR_MODULES="wayland-server >= 1.1.90 xkbcommon pixman-1"
diff --git a/src/weston-launch.c b/src/weston-launch.c
index 76dcede..7d7b556 100644
--- a/src/weston-launch.c
+++ b/src/weston-launch.c
@@ -631,9 +631,13 @@ main(int argc, char *argv[])
}
if (setgid(wl.pw->pw_gid) < 0 ||
+#ifdef HAVE_INITGROUPS
+ initgroups(wl.pw->pw_name, wl.pw->pw_gid) < 0 ||
+#endif
setuid(wl.pw->pw_uid) < 0)
error(1, errno, "dropping privilidges failed");
+
if (sleep_fork) {
if (wl.verbose)
printf("weston-launch: waiting %d seconds\n", sleep_fork);
--
1.8.3

View File

@ -0,0 +1,74 @@
Upstream-Status: Backport
Signed-off-by: Ross Burton <ross.burton@intel.com>
From ff3230952a68077669e0ea0ac3ceb234273556fc Mon Sep 17 00:00:00 2001
From: Quentin Glidic <sardemff7+git@sardemff7.net>
Date: Fri, 17 May 2013 16:20:37 +0200
Subject: [PATCH] weston-launch: Run weston in the user login shell
This patch brings back the user environment from the shell.
In the future, weston-launch could create the Wayland socket earlier, in
which case the user's shell could be used to run Wayland-specific tools
in the new Weston session.
Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
---
src/weston-launch.c | 19 ++++++++++++++++---
1 file changed, 16 insertions(+), 3 deletions(-)
diff --git a/src/weston-launch.c b/src/weston-launch.c
index 64d4a8a..89c3c5a 100644
--- a/src/weston-launch.c
+++ b/src/weston-launch.c
@@ -60,6 +60,8 @@
#include "weston-launch.h"
+#define MAX_ARGV_SIZE 256
+
struct weston_launch {
struct pam_conv pc;
pam_handle_t *ph;
@@ -523,8 +525,9 @@ main(int argc, char *argv[])
struct weston_launch wl;
char **env;
int i, c;
- char **child_argv;
+ char *child_argv[MAX_ARGV_SIZE];
char *tty = NULL, *new_user = NULL;
+ char *term;
int sleep_fork = 0;
struct option opts[] = {
{ "user", required_argument, NULL, 'u' },
@@ -562,8 +565,8 @@ main(int argc, char *argv[])
}
}
- child_argv = &argv[optind-1];
- child_argv[0] = BINDIR "/weston";
+ if ((argc - optind) > (MAX_ARGV_SIZE - 5))
+ error(1, E2BIG, "Too many arguments to pass to weston");
if (new_user)
wl.pw = getpwnam(new_user);
@@ -572,7 +575,17 @@ main(int argc, char *argv[])
if (wl.pw == NULL)
error(1, errno, "failed to get username");
+ child_argv[0] = wl.pw->pw_shell;
+ child_argv[1] = "-l";
+ child_argv[2] = "-c";
+ child_argv[3] = BINDIR "/weston \"$@\"";
+ child_argv[4] = "weston";
+ for (i = 0; i < (argc - optind); ++i)
+ child_argv[5+i] = argv[optind+i];
+
+ term = getenv("TERM");
clearenv();
+ setenv("TERM", term, 1);
setenv("USER", wl.pw->pw_name, 1);
setenv("LOGNAME", wl.pw->pw_name, 1);
setenv("HOME", wl.pw->pw_dir, 1);
--
1.7.10.4

View File

@ -7,6 +7,8 @@ LIC_FILES_CHKSUM = "file://COPYING;md5=275efac2559a224527bd4fd593d38466 \
SRC_URI = "http://wayland.freedesktop.org/releases/${BPN}-${PV}.tar.xz \
file://install-examples.patch \
file://weston-launch-shell.patch \
file://groups.patch \
file://weston.png \
file://weston.desktop"
SRC_URI[md5sum] = "dd9f3043fc5228c6bc4e99873fae2254"