[arch-commits] Commit in xorg-server/trunk (3 files)

Andreas Radke andyrtr at archlinux.org
Fri May 11 14:11:25 UTC 2018


    Date: Friday, May 11, 2018 @ 14:11:24
  Author: andyrtr
Revision: 323945

upgpkg: xorg-server 1.20.0-1

upstream update 1.20.0

Added:
  xorg-server/trunk/xwayland-config.h.meson.in
Modified:
  xorg-server/trunk/PKGBUILD
  xorg-server/trunk/xvfb-run

----------------------------+
 PKGBUILD                   |  241 ++++++++++++++++++-------------------------
 xvfb-run                   |   84 +++++++++-----
 xwayland-config.h.meson.in |    8 +
 3 files changed, 163 insertions(+), 170 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2018-05-11 12:06:12 UTC (rev 323944)
+++ PKGBUILD	2018-05-11 14:11:24 UTC (rev 323945)
@@ -3,7 +3,8 @@
 # Maintainer: Jan de Groot <jgc at archlinux.org>
 
 pkgbase=xorg-server
-pkgname=('xorg-server' 'xorg-server-xephyr' 'xorg-server-xdmx' 'xorg-server-xvfb' 'xorg-server-xnest' 'xorg-server-xwayland' 'xorg-server-common' 'xorg-server-devel')
+pkgname=('xorg-server' 'xorg-server-xephyr' 'xorg-server-xdmx' 'xorg-server-xvfb' 'xorg-server-xnest' 
+         'xorg-server-xwayland' 'xorg-server-common' 'xorg-server-devel')
 pkgver=1.20.0
 pkgrel=1
 arch=('x86_64')
@@ -10,19 +11,19 @@
 license=('custom')
 groups=('xorg')
 url="http://xorg.freedesktop.org"
-makedepends=('pixman' 'libx11' 'mesa' 'mesa-libgl' 'xf86driproto' 'xcmiscproto' 'xtrans' 'bigreqsproto' 'randrproto' 
-             'inputproto' 'fontsproto' 'videoproto' 'presentproto' 'compositeproto' 'recordproto' 'scrnsaverproto'
-             'resourceproto' 'xineramaproto' 'libxkbfile' 'libxfont2' 'renderproto' 'libpciaccess' 'libxv'
-             'xf86dgaproto' 'libxmu' 'libxrender' 'libxi' 'dmxproto' 'libxaw' 'libdmx' 'libxtst' 'libxres'
-             'xorg-xkbcomp' 'xorg-util-macros' 'xorg-font-util' 'glproto' 'dri2proto' 'libgcrypt' 'libepoxy'
-             'xcb-util' 'xcb-util-image' 'xcb-util-renderutil' 'xcb-util-wm' 'xcb-util-keysyms' 'dri3proto'
-             'libxshmfence' 'libunwind' 'systemd' 'wayland-protocols') # 'meson') # ''git')
+makedepends=('xorgproto' 'pixman' 'libx11' 'mesa' 'mesa-libgl' 'xtrans'
+             'libxkbfile' 'libxfont2' 'libpciaccess' 'libxv'
+             'libxmu' 'libxrender' 'libxi' 'libxaw' 'libdmx' 'libxtst' 'libxres'
+             'xorg-xkbcomp' 'xorg-util-macros' 'xorg-font-util' 'libepoxy'
+             'xcb-util' 'xcb-util-image' 'xcb-util-renderutil' 'xcb-util-wm' 'xcb-util-keysyms'
+             'libxshmfence' 'libunwind' 'systemd' 'wayland-protocols' 'meson') # 'git')
 #_commit=d0d1a694f967af770fba0d36043fd5218ff20984 # branch 1.19
 
 #source=("git+https://anongit.freedesktop.org/git/xorg/xserver.git#commit=$_commit"
 source=(https://xorg.freedesktop.org/releases/individual/xserver/${pkgbase}-${pkgver}.tar.bz2{,.sig}
+        xwayland-config.h.meson.in # missing from tarball
         xserver-autobind-hotplug.patch
-        xvfb-run
+        xvfb-run # with updates from FC master
         xvfb-run.1)
 validpgpkeys=('7B27A3F1A6E18CD9588B4AE8310180050905E40C'
               'C383B778255613DFDB409D91DB221A6900000011'
@@ -30,8 +31,9 @@
               '995ED5C8A6138EB0961F18474C09DD83CAAA50B2')
 sha512sums=('1489e8511c9da682ef0460182dfeeddd241c72d4ef4d206d9706f1e39572c09953df851fab18cefb65a1ee4c6710c6ba13c63c9c9fc0bc1b5f12c50780412cde'
             'SKIP'
+            '4ed2a66dd98697accef34f84d44490594bf071232fa74640d514a170f1fbe760b292a0b53fe47080b73acf6083cea57e35f11cfd42ba9dc211b8e8dcac343dfc'
             'd84f4d63a502b7af76ea49944d1b21e2030dfd250ac1e82878935cf631973310ac9ba1f0dfedf10980ec6c7431d61b7daa4b7bbaae9ee477b2c19812c1661a22'
-            'ca1cda27016f7c269cbdecc45da36255afeef5c1973cc484544f9dfbf56ed1868365c93a4c7f93e3a23e5322f084ec0cdd137e15b43872aae7f0c03040028ce6'
+            '55bbf520333f6e818b0125b37179a7039b69a0d3d2242b80a08da003d94cbf6c1fb912d880abcce318a85d7947e3eff8fbc4cdf57d7118572e8ebc56c4569af6'
             'de5e2cb3c6825e6cf1f07ca0d52423e17f34d70ec7935e9dd24be5fb9883bf1e03b50ff584931bd3b41095c510ab2aa44d2573fd5feaebdcb59363b65607ff22')
 
 #pkgver() {
