diff options
-rw-r--r-- | .SRCINFO | 16 | ||||
-rw-r--r-- | 0001-linux-Do-not-call-FatalError-from-xf86CloseConsole.patch | 84 | ||||
-rw-r--r-- | 0001-systemd-logind-do-not-rely-on-directed-signals.patch | 55 | ||||
-rw-r--r-- | PKGBUILD | 30 |
4 files changed, 74 insertions, 111 deletions
@@ -1,5 +1,5 @@ pkgbase = xorg-server-dev - pkgver = 1.17.99.902 + pkgver = 1.18.0 pkgrel = 1 url = http://xorg.freedesktop.org arch = i686 @@ -52,18 +52,16 @@ pkgbase = xorg-server-dev makedepends = dri3proto makedepends = libxshmfence makedepends = libunwind - source = http://xorg.freedesktop.org/releases/individual/xserver/xorg-server-1.17.99.902.tar.bz2 - source = http://xorg.freedesktop.org/releases/individual/xserver/xorg-server-1.17.99.902.tar.bz2.sig - source = nvidia-drm-outputclass.conf + source = http://xorg.freedesktop.org/releases/individual/xserver/xorg-server-1.18.0.tar.bz2 + source = http://xorg.freedesktop.org/releases/individual/xserver/xorg-server-1.18.0.tar.bz2.sig source = xvfb-run source = xvfb-run.1 - source = 0001-linux-Do-not-call-FatalError-from-xf86CloseConsole.patch - sha256sums = 0344d78d92ba5f1181e0adb98a9679d5906b06bc3c15978e1355b0d3be3749c0 + source = 0001-systemd-logind-do-not-rely-on-directed-signals.patch + sha256sums = 195670819695d9cedd8dde95fbe069be0d0f488a77797a2d409f9f702daf312e sha256sums = SKIP - sha256sums = af1c3d2ea5de7f6a6b5f7c60951a189a4749d1495e5462f3157ae7ac8fe1dc56 sha256sums = ff0156309470fc1d378fd2e104338020a884295e285972cc88e250e031cc35b9 sha256sums = 2460adccd3362fefd4cdc5f1c70f332d7b578091fb9167bf88b5f91265bbd776 - sha256sums = bdcfc54ce0b64d29848efc56383d850778c6eeecf836c10b67ec2eda03a6160b + sha256sums = 3d7edab3a54d647e7d924b29d29f91b50212f308fcb1853a5aacd3181f58276c pkgname = xorg-server-dev pkgdesc = Xorg X server - Bleeding edge version @@ -78,9 +76,9 @@ pkgname = xorg-server-dev depends = libgcrypt depends = libxau depends = xorg-server-common-dev - depends = xf86-input-evdev depends = libxshmfence depends = libgl + depends = xf86-input-driver provides = X-ABI-VIDEODRV_VERSION=20.0 provides = X-ABI-XINPUT_VERSION=22.1 provides = X-ABI-EXTENSION_VERSION=9.0 diff --git a/0001-linux-Do-not-call-FatalError-from-xf86CloseConsole.patch b/0001-linux-Do-not-call-FatalError-from-xf86CloseConsole.patch deleted file mode 100644 index a33840adcf09..000000000000 --- a/0001-linux-Do-not-call-FatalError-from-xf86CloseConsole.patch +++ /dev/null @@ -1,84 +0,0 @@ -From ca355e9d6acab994453cdbb65cb213d09ee4a50f Mon Sep 17 00:00:00 2001 -From: Hans de Goede <hdegoede@redhat.com> -Date: Wed, 14 Oct 2015 15:10:35 +0200 -Subject: [PATCH] linux: Do not call FatalError from xf86CloseConsole - -FatalError ends up calling xf86CloseConsole itself, so calling FatalError -from within xf86CloseConsole is not a good idea. - -All the other error checking done in xf86CloseConsole uses -xf86Msg(X_WARNING, ...) except for the switch_to() helper function, -change things so that switch_to() also uses xf86Msg rather then FatalError -when called from xf86CloseConsole. - -BugLink: https://bugzilla.redhat.com/show_bug.cgi?id=1269210 -Signed-off-by: Hans de Goede <hdegoede@redhat.com> ---- - hw/xfree86/os-support/linux/lnx_init.c | 24 ++++++++++++++++-------- - 1 file changed, 16 insertions(+), 8 deletions(-) - -diff --git a/hw/xfree86/os-support/linux/lnx_init.c b/hw/xfree86/os-support/linux/lnx_init.c -index ec06a05..9fec964 100644 ---- a/hw/xfree86/os-support/linux/lnx_init.c -+++ b/hw/xfree86/os-support/linux/lnx_init.c -@@ -64,17 +64,25 @@ drain_console(int fd, void *closure) - } - - static void --switch_to(int vt, const char *from) -+switch_to(int vt, Bool is_open) - { - int ret; - - SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_ACTIVATE, vt)); -- if (ret < 0) -- FatalError("%s: VT_ACTIVATE failed: %s\n", from, strerror(errno)); -+ if (ret < 0) { -+ if (is_open) -+ FatalError("xf86OpenConsole: VT_ACTIVATE failed: %s\n", strerror(errno)); -+ else -+ xf86Msg(X_WARNING, "xf86CloseConsole: VT_ACTIVATE failed: %s\n", strerror(errno)); -+ } - - SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_WAITACTIVE, vt)); -- if (ret < 0) -- FatalError("%s: VT_WAITACTIVE failed: %s\n", from, strerror(errno)); -+ if (ret < 0) { -+ if (is_open) -+ FatalError("xf86OpenConsole: VT_WAITACTIVE failed: %s\n", strerror(errno)); -+ else -+ xf86Msg(X_WARNING, "xf86CloseConsole: VT_WAITACTIVE failed: %s\n", strerror(errno)); -+ } - } - - #pragma GCC diagnostic push -@@ -233,7 +241,7 @@ xf86OpenConsole(void) - /* - * now get the VT. This _must_ succeed, or else fail completely. - */ -- switch_to(xf86Info.vtno, "xf86OpenConsole"); -+ switch_to(xf86Info.vtno, TRUE); - - SYSCALL(ret = ioctl(xf86Info.consoleFd, VT_GETMODE, &VT)); - if (ret < 0) -@@ -294,7 +302,7 @@ xf86OpenConsole(void) - else { /* serverGeneration != 1 */ - if (!xf86Info.ShareVTs && xf86Info.autoVTSwitch) { - /* now get the VT */ -- switch_to(xf86Info.vtno, "xf86OpenConsole"); -+ switch_to(xf86Info.vtno, TRUE); - } - } - } -@@ -346,7 +354,7 @@ xf86CloseConsole(void) - * Perform a switch back to the active VT when we were started - */ - if (activeVT >= 0) { -- switch_to(activeVT, "xf86CloseConsole"); -+ switch_to(activeVT, FALSE); - activeVT = -1; - } - } --- -2.5.0 - diff --git a/0001-systemd-logind-do-not-rely-on-directed-signals.patch b/0001-systemd-logind-do-not-rely-on-directed-signals.patch new file mode 100644 index 000000000000..9daadf6f6336 --- /dev/null +++ b/0001-systemd-logind-do-not-rely-on-directed-signals.patch @@ -0,0 +1,55 @@ +From 780a69aff0ff57ef813179a2f09556eaf488cdfc Mon Sep 17 00:00:00 2001 +From: David Herrmann <dh.herrmann@gmail.com> +Date: Mon, 22 Jun 2015 21:13:05 +0200 +Subject: systemd-logind: do not rely on directed signals + +Right now, Xorg does not install DBus matches for "PauseDevice" / +"ResumeDevice". Therefore, it should usually not receive those DBus +signals from logind. It is just a coincidence that systemd-logind sends +those signals in a directed manner right now. Therefore, dbus-daemon +bypasses the broadcast matches. + +However, this is not ABI and Xorg should not rely on this. systemd-logind +is free to send those signals as broadcasts, in which case Xorg will +freeze the VT. Fix this by always installing those matches. + +Cc: Hans de Goede <hdegoede@redhat.com> +Cc: Keith Packard <keithp@keithp.com> +Reported-by: Jan Alexander Steffens <jan.steffens@gmail.com> +Signed-off-by: David Herrmann <dh.herrmann@gmail.com> +Reviewed-by: Hans de Goede <hdegoede@redhat.com> +Tested-by: Hans de Goede <hdegoede@redhat.com> +Signed-off-by: Hans de Goede <hdegoede@redhat.com> + +diff --git a/hw/xfree86/os-support/linux/systemd-logind.c b/hw/xfree86/os-support/linux/systemd-logind.c +index 69e2f67..2612d9e 100644 +--- a/hw/xfree86/os-support/linux/systemd-logind.c ++++ b/hw/xfree86/os-support/linux/systemd-logind.c +@@ -507,6 +507,24 @@ connect_hook(DBusConnection *connection, void *data) + goto cleanup; + } + ++ dbus_bus_add_match(connection, ++ "type='signal',sender='org.freedesktop.login1',interface='org.freedesktop.login1.Session',member='PauseDevice'", ++ &error); ++ if (dbus_error_is_set(&error)) { ++ LogMessage(X_ERROR, "systemd-logind: could not add match: %s\n", ++ error.message); ++ goto cleanup; ++ } ++ ++ dbus_bus_add_match(connection, ++ "type='signal',sender='org.freedesktop.login1',interface='org.freedesktop.login1.Session',member='ResumeDevice'", ++ &error); ++ if (dbus_error_is_set(&error)) { ++ LogMessage(X_ERROR, "systemd-logind: could not add match: %s\n", ++ error.message); ++ goto cleanup; ++ } ++ + /* + * HdG: This is not useful with systemd <= 208 since the signal only + * contains invalidated property names there, rather than property, val +-- +cgit v0.10.2 + @@ -3,7 +3,7 @@ _pkgbase=xorg-server pkgname=('xorg-server-dev' 'xorg-server-xephyr-dev' 'xorg-server-xdmx-dev' 'xorg-server-xvfb-dev' 'xorg-server-xnest-dev' 'xorg-server-xwayland-dev' 'xorg-server-common-dev' 'xorg-server-devel-dev') -pkgver=1.17.99.902 # 1.18.0 RC2: http://lists.x.org/archives/xorg-announce/2015-October/002646.html +pkgver=1.18.0 # http://lists.x.org/archives/xorg-announce/2015-November/002654.html pkgrel=1 arch=('i686' 'x86_64') license=('custom') @@ -14,27 +14,25 @@ makedepends=('pixman' 'libx11' 'mesa' 'libgl' 'xf86driproto' 'xcmiscproto' 'xtra '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') + 'libxshmfence' 'libunwind') source=(${url}/releases/individual/xserver/${_pkgbase}-${pkgver}.tar.bz2{,.sig} - nvidia-drm-outputclass.conf xvfb-run xvfb-run.1 - 0001-linux-Do-not-call-FatalError-from-xf86CloseConsole.patch) + 0001-systemd-logind-do-not-rely-on-directed-signals.patch) validpgpkeys=('7B27A3F1A6E18CD9588B4AE8310180050905E40C' 'C383B778255613DFDB409D91DB221A6900000011' 'DD38563A8A8224537D1F90E45B8A2D50A0ECD0D3') -sha256sums=('0344d78d92ba5f1181e0adb98a9679d5906b06bc3c15978e1355b0d3be3749c0' +sha256sums=('195670819695d9cedd8dde95fbe069be0d0f488a77797a2d409f9f702daf312e' 'SKIP' - 'af1c3d2ea5de7f6a6b5f7c60951a189a4749d1495e5462f3157ae7ac8fe1dc56' 'ff0156309470fc1d378fd2e104338020a884295e285972cc88e250e031cc35b9' '2460adccd3362fefd4cdc5f1c70f332d7b578091fb9167bf88b5f91265bbd776' - 'bdcfc54ce0b64d29848efc56383d850778c6eeecf836c10b67ec2eda03a6160b') + '3d7edab3a54d647e7d924b29d29f91b50212f308fcb1853a5aacd3181f58276c') prepare() { cd "${_pkgbase}-${pkgver}" - msg2 "fix FS#46741, taken from Fedora" - patch -Np1 -i ../0001-linux-Do-not-call-FatalError-from-xf86CloseConsole.patch + msg2 "fix VT switching with kdbus; from upstream" + patch -Np1 -i ../0001-systemd-logind-do-not-rely-on-directed-signals.patch msg2 "Starting autoreconf..." autoreconf -fvi @@ -57,9 +55,7 @@ build() { --enable-xephyr \ --enable-glamor \ --enable-xwayland \ - --enable-glx-tls \ --enable-kdrive \ - --enable-kdrive-evdev \ --enable-kdrive-kbd \ --enable-kdrive-mouse \ --enable-config-udev \ @@ -77,7 +73,7 @@ build() { --with-xkb-output=/var/lib/xkb \ --with-fontrootdir=/usr/share/fonts \ --with-sha1=libgcrypt - + # --without-dtrace \ # --disable-linux-acpi --disable-linux-apm \ @@ -116,7 +112,8 @@ package_xorg-server-common-dev() { package_xorg-server-dev() { pkgdesc="Xorg X server - Bleeding edge version" - depends=(libepoxy libxdmcp libxfont libpciaccess libdrm pixman libgcrypt libxau xorg-server-common-dev xf86-input-evdev libxshmfence libgl) + depends=(libepoxy libxdmcp libxfont libpciaccess libdrm pixman libgcrypt libxau xorg-server-common-dev libxshmfence libgl xf86-input-driver) + # see src/xorg-server-*/hw/xfree86/common/xf86Module.h for ABI versions - we provide major numbers that drivers can depend on # and /usr/lib/pkgconfig/xorg-server.pc in xorg-server-devel-dev pkg for VAR in VIDEODRV XINPUT EXTENSION; do @@ -132,11 +129,10 @@ package_xorg-server-dev() { msg2 "Starting make install..." make DESTDIR="${pkgdir}" install - + # distro specific files must be installed in /usr/share/X11/xorg.conf.d install -m755 -d "${pkgdir}/etc/X11/xorg.conf.d" - install -m644 "${srcdir}/nvidia-drm-outputclass.conf" "${pkgdir}/usr/share/X11/xorg.conf.d/" - + # Needed for non-mesa drivers, libgl will restore it mv "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.so" \ "${pkgdir}/usr/lib/xorg/modules/extensions/libglx.xorg" @@ -152,8 +148,6 @@ package_xorg-server-dev() { rm -rf "${pkgdir}/usr/lib/pkgconfig" rm -rf "${pkgdir}/usr/include" rm -rf "${pkgdir}/usr/share/aclocal" - # this is now part of xf86-input-evdev - rm -rf "${pkgdir}/usr/share/X11/xorg.conf.d/10-evdev.conf" } package_xorg-server-xephyr-dev() { |