commit:     6f680e4fe73925ae130343e02adb416cb799ce7d
Author:     Chris Mayo <aklhfex <AT> gmail <DOT> com>
AuthorDate: Fri Jul 26 18:48:13 2019 +0000
Commit:     Matt Turner <mattst88 <AT> gentoo <DOT> org>
CommitDate: Tue Jul 30 01:49:41 2019 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6f680e4f

virtualx.eclass: Fix no display for an emerge following a failure

If using GNOME GDM, X is started on DISPLAY :0 but a lock file
/tmp/.X1024-lock is created instead of /tmp/.X0-lock.
virtx() will initially set XDISPLAY to 0 and attempt to start Xvfb on
DISPLAY :0 which fails but DISPLAY :1 (and greater) is not attempted if
a previous emerge left /tmp/.X1-lock behind.

Closes: https://bugs.gentoo.org/690778
Signed-off-by: Chris Mayo <aklhfex <AT> gmail.com>
Signed-off-by: Matt Turner <mattst88 <AT> gentoo.org>

 eclass/virtualx.eclass | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/eclass/virtualx.eclass b/eclass/virtualx.eclass
index fb6a867a35c..40eeea5463b 100644
--- a/eclass/virtualx.eclass
+++ b/eclass/virtualx.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2018 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: virtualx.eclass
@@ -178,7 +178,10 @@ virtx() {
        # Xvfb is started, else bump the display number
        #
        # Azarah - 5 May 2002
-       XDISPLAY=$(i=0; while [[ -f /tmp/.X${i}-lock ]] ; do ((i++));done; echo 
${i})
+       # GNOME GDM may have started X on DISPLAY :0 with a
+       # lock file /tmp/.X1024-lock, therefore start the search at 1.
+       # Else a leftover /tmp/.X1-lock will prevent finding an available 
display.
+       XDISPLAY=$(i=1; while [[ -f /tmp/.X${i}-lock ]] ; do ((i++));done; echo 
${i})
        debug-print "${FUNCNAME}: XDISPLAY=${XDISPLAY}"
 
        # We really do not want SANDBOX enabled here

Reply via email to