@@ -40,13 +42,13 @@
 #}
 
 prepare() {
+  cp xwayland-config.h.meson.in ${pkgbase}-${pkgver}/include/
+
   #cd xserver
   cd "${pkgbase}-${pkgver}"
 
   # patch from Fedora, not yet merged
   patch -Np1 -i ../xserver-autobind-hotplug.patch
-
-  autoreconf -vfi
 }
 
 build() {
@@ -57,59 +59,42 @@
   export CXXFLAGS=${CXXFLAGS/-fno-plt}
   export LDFLAGS=${LDFLAGS/,-z,now}
 
-  #cd xserver
-  cd "${pkgbase}-${pkgver}"
+  arch-meson ${pkgbase}-$pkgver build \
+    -D os_vendor="Arch Linux" \
+    -D ipv6=true \
+    -D dmx=true \
+    -D xvfb=true \
+    -D xnest=true \
+    -D xcsecurity=true \
+    -D xorg=true \
+    -D xephyr=true \
+    -D xwayland=true \
+    -D glamor=true \
+    -D udev=true \
+    -D systemd_logind=true \
+    -D suid_wrapper=true \
+    -D xkb_dir=/usr/share/X11/xkb \
+    -D xkb_output_dir=/var/lib/xkb \
+    -D default_font_path=/usr/share/fonts
+     
+#     -D xwayland_eglstream=true \ # requires weston-eglstream from AUR
 
-#   arch-meson mesa-$pkgver build --help \
-#     -D enable-ipv6=true
-
-  ./configure --prefix=/usr \
-      --enable-ipv6 \
-      --enable-dri \
-      --enable-dmx \
-      --enable-xvfb \
-      --enable-xnest \
-      --enable-composite \
-      --enable-xcsecurity \
-      --enable-libunwind \
-      --enable-xorg \
-      --enable-xephyr \
-      --enable-glamor \
-      --enable-xwayland \
-      --enable-kdrive \
-      --enable-kdrive-kbd \
-      --enable-kdrive-mouse \
-      --enable-config-udev \
-      --enable-systemd-logind \
-      --enable-suid-wrapper \
-      --disable-install-setuid \
-      --enable-record \
-      --disable-xfbdev \
-      --disable-xfake \
-      --disable-static \
-      --libexecdir=/usr/lib/xorg-server \
-      --sysconfdir=/etc \
-      --localstatedir=/var \
-      --with-xkb-path=/usr/share/X11/xkb \
-      --with-xkb-output=/var/lib/xkb \
-      --with-fontrootdir=/usr/share/fonts \
-      --with-sha1=libgcrypt
-
-  make
-
   # Print config
-#  meson configure build
+  meson configure build
+  ninja -C build
+ 
+  # fake installation to be seperated into packages
+  DESTDIR="${srcdir}/fakeinstall" ninja -C build install
+}
 
