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
This commit is contained in:
Adam Jackson 2011-11-09 17:52:14 -05:00
parent 243e82a3bb
commit d7ae664dcc
7 changed files with 48 additions and 350 deletions

View File

@ -1,46 +0,0 @@
From 01e37883438b0bedf511f0b56d31943ad2a192f5 Mon Sep 17 00:00:00 2001
From: Peter Hutterer <peter.hutterer@who-t.net>
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 <peter.hutterer@who-t.net>
---
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

View File

@ -1 +1 @@
ac2c307f4716ebd3e955c004ceec9f4c029401a0
f0d50cc6651dce3a8a3cd3fb84210aa92b139763

19
driver-abi-rebuild.sh Executable file
View File

@ -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

View File

@ -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 <peter.hutterer@redhat.com> 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 <ajax@redhat.com>
- Change the ABI magic for snapshots

View File

@ -1,222 +0,0 @@
From 5a555338bf11afb5942daabfdae8638e7aab2ac6 Mon Sep 17 00:00:00 2001
From: Lennart Poettering <lennart@poettering.net>
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 <lennart@poettering.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Conflicts:
config/udev.c
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
---
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 <X11/extensions/dpmsconst.h>
@@ -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

View File

@ -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 <ajax@redhat.com>
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

View File

@ -1,42 +0,0 @@
From f5e43a8e1bcbb9eab0ca6fcef6c26b6e83eca483 Mon Sep 17 00:00:00 2001
From: Fedora X Ninjas <x@fedoraproject.org>
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