On Fri, May 17, 2013 at 04:20:37PM +0200, Quentin Glidic wrote: > From: Quentin Glidic <[email protected]> > > 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.
Yeah, this is better, committed. Kristian > Signed-off-by: Quentin Glidic <[email protected]> > --- > 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.8.2.3 > > _______________________________________________ > wayland-devel mailing list > [email protected] > http://lists.freedesktop.org/mailman/listinfo/wayland-devel _______________________________________________ wayland-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/wayland-devel
