Prevent stdin, stdout and stderr definitions clash. Use uint64 instead of uint for sizes, and use casts where needed (upstream 0cf804a8666404444968c995b03fe8af9893a58f) From openSUSE: Make xauth do not cause DNS lookups. This can slow down things, so we use nlist instead of list. Also pass -q, just to be sure we don't unsolicited output. diff -ur a/libgksu/gksu-process.c b/libgksu/gksu-process.c --- a/libgksu/gksu-process.c 2010-09-09 16:01:08.000000000 +0300 +++ b/libgksu/gksu-process.c 2013-12-24 12:50:37.876813177 +0200 @@ -62,7 +62,7 @@ * application decides to close an FD we also keep a 'mirror' * GIOChannel for its side of the pipe, so that we can monitor the * application closing an FD, for instance */ - gint stdin[2]; + gint gksu_stdin[2]; GIOChannel *stdin_channel; guint stdin_source_id; GIOChannel *stdin_mirror; @@ -73,13 +73,13 @@ * because the buffer is filled, and application needs to read some * of it; we need to give it a chance to read the buffer, thus, but * still need to remember to write what is left */ - gint stdout[2]; + gint gksu_stdout[2]; GIOChannel *stdout_channel; GIOChannel *stdout_mirror; guint stdout_mirror_id; GksuWriteQueue *stdout_write_queue; - gint stderr[2]; + gint gksu_stderr[2]; GIOChannel *stderr_channel; GIOChannel *stderr_mirror; guint stderr_mirror_id; @@ -337,8 +337,8 @@ } /* get the authorization token */ - tmp = g_strdup_printf ("%s -i list %s | " - "head -1 | awk '{ print $3 }'", + tmp = g_strdup_printf ("%s -q -i nlist %s | " + "head -1 | awk '{ print $9 }'", xauth_bin, display); if ((xauth_output = popen (tmp, "r")) == NULL) @@ -651,7 +651,7 @@ { gksu_process_prepare_pipe(&(priv->stdin_channel), &(priv->stdin_mirror), - priv->stdin, + priv->gksu_stdin, standard_input, TRUE); @@ -671,7 +671,7 @@ { gksu_process_prepare_pipe(&(priv->stdout_channel), &(priv->stdout_mirror), - priv->stdout, + priv->gksu_stdout, standard_output, FALSE); @@ -688,7 +688,7 @@ { gksu_process_prepare_pipe(&(priv->stderr_channel), &(priv->stderr_mirror), - priv->stderr, + priv->gksu_stderr, standard_error, FALSE);