diff --git a/0001-dix-block-signals-when-closing-all-devices.patch b/0001-dix-block-signals-when-closing-all-devices.patch deleted file mode 100644 index b7bdbfb..0000000 --- a/0001-dix-block-signals-when-closing-all-devices.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 01e37883438b0bedf511f0b56d31943ad2a192f5 Mon Sep 17 00:00:00 2001 -From: Peter Hutterer -Date: Mon, 24 Oct 2011 12:00:32 +1000 -Subject: [PATCH] dix: block signals when closing all devices - -When closing down all devices, we manually unset master for all attached -devices, but the device's sprite info still points to the master's sprite -info. This leaves us a window where the master is freed already but the -device isn't yet. A signal during that window causes dereference of the -already freed spriteInfo in mieqEnqueue's EnqueueScreen macro. - -Simply block signals when removing all devices. It's not like we're really -worrying about high-responsive input at this stage. - -https://bugzilla.redhat.com/show_bug.cgi?id=737031 - -Signed-off-by: Peter Hutterer ---- - dix/devices.c | 4 ++++ - 1 files changed, 4 insertions(+), 0 deletions(-) - -diff --git a/dix/devices.c b/dix/devices.c -index 63454fe..4a525d5 100644 ---- a/dix/devices.c -+++ b/dix/devices.c -@@ -971,6 +971,8 @@ CloseDownDevices(void) - { - DeviceIntPtr dev; - -+ OsBlockSignals(); -+ - /* Float all SDs before closing them. Note that at this point resources - * (e.g. cursors) have been freed already, so we can't just call - * AttachDevice(NULL, dev, NULL). Instead, we have to forcibly set master -@@ -993,6 +995,8 @@ CloseDownDevices(void) - inputInfo.keyboard = NULL; - inputInfo.pointer = NULL; - XkbDeleteRulesDflts(); -+ -+ OsReleaseSignals(); - } - - /** --- -1.7.7 - diff --git a/commitid b/commitid index 04f751b..80e4f15 100644 --- a/commitid +++ b/commitid @@ -1 +1 @@ -ac2c307f4716ebd3e955c004ceec9f4c029401a0 +f0d50cc6651dce3a8a3cd3fb84210aa92b139763 diff --git a/driver-abi-rebuild.sh b/driver-abi-rebuild.sh new file mode 100755 index 0000000..3310333 --- /dev/null +++ b/driver-abi-rebuild.sh @@ -0,0 +1,19 @@ +#!/bin/sh +# +# Trivial script to rebuild drivers for ABI changes in the server +# Run me after a new xserver has hit the buildroot + +mkdir abi-rebuild +pushd abi-rebuild + +repoquery --qf="%{name}" --whatrequires xserver-abi\* | xargs -n 1 fedpkg co +for i in */ ; do + pushd $i + rpmdev-bumpspec -c "- ABI rebuild" + fedpkg commit -c -p && fedpkg build --nowait + popd +done + +popd + + diff --git a/xorg-x11-server.spec b/xorg-x11-server.spec index 207dda5..098471f 100644 --- a/xorg-x11-server.spec +++ b/xorg-x11-server.spec @@ -13,7 +13,7 @@ # # Fix rhpxl to no longer need vesamodes/extramodes -#define gitdate 20110818 +%define gitdate 20111109 %if !0%{?gitdate} @@ -50,8 +50,8 @@ Summary: X.Org X11 X server Name: xorg-x11-server -Version: 1.11.1 -Release: 2%{?gitdate:.%{gitdate}}%{dist} +Version: 1.11.99.1 +Release: 1%{?gitdate:.%{gitdate}}%{dist} URL: http://www.x.org License: MIT Group: User Interface/X @@ -76,8 +76,11 @@ Source10: xserver.pamd Source20: http://svn.exactcode.de/t2/trunk/package/xorg/xorg-server/xvfb-run.sh # for requires generation in drivers -Source30: xserver-sdk-abi-requires.release -Source31: xserver-sdk-abi-requires.git +Source30: xserver-sdk-abi-requires.release +Source31: xserver-sdk-abi-requires.git + +# maintainer convenience script +Source40: driver-abi-rebuild.sh # OpenGL compositing manager feature/optimization patches. # FIXME: who calls this? @@ -90,9 +93,6 @@ Patch5002: xserver-1.4.99-ssh-isnt-local.patch # don't build the (broken) acpi code Patch6011: xserver-1.6.0-less-acpi-brokenness.patch -# Make autoconfiguration chose nouveau driver for NVIDIA GPUs -Patch6016: xserver-1.6.1-nouveau.patch - # ajax needs to upstream this Patch6027: xserver-1.6.0-displayfd.patch Patch6030: xserver-1.6.99-right-of.patch @@ -105,13 +105,8 @@ Patch6053: xserver-1.8-disable-vboxvideo.patch # tests require Xorg Patch7007: xserver-1.10.99.1-test.patch -# Multi-seat support through config/udev backend. -# Submitted to upstream but not merged for 1.11 -Patch7009: xserver-1.10.99-config-add-udev-systemd-multi-seat-support.patch - -# Bug 737031 - [Crestline] Coredump when doing exit -Patch7010: 0001-dix-block-signals-when-closing-all-devices.patch - +# Fix selinux build error +Patch7010: 0001-Xext-don-t-swap-CARD8-in-SProcSELinuxQueryVersion.patch %define moduledir %{_libdir}/xorg/modules %define drimoduledir %{_libdir}/dri @@ -154,7 +149,7 @@ BuildRequires: libXi-devel libXpm-devel libXaw-devel libXfixes-devel BuildRequires: libXv-devel BuildRequires: pixman-devel >= 0.21.8 -BuildRequires: libpciaccess-devel >= 0.10.6-1 openssl-devel byacc flex +BuildRequires: libpciaccess-devel >= 0.12.901-1 openssl-devel byacc flex BuildRequires: mesa-libGL-devel >= 7.6-0.6 # XXX silly... BuildRequires: libdrm-devel >= 2.4.0 kernel-headers @@ -388,6 +383,7 @@ make install DESTDIR=$RPM_BUILD_ROOT moduledir=%{moduledir} %if %{with_hw_servers} rm -f $RPM_BUILD_ROOT%{_libdir}/xorg/modules/libxf8_16bpp.so +rm -rf $RPM_BUILD_ROOT%{_libdir}/xorg/modules/multimedia/ mkdir -p $RPM_BUILD_ROOT%{_libdir}/xorg/modules/{drivers,input} mkdir -p $RPM_BUILD_ROOT%{_datadir}/xorg @@ -493,14 +489,6 @@ rm -rf $RPM_BUILD_ROOT %{_libdir}/xorg/modules/extensions/librecord.so %dir %{_libdir}/xorg/modules/input %{_libdir}/xorg/modules/libfbdevhw.so -%dir %{_libdir}/xorg/modules/multimedia -%{_libdir}/xorg/modules/multimedia/bt829_drv.so -%{_libdir}/xorg/modules/multimedia/fi1236_drv.so -%{_libdir}/xorg/modules/multimedia/msp3430_drv.so -%{_libdir}/xorg/modules/multimedia/tda8425_drv.so -%{_libdir}/xorg/modules/multimedia/tda9850_drv.so -%{_libdir}/xorg/modules/multimedia/tda9885_drv.so -%{_libdir}/xorg/modules/multimedia/uda1380_drv.so %{_libdir}/xorg/modules/libexa.so %{_libdir}/xorg/modules/libfb.so %{_libdir}/xorg/modules/libint10.so @@ -580,6 +568,13 @@ rm -rf $RPM_BUILD_ROOT %{xserver_source_dir} %changelog +* Wed Nov 09 2011 Peter Hutterer 1.11.99.1-1.20111109 +- Update to today's git snapshot +- xserver-1.6.1-nouveau.patch: drop, upstream +- xserver-1.10.99-config-add-udev-systemd-multi-seat-support.patch: drop, + upstream +- 0001-dix-block-signals-when-closing-all-devices.patch: drop, upstream + * Wed Nov 09 2011 Adam Jackson - Change the ABI magic for snapshots diff --git a/xserver-1.10.99-config-add-udev-systemd-multi-seat-support.patch b/xserver-1.10.99-config-add-udev-systemd-multi-seat-support.patch deleted file mode 100644 index bd832f8..0000000 --- a/xserver-1.10.99-config-add-udev-systemd-multi-seat-support.patch +++ /dev/null @@ -1,222 +0,0 @@ -From 5a555338bf11afb5942daabfdae8638e7aab2ac6 Mon Sep 17 00:00:00 2001 -From: Lennart Poettering -Date: Mon, 18 Jul 2011 21:19:23 +0200 -Subject: [PATCH] config: add udev/systemd multi-seat support - -Add support for multi-seat-aware input device hotplugging. This -implements the multi-seat scheme explained here: - -http://www.freedesktop.org/wiki/Software/systemd/multiseat - -This introduces a new X server switch "-seat" which allows configuration -of the seat to enumerate hotplugging devices on. If specified the value -of this parameter will also be exported as root window property -Xorg_Seat. - -To properly support input hotplugging devices need to be tagged in udev -according to the seat they are on. Untagged devices are assumed to be on -the default seat "seat0". If no "-seat" parameter is passed only devices -on "seat0" are used. This means that the new scheme is perfectly -compatible with existing setups which have no tagged input devices. - -Note that the -seat switch takes a completely generic identifier, and -that it has no effect on non-Linux systems. In fact, on other OSes a -completely different identifier scheme for seats could be used but still -be exposed with the Xorg_Seat and -seat. - -I tried to follow the coding style of the surrounding code blocks if -there was any one could follow. - -Signed-off-by: Lennart Poettering -Signed-off-by: Peter Hutterer - -Conflicts: - - config/udev.c - -Signed-off-by: Peter Hutterer ---- - config/udev.c | 18 ++++++++++++++++++ - hw/xfree86/common/xf86Init.c | 19 +++++++++++++++++++ - include/globals.h | 2 +- - include/xserver-properties.h | 3 +++ - man/Xserver.man | 6 ++++++ - os/utils.c | 10 ++++++++++ - 6 files changed, 57 insertions(+), 1 deletions(-) - -diff --git a/config/udev.c b/config/udev.c -index e7383dc..fc6ee5d 100644 ---- a/config/udev.c -+++ b/config/udev.c -@@ -35,6 +35,7 @@ - #include "hotplug.h" - #include "config-backends.h" - #include "os.h" -+#include "globals.h" - - #define UDEV_XKB_PROP_KEY "xkb" - -@@ -65,6 +66,7 @@ device_added(struct udev_device *udev_device) - struct udev_list_entry *set, *entry; - struct udev_device *parent; - int rc; -+ const char *dev_seat; - - path = udev_device_get_devnode(udev_device); - -@@ -73,6 +75,16 @@ device_added(struct udev_device *udev_device) - if (!path || !syspath) - return; - -+ dev_seat = udev_device_get_property_value(udev_device, "ID_SEAT"); -+ if (!dev_seat) -+ dev_seat = "seat0"; -+ -+ if (SeatId && strcmp(dev_seat, SeatId)) -+ return; -+ -+ if (!SeatId && strcmp(dev_seat, "seat0")) -+ return; -+ - if (!udev_device_get_property_value(udev_device, "ID_INPUT")) { - LogMessageVerb(X_INFO, 10, - "config/udev: ignoring device %s without " -@@ -284,6 +296,9 @@ config_udev_init(void) - udev_monitor_filter_add_match_subsystem_devtype(udev_monitor, "input", NULL); - udev_monitor_filter_add_match_subsystem_devtype(udev_monitor, "tty", NULL); /* For Wacom serial devices */ - -+ if (SeatId && strcmp(SeatId, "seat0")) -+ udev_monitor_filter_add_match_tag(udev_monitor, SeatId); -+ - if (udev_monitor_enable_receiving(udev_monitor)) { - ErrorF("config/udev: failed to bind the udev monitor\n"); - return 0; -@@ -296,6 +311,9 @@ config_udev_init(void) - udev_enumerate_add_match_subsystem(enumerate, "input"); - udev_enumerate_add_match_subsystem(enumerate, "tty"); - -+ if (SeatId && strcmp(SeatId, "seat0")) -+ udev_enumerate_add_match_tag(enumerate, SeatId); -+ - udev_enumerate_scan_devices(enumerate); - devices = udev_enumerate_get_list_entry(enumerate); - udev_list_entry_foreach(device, devices) { -diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c -index 71926f8..a268ced 100644 ---- a/hw/xfree86/common/xf86Init.c -+++ b/hw/xfree86/common/xf86Init.c -@@ -80,6 +80,7 @@ - #include "xf86Bus.h" - #include "xf86VGAarbiter.h" - #include "globals.h" -+#include "xserver-properties.h" - - #ifdef DPMSExtension - #include -@@ -654,6 +655,24 @@ InitOutput(ScreenInfo *pScreenInfo, int argc, char **argv) - } - } - -+ if (SeatId) { -+ Atom SeatAtom; -+ -+ SeatAtom = MakeAtom(SEAT_ATOM_NAME, sizeof(SEAT_ATOM_NAME) - 1, TRUE); -+ -+ for (i = 0; i < xf86NumScreens; i++) { -+ int ret; -+ -+ ret = xf86RegisterRootWindowProperty(xf86Screens[i]->scrnIndex, -+ SeatAtom, XA_STRING, 8, -+ strlen(SeatId)+1, SeatId ); -+ if (ret != Success) { -+ xf86DrvMsg(xf86Screens[i]->scrnIndex, X_WARNING, -+ "Failed to register seat property\n"); -+ } -+ } -+ } -+ - /* If a screen uses depth 24, show what the pixmap format is */ - for (i = 0; i < xf86NumScreens; i++) { - if (xf86Screens[i]->depth == 24) { -diff --git a/include/globals.h b/include/globals.h -index 8b80a65..17bca82 100644 ---- a/include/globals.h -+++ b/include/globals.h -@@ -21,7 +21,7 @@ extern _X_EXPORT int defaultColorVisualClass; - - extern _X_EXPORT int GrabInProgress; - extern _X_EXPORT Bool noTestExtensions; -- -+extern _X_EXPORT char *SeatId; - extern _X_EXPORT char *ConnectionInfo; - - #ifdef DPMSExtension -diff --git a/include/xserver-properties.h b/include/xserver-properties.h -index 2b1feab..bf50042 100644 ---- a/include/xserver-properties.h -+++ b/include/xserver-properties.h -@@ -30,6 +30,9 @@ - * byte-ordering. */ - #define XATOM_FLOAT "FLOAT" - -+/* STRING. Seat name of this display */ -+#define SEAT_ATOM_NAME "Xorg_Seat" -+ - /* BOOL. 0 - device disabled, 1 - device enabled */ - #define XI_PROP_ENABLED "Device Enabled" - /* BOOL. If present, device is a virtual XTEST device */ -diff --git a/man/Xserver.man b/man/Xserver.man -index f743912..1a36b09 100644 ---- a/man/Xserver.man -+++ b/man/Xserver.man -@@ -220,6 +220,12 @@ sets screen-saver timeout time in minutes. - .B \-su - disables save under support on all screens. - .TP 8 -+.B \-seat \fIseat\fP -+seat to run on. Takes a string identifying a seat in a platform -+specific syntax. On platforms which support this feature this may be -+used to limit the server to expose only a specific subset of devices -+connected to the system. -+.TP 8 - .B \-t \fInumber\fP - sets pointer acceleration threshold in pixels (i.e. after how many pixels - pointer acceleration should take effect). -diff --git a/os/utils.c b/os/utils.c -index 6338860..db2ae84 100644 ---- a/os/utils.c -+++ b/os/utils.c -@@ -201,6 +201,8 @@ Bool PanoramiXExtensionDisabledHack = FALSE; - - int auditTrailLevel = 1; - -+char *SeatId = NULL; -+ - #if defined(SVR4) || defined(__linux__) || defined(CSRG_BASED) - #define HAS_SAVED_IDS_AND_SETEUID - #endif -@@ -511,6 +513,7 @@ void UseMsg(void) - ErrorF("-render [default|mono|gray|color] set render color alloc policy\n"); - ErrorF("-retro start with classic stipple and cursor\n"); - ErrorF("-s # screen-saver timeout (minutes)\n"); -+ ErrorF("-seat string seat to run on\n"); - ErrorF("-t # default pointer threshold (pixels/t)\n"); - ErrorF("-terminate terminate at server reset\n"); - ErrorF("-to # connection time out\n"); -@@ -813,6 +816,13 @@ ProcessCommandLine(int argc, char *argv[]) - else - UseMsg(); - } -+ else if ( strcmp( argv[i], "-seat") == 0) -+ { -+ if(++i < argc) -+ SeatId = argv[i]; -+ else -+ UseMsg(); -+ } - else if ( strcmp( argv[i], "-t") == 0) - { - if(++i < argc) --- -1.7.6 - diff --git a/xserver-1.6.0-less-acpi-brokenness.patch b/xserver-1.6.0-less-acpi-brokenness.patch index 6c251b8..41e6ff3 100644 --- a/xserver-1.6.0-less-acpi-brokenness.patch +++ b/xserver-1.6.0-less-acpi-brokenness.patch @@ -1,31 +1,25 @@ -From 42959f3af32ca14d4c15c37b6005acca324debdb Mon Sep 17 00:00:00 2001 +From 392ce7dc5062416a8cf1c9a66e0dce1677f46804 Mon Sep 17 00:00:00 2001 From: Adam Jackson -Date: Wed, 11 Mar 2009 14:02:11 -0400 -Subject: [PATCH 1/9] Don't build the ACPI code. +Date: Wed, 9 Nov 2011 11:52:06 +1000 +Subject: [PATCH] Don't build the ACPI code. No good can come of this. --- - configure.ac | 2 -- - 1 files changed, 0 insertions(+), 2 deletions(-) + configure.ac | 1 - + 1 files changed, 0 insertions(+), 1 deletions(-) diff --git a/configure.ac b/configure.ac -index 9e04ff0..b1175f5 100644 +index 63d59f9..6683005 100644 --- a/configure.ac +++ b/configure.ac -@@ -1570,13 +1570,11 @@ if test "x$XORG" = xyes; then - case $host_cpu in - ia64*) - linux_ia64=yes -- linux_acpi="yes" - ;; - alpha*) +@@ -1624,7 +1624,6 @@ if test "x$XORG" = xyes; then linux_alpha=yes ;; - i*86|amd64*|x86_64*) + i*86|amd64*|x86_64*|ia64*) - linux_acpi="yes" ;; *) ;; -- -1.7.4.4 +1.7.7 diff --git a/xserver-1.6.1-nouveau.patch b/xserver-1.6.1-nouveau.patch deleted file mode 100644 index cf42403..0000000 --- a/xserver-1.6.1-nouveau.patch +++ /dev/null @@ -1,42 +0,0 @@ -From f5e43a8e1bcbb9eab0ca6fcef6c26b6e83eca483 Mon Sep 17 00:00:00 2001 -From: Fedora X Ninjas -Date: Tue, 16 Feb 2010 11:38:17 +1000 -Subject: [PATCH 2/9] autoconfig: select nouveau by default for NVIDIA GPUs - -Also, don't treat DRI setup failure as an error for nouveau. ---- - hw/xfree86/common/xf86pciBus.c | 18 +++++++++++++++++- - 1 files changed, 17 insertions(+), 1 deletions(-) - -diff --git a/hw/xfree86/common/xf86pciBus.c b/hw/xfree86/common/xf86pciBus.c -index 447b192..26d6cad 100644 ---- a/hw/xfree86/common/xf86pciBus.c -+++ b/hw/xfree86/common/xf86pciBus.c -@@ -1123,7 +1123,23 @@ videoPtrToDriverList(struct pci_device *dev, - break; - case 0x102b: driverList[0] = "mga"; break; - case 0x10c8: driverList[0] = "neomagic"; break; -- case 0x10de: case 0x12d2: driverList[0] = "nv"; break; -+ case 0x10de: case 0x12d2: -+ switch (dev->device_id) { -+ /* NV1 */ -+ case 0x0008: -+ case 0x0009: -+ driverList[0] = "vesa"; -+ break; -+ /* NV3 */ -+ case 0x0018: -+ case 0x0019: -+ driverList[0] = "nv"; -+ break; -+ default: -+ driverList[0] = "nouveau"; -+ break; -+ } -+ break; - case 0x1106: driverList[0] = "openchrome"; break; - case 0x1b36: driverList[0] = "qxl"; break; - case 0x1163: driverList[0] = "rendition"; break; --- -1.7.4.4 -