[PATCH weston] weston-launch: Do not run weston in a shell

Quentin Glidic sardemff7+wayland at sardemff7.net
Thu Mar 6 08:25:49 PST 2014


From: Quentin Glidic <sardemff7+git at sardemff7.net>

Since 636156d5f693ac5b01cec6a2937d2b6cd4237ea9 it is not needed any more
to allow the user to pass environment to weston. Actually, the login
shell is wiping parts of the environment.

Signed-off-by: Quentin Glidic <sardemff7+git at sardemff7.net>
---

Then we should remove the shell invocation alltogether.

I still need a way to run things at weston’s start and stop,
but that can wait for another patch.

 src/weston-launch.c | 12 ++++--------
 1 file changed, 4 insertions(+), 8 deletions(-)

diff --git a/src/weston-launch.c b/src/weston-launch.c
index 56e22b1..1f67557 100644
--- a/src/weston-launch.c
+++ b/src/weston-launch.c
@@ -644,16 +644,12 @@ launch_compositor(struct weston_launch *wl, int argc, char *argv[])
 	sigaddset(&mask, SIGINT);
 	sigprocmask(SIG_UNBLOCK, &mask, NULL);
 
-	child_argv[0] = "/bin/sh";
-	child_argv[1] = "-l";
-	child_argv[2] = "-c";
-	child_argv[3] = BINDIR "/weston \"$@\"";
-	child_argv[4] = "weston";
+	child_argv[0] = BINDIR "/weston";
 	for (i = 0; i < argc; ++i)
-		child_argv[5 + i] = argv[i];
-	child_argv[5 + i] = NULL;
+		child_argv[1 + i] = argv[i];
+	child_argv[1 + i] = NULL;
 
-	execv(child_argv[0], child_argv);
+	execv("weston", child_argv);
 	error(1, errno, "exec failed");
 }
 
-- 
1.9.0



More information about the wayland-devel mailing list