-#  ninja -C build
-
-
-  # Disable subdirs for make install rule to make splitting easier
-  sed -e 's/^DMX_SUBDIRS =.*/DMX_SUBDIRS =/' \
-      -e 's/^XVFB_SUBDIRS =.*/XVFB_SUBDIRS =/' \
-      -e 's/^XNEST_SUBDIRS =.*/XNEST_SUBDIRS = /' \
-      -e 's/^KDRIVE_SUBDIRS =.*/KDRIVE_SUBDIRS =/' \
-      -e 's/^XWAYLAND_SUBDIRS =.*/XWAYLAND_SUBDIRS =/' \
-      -i hw/Makefile
+_install() {
+  local src f dir
+  for src; do
+    f="${src#fakeinstall/}"
+    dir="${pkgdir}/${f%/*}"
+    install -m755 -d "${dir}"
+    mv -v "${src}" "${dir}/"
+  done
 }
 
 package_xorg-server-common() {
@@ -116,23 +101,18 @@
   pkgdesc="Xorg server common files"
   depends=(xkeyboard-config xorg-xkbcomp xorg-setxkbmap)
 
-  #cd xserver
-  cd "${pkgbase}-${pkgver}"
-  install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-common"
-  install -m644 COPYING "${pkgdir}/usr/share/licenses/xorg-server-common"
-  
-  make -C xkb DESTDIR="${pkgdir}" install-data
+  _install fakeinstall/usr/lib/xorg/protocol.txt
+  _install fakeinstall/usr/share/man/man1/Xserver.1.gz
 
-  install -m755 -d "${pkgdir}/usr/share/man/man1"
-  install -m644 man/Xserver.1 "${pkgdir}/usr/share/man/man1/"
-
-  install -m755 -d "${pkgdir}/usr/lib/xorg"
-  install -m644 dix/protocol.txt "${pkgdir}/usr/lib/xorg/"
+  install -m644 -Dt "${pkgdir}/var/lib/xkb/" "${pkgbase}-${pkgver}"/xkb/README.compiled
+  # license
+  install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" "${pkgbase}-${pkgver}"/COPYING
 }
 
 package_xorg-server() {
   pkgdesc="Xorg X server"
-  depends=(libepoxy libxfont2 pixman xorg-server-common libunwind dbus libgl xf86-input-libinput
+  depends=(libepoxy libxfont2 pixman xorg-server-common libunwind 
+           dbus libgl xf86-input-libinput nettle
            libpciaccess libdrm libxshmfence) # FS#52949
 
   # see xorg-server-*/hw/xfree86/common/xf86Module.h for ABI versions - we provide major numbers that drivers can depend on
@@ -142,112 +122,97 @@
   replaces=('glamor-egl' 'xf86-video-modesetting')
   install=xorg-server.install
 
-  #cd xserver
-  cd "${pkgbase}-${pkgver}"
-  make DESTDIR="${pkgdir}" install
   
+  _install fakeinstall/usr/bin/{Xorg,cvt,gtf}
+  ln -s /usr/bin/Xorg "${pkgdir}/usr/bin/X"
+  _install fakeinstall/usr/lib/Xorg{,.wrap}
+  _install fakeinstall/usr/lib/xorg/modules/*
+  _install fakeinstall/usr/share/X11/xorg.conf.d/10-quirks.conf
+  _install fakeinstall/usr/share/man/man1/{Xorg,Xorg.wrap,cvt,gtf}.1.gz
+  _install fakeinstall/usr/share/man/man4/{exa,fbdevhw,modesetting}.4.gz
+  _install fakeinstall/usr/share/man/man5/{Xwrapper.config,xorg.conf,xorg.conf.d}.5.gz
+
   # distro specific files must be installed in /usr/share/X11/xorg.conf.d
   install -m755 -d "${pkgdir}/etc/X11/xorg.conf.d"
-  
-  rm -rf "${pkgdir}/var"
 
-  rm -f "${pkgdir}/usr/share/man/man1/Xserver.1"
-  rm -f "${pkgdir}/usr/lib/xorg/protocol.txt"
-
-  install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server"
-  ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server/COPYING"
-
-  rm -rf "${pkgdir}/usr/lib/pkgconfig"
-  rm -rf "${pkgdir}/usr/include"
-  rm -rf "${pkgdir}/usr/share/aclocal"
+  # license
+  install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" "${pkgbase}-${pkgver}"/COPYING
 }
 
 package_xorg-server-xephyr() {
   pkgdesc="A nested X server that runs as an X application"
-  depends=(libxfont2 libgl libepoxy libunwind libsystemd libxv pixman xorg-server-common xcb-util-image
-           xcb-util-renderutil xcb-util-wm xcb-util-keysyms)
+  depends=(libxfont2 libgl libepoxy libunwind libsystemd libxv pixman xorg-server-common
+           xcb-util-image xcb-util-renderutil xcb-util-wm xcb-util-keysyms
+           nettle libtirpc)
 
-  #cd xserver/hw/kdrive
-  cd "${pkgbase}-${pkgver}/hw/kdrive"
-  make DESTDIR="${pkgdir}" install
+  _install fakeinstall/usr/bin/Xephyr
+  _install fakeinstall/usr/share/man/man1/Xephyr.1.gz
 
-  install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xephyr"
-  ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-xephyr/COPYING"
+  # license
+  install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" "${pkgbase}-${pkgver}"/COPYING
 }
 
 package_xorg-server-xvfb() {
   pkgdesc="Virtual framebuffer X server"
-  depends=(libxfont2 libunwind libsystemd pixman xorg-server-common xorg-xauth libgl which)
+  depends=(libxfont2 libunwind pixman xorg-server-common xorg-xauth libgl which nettle)
 
-  #cd xserver/hw/vfb
-  cd "${pkgbase}-${pkgver}/hw/vfb"
-  make DESTDIR="${pkgdir}" install
+  _install fakeinstall/usr/bin/Xvfb
+  _install fakeinstall/usr/share/man/man1/Xvfb.1.gz
 
   install -m755 "${srcdir}/xvfb-run" "${pkgdir}/usr/bin/"
-  install -m644 "${srcdir}/xvfb-run.1" "${pkgdir}/usr/share/man/man1/"
+  install -m644 "${srcdir}/xvfb-run.1" "${pkgdir}/usr/share/man/man1/" # outda
 
-  install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xvfb"
-  ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-xvfb/COPYING"
+  # license
+  install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" "${pkgbase}-${pkgver}"/COPYING
 }
 
 package_xorg-server-xnest() {
   pkgdesc="A nested X server that runs as an X application"
-  depends=(libxfont2 libxext libunwind pixman xorg-server-common libsystemd)
+  depends=(libxfont2 libxext pixman xorg-server-common nettle libtirpc)
 
-  #cd xserver/hw/xnest
-  cd "${pkgbase}-${pkgver}/hw/xnest"
-  make DESTDIR="${pkgdir}" install
+  _install fakeinstall/usr/bin/Xnest
+  _install fakeinstall/usr/share/man/man1/Xnest.1.gz
 
-  install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xnest"
-  ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-xnest/COPYING"
+  # license
+  install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" "${pkgbase}-${pkgver}"/COPYING
 }
 
 package_xorg-server-xdmx() {
   pkgdesc="Distributed Multihead X Server and utilities"
-  depends=(libxfont2 libxi libxaw libxrender libdmx libxfixes libunwind pixman xorg-server-common)
+  depends=(libxfont2 libxi libxaw libxrender libdmx libxfixes 
+           pixman xorg-server-common nettle)
 
-  #cd xserver/hw/dmx
-  cd "${pkgbase}-${pkgver}/hw/dmx"
-  make DESTDIR="${pkgdir}" install
+  _install fakeinstall/usr/bin/{Xdmx,dmx*,vdltodmx,xdmxconfig}
+  _install fakeinstall/usr/share/man/man1/{Xdmx,dmxtodmx,vdltodmx,xdmxconfig}.1.gz
 
-  install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xdmx"
-  ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-xdmx/COPYING"
+  # license
+  install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" "${pkgbase}-${pkgver}"/COPYING
 }
 
 package_xorg-server-xwayland() {
   pkgdesc="run X clients under wayland"
-  depends=(libxfont2 libepoxy libunwind libsystemd libgl pixman xorg-server-common)
+  depends=(libxfont2 libepoxy libunwind libsystemd libgl pixman xorg-server-common
+           nettle libtirpc)
 
-  #cd xserver/hw/xwayland
-  cd "${pkgbase}-${pkgver}/hw/xwayland"
-  make DESTDIR="${pkgdir}" install
+  _install fakeinstall/usr/bin/Xwayland
 
-  install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-xwayland"
-  ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-xwayland/COPYING"
+  # license
+  install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" "${pkgbase}-${pkgver}"/COPYING
 }
 
 package_xorg-server-devel() {
   pkgdesc="Development files for the X.Org X server"
-  depends=(# see pkgdir/usr/lib/pkgconfig/xorg-server.pc
-           xproto randrproto renderproto xextproto inputproto kbproto 
-           fontsproto pixman videoproto xf86driproto glproto 
-           mesa dri2proto dri3proto xineramaproto libpciaccess
-           resourceproto scrnsaverproto presentproto
+  depends=('xorgproto' 'mesa' 'libpciaccess'
            # not technically required but almost every Xorg pkg needs it to build
-           xorg-util-macros)
+           'xorg-util-macros')
 
-  #cd xserver
-  cd "${pkgbase}-${pkgver}"
-  make DESTDIR="${pkgdir}" install
+  _install fakeinstall/usr/include/xorg/*
+  _install fakeinstall/usr/lib/pkgconfig/xorg-server.pc
+  _install fakeinstall/usr/share/aclocal/xorg-server.m4
 
-  rm -rf "${pkgdir}/usr/bin"
-  rm -rf "${pkgdir}/usr/share/man"
-  rm -rf "${pkgdir}/usr/share/doc"
-  rm -rf "${pkgdir}/usr/share/X11"
-  rm -rf "${pkgdir}/usr/lib/xorg"
-  rm -rf "${pkgdir}/usr/lib/xorg-server"
-  rm -rf "${pkgdir}/var"
+  # license
+  install -m644 -Dt "${pkgdir}/usr/share/licenses/${pkgname}" "${pkgbase}-${pkgver}"/COPYING
 
-  install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-devel"
-  ln -sf ../xorg-server-common/COPYING "${pkgdir}/usr/share/licenses/xorg-server-devel/COPYING"
+  # make sure there are no files left to install
+  find fakeinstall -depth -print0 | xargs -0 rmdir
 }

Modified: xvfb-run
===================================================================
--- xvfb-run	2018-05-11 12:06:12 UTC (rev 323944)
+++ xvfb-run	2018-05-11 14:11:24 UTC (rev 323945)
@@ -1,6 +1,21 @@
 #!/bin/sh
+# --- T2-COPYRIGHT-NOTE-BEGIN ---
+# This copyright note is auto-generated by ./scripts/Create-CopyPatch.
+# 
+# T2 SDE: package/.../xorg-server/xvfb-run.sh
+# Copyright (C) 2005 The T2 SDE Project
+# Copyright (C) XXXX - 2005 Debian
+# 
+# More information can be found in the files COPYING and README.
+# 
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; version 2 of the License. A copy of the
+# GNU General Public License can be found in the file COPYING.
+# --- T2-COPYRIGHT-NOTE-END ---
 
-# $Id: xvfb-run 2027 2004-11-16 14:54:16Z branden $
+# $Id$
+# from: http://necrotic.deadbeast.net/xsf/XFree86/trunk/debian/local/xvfb-run
 
 # This script starts an instance of Xvfb, the "fake" X server, runs a command
 # with that server available, and kills the X server when done.  The return
@@ -16,7 +31,7 @@
 AUTHFILE=
 ERRORFILE=/dev/null
 STARTWAIT=3
-XVFBARGS="-screen 0 640x480x8"
+XVFBARGS="-screen 0 640x480x24"
 LISTENTCP="-nolisten tcp"
 XAUTHPROTO=.
 
@@ -49,7 +64,10 @@
 Run COMMAND (usually an X client) in a virtual X server environment.
 Options:
 -a        --auto-servernum          try to get a free server number, starting at
-                                    --server-num
+                                    --server-num (deprecated, use --auto-display
+                                    instead)
+-d        --auto-display            use the X server to find a display number
+                                    automatically
 -e FILE   --error-file=FILE         file used to store xauth errors and Xvfb
                                     output (default: $ERRORFILE)
 -f FILE   --auth-file=FILE          file used to store auth cookie
@@ -81,22 +99,9 @@
     echo $i
 }
 
-# Clean up files
-clean_up() {
-    if [ -e "$AUTHFILE" ]; then
-        XAUTHORITY=$AUTHFILE xauth remove ":$SERVERNUM" >>"$ERRORFILE" 2>&1
-    fi
-    if [ -n "$XVFB_RUN_TMPDIR" ]; then
-        if ! rm -r "$XVFB_RUN_TMPDIR"; then
-            error "problem while cleaning up temporary directory"
-            exit 5
-        fi
-    fi
-}
-
 # Parse the command line.
-ARGS=$(getopt --options +ae:f:hn:lp:s:w: \
-       --long auto-servernum,error-file:,auth-file:,help,server-num:,listen-tcp,xauth-protocol:,server-args:,wait: \
+ARGS=$(getopt --options +ade:f:hn:lp:s:w: \
+       --long auto-servernum,error-file:auth-file:,help,server-num:,listen-tcp,xauth-protocol:,server-args:,wait: \
        --name "$PROGNAME" -- "$@")
 GETOPT_STATUS=$?
 
@@ -110,6 +115,7 @@
 while :; do
     case "$1" in
         -a|--auto-servernum) SERVERNUM=$(find_free_servernum) ;;
+        -d|--auto-display) AUTO_DISPLAY=1 ;;
         -e|--error-file) ERRORFILE="$2"; shift ;;
         -f|--auth-file) AUTHFILE="$2"; shift ;;
         -h|--help) SHOWHELP="yes" ;;
@@ -136,34 +142,39 @@
     exit 2
 fi
 
-if ! which xauth >/dev/null; then
+if ! type xauth >/dev/null; then
     error "xauth command not found"
     exit 3
 fi
 
-# tidy up after ourselves
-trap clean_up EXIT
-
+# Set up the temp dir for the pid and X authorization file
+XVFB_RUN_TMPDIR="$(mktemp --directory --tmpdir $PROGNAME.XXXXXX)"
 # If the user did not specify an X authorization file to use, set up a temporary
 # directory to house one.
 if [ -z "$AUTHFILE" ]; then
-    XVFB_RUN_TMPDIR="$(mktemp -d -t $PROGNAME.XXXXXX)"
-    AUTHFILE="$XVFB_RUN_TMPDIR/Xauthority"
+    AUTHFILE=$(mktemp -p "$XVFB_RUN_TMPDIR" Xauthority.XXXXXX)
 fi
 
 # Start Xvfb.
 MCOOKIE=$(mcookie)
+
+if [ -z "$AUTO_DISPLAY" ]; then
+  # Old style using a pre-computed SERVERNUM
+  XAUTHORITY=$AUTHFILE Xvfb ":$SERVERNUM" $XVFBARGS $LISTENTCP >>"$ERRORFILE" \
+  2>&1 &
+  XVFBPID=$!
+else
+  # New style using Xvfb to provide a free display
+  PIDFILE=$(mktemp -p "$XVFB_RUN_TMPDIR" pid.XXXXXX)
+  SERVERNUM=$(XAUTHORITY=$AUTHFILE Xvfb -displayfd 1 $XVFBARGS $LISTENTCP \
+  2>"$ERRORFILE" & echo $! > $PIDFILE)
+  XVFBPID=$(cat $PIDFILE)
+fi
+sleep "$STARTWAIT"
+
 XAUTHORITY=$AUTHFILE xauth source - << EOF >>"$ERRORFILE" 2>&1
 add :$SERVERNUM $XAUTHPROTO $MCOOKIE
 EOF
-XAUTHORITY=$AUTHFILE Xvfb ":$SERVERNUM" $XVFBARGS $LISTENTCP >>"$ERRORFILE" \
-  2>&1 &
-XVFBPID=$!
-sleep "$STARTWAIT"
-if ! kill -0 $XVFBPID 2>/dev/null; then
-  echo "Xvfb failed to start" >&2
-  exit 1
-fi
 
 # Start the command and save its exit status.
 set +e
@@ -174,6 +185,15 @@
 # Kill Xvfb now that the command has exited.
 kill $XVFBPID
 
+# Clean up.
+XAUTHORITY=$AUTHFILE xauth remove ":$SERVERNUM" >"$ERRORFILE" 2>&1
+if [ -n "$XVFB_RUN_TMPDIR" ]; then
+    if ! rm -r "$XVFB_RUN_TMPDIR"; then
+        error "problem while cleaning up temporary directory"
+        exit 5
+    fi
+fi
+
 # Return the executed command's exit status.
 exit $RETVAL
 

Added: xwayland-config.h.meson.in
===================================================================
--- xwayland-config.h.meson.in	                        (rev 0)
+++ xwayland-config.h.meson.in	2018-05-11 14:11:24 UTC (rev 323945)
@@ -0,0 +1,8 @@
+/* xwayland-config.h.meson.in: not at all generated */
+
+#pragma once
+
+#include <dix-config.h>
+
+/* Build glamor support for Xwayland */
+#mesondefine XWL_HAS_GLAMOR



More information about the arch-commits mailing list