[PATCH xinit v3 3/3] startx: Under Linux start X on the current VT

Peter Hutterer peter.hutterer at who-t.net
Thu Apr 3 21:38:34 PDT 2014


On Mon, Mar 31, 2014 at 03:51:46PM +0200, Hans de Goede wrote:
> When we let X allocate a new VT, systemd-logind will not recognize any
> processes running on this VT as belonging to a valid session (since there
> was no pam session opened on that tty).
> 
> This causes problems like PolicyKit denials for these processes.
> 
> ConsoleKit under Linux has been deprecated for a few years now and is no
> longer being maintained, so simply make this the default under Linux.
> 
> Note we do not pass in the vt if the user has specified an alternative server
> to start, as the vtX argument is only valid for the Xorg server, likewise we
> omit it if the user has specified any other server arguments.
> 
> Fixes:
> https://bugzilla.redhat.com/show_bug.cgi?id=806491
> 
> Signed-off-by: Hans de Goede <hdegoede at redhat.com>

Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>

Cheers,
   Peter


> ---
>  startx.cpp | 11 +++++++++++
>  1 file changed, 11 insertions(+)
> 
> diff --git a/startx.cpp b/startx.cpp
> index b7a29f9..f4a0283 100644
> --- a/startx.cpp
> +++ b/startx.cpp
> @@ -187,6 +187,17 @@ XCOMM process server arguments
>  if [ x"$server" = x ]; then
>      server=$defaultserver
>  
> +#ifdef __linux__
> +    XCOMM When starting the defaultserver start X on the current tty to avoid
> +    XCOMM the startx session being seen as inactive:
> +    XCOMM https://bugzilla.redhat.com/show_bug.cgi?id=806491
> +    tty=$(tty)
> +    if expr match "$tty" '^/dev/tty[0-9]\+$' > /dev/null; then
> +        tty_num=$(echo "$tty" | grep -oE '[0-9]+$')
> +        defaultserverargs=${defaultserverargs}" vt"${tty_num}
> +    fi
> +#endif
> +
>      XCOMM For compatibility reasons, only use xserverrc if there were no server command line arguments
>      if [ x"$serverargs" = x -a x"$display" = x ]; then
>  	if [ -f "$userserverrc" ]; then
> -- 
> 1.9.0


More information about the xorg-devel mailing list