Commit 4de8d32d authored by Ram-Z's avatar Ram-Z

xorg-server: update xorg-server

parent 0adf8e9e
From e1a7f4bb5333b0271d29f785eb55f1c3273e626a Mon Sep 17 00:00:00 2001
From: Peter Hutterer <peter.hutterer@who-t.net>
Date: Tue, 5 May 2015 14:18:54 +1000
Subject: [PATCH] dix: Add unaccelerated valuators to the ValuatorMask
Allows a mask to carry both accelerated and unaccelerated motion at the same
time.
This is required for xf86-input-libinput where the pointer acceleration
happens in libinput already, but parts of the server, specifically raw events
and DGA rely on device-specific unaccelerated data.
To ease integration add this as a second set to the ValuatorMask rather than
extending all APIs to carry a second, possibly NULL set of valuators.
Note that a valuator mask should only be used in either accel/unaccel or
standard mode at any time. Switching requires either a valuator_mask_zero()
call or unsetting all valuators one-by-one. Trying to mix the two will produce
a warning.
The server has a shortcut for changing a mask with the
valuator_mask_drop_unaccelerated() call. This saves us from having to loop
through all valuators on every event, we can just drop the bits we know we
don't want.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
---
dix/inpututils.c | 82 +++++++++++++++++++++++++++++++++++++++---
hw/xfree86/common/xf86Module.h | 2 +-
include/input.h | 15 ++++++++
include/inpututils.h | 2 ++
4 files changed, 95 insertions(+), 6 deletions(-)
diff --git a/dix/inpututils.c b/dix/inpututils.c
index 5c2a32d..1363988 100644
--- a/dix/inpututils.c
+++ b/dix/inpututils.c
@@ -505,11 +505,8 @@ valuator_mask_isset(const ValuatorMask *mask, int valuator)
return mask->last_bit >= valuator && BitIsOn(mask->mask, valuator);
}
-/**
- * Set the valuator to the given floating-point data.
- */
-void
-valuator_mask_set_double(ValuatorMask *mask, int valuator, double data)
+static inline void
+_valuator_mask_set_double(ValuatorMask *mask, int valuator, double data)
{
mask->last_bit = max(valuator, mask->last_bit);
SetBit(mask->mask, valuator);
@@ -517,6 +514,17 @@ valuator_mask_set_double(ValuatorMask *mask, int valuator, double data)
}
/**
+ * Set the valuator to the given floating-point data.
+ */
+void
+valuator_mask_set_double(ValuatorMask *mask, int valuator, double data)
+{
+ BUG_WARN_MSG(mask->has_unaccelerated,
+ "Do not mix valuator types, zero mask first\n");
+ _valuator_mask_set_double(mask, valuator, data);
+}
+
+/**
* Set the valuator to the given integer data.
*/
void
@@ -594,11 +602,15 @@ valuator_mask_unset(ValuatorMask *mask, int valuator)
ClearBit(mask->mask, valuator);
mask->valuators[valuator] = 0.0;
+ mask->unaccelerated[valuator] = 0.0;
for (i = 0; i <= mask->last_bit; i++)
if (valuator_mask_isset(mask, i))
lastbit = max(lastbit, i);
mask->last_bit = lastbit;
+
+ if (mask->last_bit == -1)
+ mask->has_unaccelerated = FALSE;
}
}
@@ -611,6 +623,66 @@ valuator_mask_copy(ValuatorMask *dest, const ValuatorMask *src)
valuator_mask_zero(dest);
}
+Bool
+valuator_mask_has_unaccelerated(const ValuatorMask *mask)
+{
+ return mask->has_unaccelerated;
+}
+
+void
+valuator_mask_drop_unaccelerated(ValuatorMask *mask)
+{
+ memset(mask->unaccelerated, 0, sizeof(mask->unaccelerated));
+ mask->has_unaccelerated = FALSE;
+}
+
+/**
+ * Set both accelerated and unaccelerated value for this mask.
+ */
+void
+valuator_mask_set_unaccelerated(ValuatorMask *mask,
+ int valuator,
+ double accel,
+ double unaccel)
+{
+ BUG_WARN_MSG(mask->last_bit != -1 && !mask->has_unaccelerated,
+ "Do not mix valuator types, zero mask first\n");
+ _valuator_mask_set_double(mask, valuator, accel);
+ mask->has_unaccelerated = TRUE;
+ mask->unaccelerated[valuator] = unaccel;
+}
+
+double
+valuator_mask_get_accelerated(const ValuatorMask *mask,
+ int valuator)
+{
+ return valuator_mask_get_double(mask, valuator);
+}
+
+double
+valuator_mask_get_unaccelerated(const ValuatorMask *mask,
+ int valuator)
+{
+ return mask->unaccelerated[valuator];
+}
+
+Bool
+valuator_mask_fetch_unaccelerated(const ValuatorMask *mask,
+ int valuator,
+ double *accel,
+ double *unaccel)
+{
+ if (valuator_mask_isset(mask, valuator)) {
+ if (accel)
+ *accel = valuator_mask_get_accelerated(mask, valuator);
+ if (unaccel)
+ *unaccel = valuator_mask_get_unaccelerated(mask, valuator);
+ return TRUE;
+ }
+ else
+ return FALSE;
+}
+
int
CountBits(const uint8_t * mask, int len)
{
diff --git a/hw/xfree86/common/xf86Module.h b/hw/xfree86/common/xf86Module.h
index e68fe9c..6133641 100644
--- a/hw/xfree86/common/xf86Module.h
+++ b/hw/xfree86/common/xf86Module.h
@@ -81,7 +81,7 @@ typedef enum {
*/
#define ABI_ANSIC_VERSION SET_ABI_VERSION(0, 4)
#define ABI_VIDEODRV_VERSION SET_ABI_VERSION(19, 0)
-#define ABI_XINPUT_VERSION SET_ABI_VERSION(21, 0)
+#define ABI_XINPUT_VERSION SET_ABI_VERSION(21, 1)
#define ABI_EXTENSION_VERSION SET_ABI_VERSION(9, 0)
#define ABI_FONT_VERSION SET_ABI_VERSION(0, 6)
diff --git a/include/input.h b/include/input.h
index bf22dc7..0a4c4f7 100644
--- a/include/input.h
+++ b/include/input.h
@@ -674,6 +674,21 @@ extern _X_EXPORT Bool valuator_mask_fetch(const ValuatorMask *mask,
extern _X_EXPORT Bool valuator_mask_fetch_double(const ValuatorMask *mask,
int valnum, double *val);
+extern _X_EXPORT Bool valuator_mask_has_unaccelerated(const ValuatorMask *mask);
+extern _X_EXPORT void valuator_mask_set_unaccelerated(ValuatorMask *mask,
+ int valuator,
+ double accel,
+ double unaccel);
+extern _X_EXPORT double valuator_mask_get_accelerated(const ValuatorMask *mask,
+ int valuator);
+extern _X_EXPORT double valuator_mask_get_unaccelerated(const ValuatorMask *mask,
+ int valuator);
+extern _X_EXPORT Bool valuator_mask_fetch_unaccelerated(const ValuatorMask *mask,
+ int valuator,
+ double *accel,
+ double *unaccel);
+extern _X_HIDDEN void valuator_mask_drop_unaccelerated(ValuatorMask *mask);
+
/* InputOption handling interface */
extern _X_EXPORT InputOption *input_option_new(InputOption *list,
const char *key,
diff --git a/include/inpututils.h b/include/inpututils.h
index 53c96ba..4e90815 100644
--- a/include/inpututils.h
+++ b/include/inpututils.h
@@ -36,8 +36,10 @@ extern Mask event_filters[MAXDEVICES][MAXEVENTS];
struct _ValuatorMask {
int8_t last_bit; /* highest bit set in mask */
+ int8_t has_unaccelerated;
uint8_t mask[(MAX_VALUATORS + 7) / 8];
double valuators[MAX_VALUATORS]; /* valuator data */
+ double unaccelerated[MAX_VALUATORS]; /* valuator data */
};
extern void verify_internal_event(const InternalEvent *ev);
--
2.4.1
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
From 7504fbd2239257f1a00a1a15d02862eea81f167c Mon Sep 17 00:00:00 2001
From: Peter Hutterer <peter.hutterer@who-t.net>
Date: Tue, 5 May 2015 14:48:41 +1000
Subject: [PATCH] dix: hook up the unaccelerated valuator masks
If present, access the unaccelerated valuator mask values for DGA and XI2 raw
events.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
---
dix/getevents.c | 31 ++++++++++++++++++++++---------
hw/xfree86/common/xf86Xinput.c | 4 ++++
2 files changed, 26 insertions(+), 9 deletions(-)
diff --git a/dix/getevents.c b/dix/getevents.c
index 6fb12c5..64bf76e 100644
--- a/dix/getevents.c
+++ b/dix/getevents.c
@@ -213,14 +213,25 @@ init_raw(DeviceIntPtr dev, RawDeviceEvent *event, Time ms, int type, int detail)
}
static void
-set_raw_valuators(RawDeviceEvent *event, ValuatorMask *mask, double *data)
+set_raw_valuators(RawDeviceEvent *event, ValuatorMask *mask,
+ BOOL use_unaccel, double *data)
{
int i;
+ use_unaccel = use_unaccel && valuator_mask_has_unaccelerated(mask);
+
for (i = 0; i < valuator_mask_size(mask); i++) {
if (valuator_mask_isset(mask, i)) {
+ double v;
+
SetBit(event->valuators.mask, i);
- data[i] = valuator_mask_get_double(mask, i);
+
+ if (use_unaccel)
+ v = valuator_mask_get_unaccelerated(mask, i);
+ else
+ v = valuator_mask_get_double(mask, i);
+
+ data[i] = v;
}
}
}
@@ -1138,11 +1149,11 @@ GetKeyboardEvents(InternalEvent *events, DeviceIntPtr pDev, int type,
valuator_mask_copy(&mask, mask_in);
init_raw(pDev, raw, ms, type, key_code);
- set_raw_valuators(raw, &mask, raw->valuators.data_raw);
+ set_raw_valuators(raw, &mask, TRUE, raw->valuators.data_raw);
clipValuators(pDev, &mask);
- set_raw_valuators(raw, &mask, raw->valuators.data);
+ set_raw_valuators(raw, &mask, FALSE, raw->valuators.data);
event = &events->device_event;
init_device_event(event, pDev, ms);
@@ -1423,9 +1434,11 @@ fill_pointer_events(InternalEvent *events, DeviceIntPtr pDev, int type,
num_events++;
init_raw(pDev, raw, ms, type, buttons);
- set_raw_valuators(raw, &mask, raw->valuators.data_raw);
+ set_raw_valuators(raw, &mask, TRUE, raw->valuators.data_raw);
}
+ valuator_mask_drop_unaccelerated(&mask);
+
/* valuators are in driver-native format (rel or abs) */
if (flags & POINTER_ABSOLUTE) {
@@ -1438,7 +1451,7 @@ fill_pointer_events(InternalEvent *events, DeviceIntPtr pDev, int type,
transformAbsolute(pDev, &mask);
clipAbsolute(pDev, &mask);
if ((flags & POINTER_NORAW) == 0 && raw)
- set_raw_valuators(raw, &mask, raw->valuators.data);
+ set_raw_valuators(raw, &mask, FALSE, raw->valuators.data);
}
else {
transformRelative(pDev, &mask);
@@ -1446,7 +1459,7 @@ fill_pointer_events(InternalEvent *events, DeviceIntPtr pDev, int type,
if (flags & POINTER_ACCELERATE)
accelPointer(pDev, &mask, ms);
if ((flags & POINTER_NORAW) == 0 && raw)
- set_raw_valuators(raw, &mask, raw->valuators.data);
+ set_raw_valuators(raw, &mask, FALSE, raw->valuators.data);
moveRelative(pDev, flags, &mask);
}
@@ -1951,7 +1964,7 @@ GetTouchEvents(InternalEvent *events, DeviceIntPtr dev, uint32_t ddx_touchid,
events++;
num_events++;
init_raw(dev, raw, ms, type, client_id);
- set_raw_valuators(raw, &mask, raw->valuators.data_raw);
+ set_raw_valuators(raw, &mask, TRUE, raw->valuators.data_raw);
}
event = &events->device_event;
@@ -2013,7 +2026,7 @@ GetTouchEvents(InternalEvent *events, DeviceIntPtr dev, uint32_t ddx_touchid,
screeny = dev->spriteInfo->sprite->hotPhys.y;
}
if (need_rawevent)
- set_raw_valuators(raw, &mask, raw->valuators.data);
+ set_raw_valuators(raw, &mask, FALSE, raw->valuators.data);
/* Indirect device touch coordinates are not used for cursor positioning.
* They are merely informational, and are provided in device coordinates.
diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index 1fb5b16..5ce4c71 100644
--- a/hw/xfree86/common/xf86Xinput.c
+++ b/hw/xfree86/common/xf86Xinput.c
@@ -1137,12 +1137,16 @@ xf86CheckMotionEvent4DGA(DeviceIntPtr device, int is_absolute,
dx = valuator_mask_get(mask, 0);
if (is_absolute)
dx -= device->last.valuators[0];
+ else if (valuator_mask_has_unaccelerated(mask))
+ dx = valuator_mask_get_unaccelerated(mask, 0);
}
if (valuator_mask_isset(mask, 1)) {
dy = valuator_mask_get(mask, 1);
if (is_absolute)
dy -= device->last.valuators[1];
+ else if (valuator_mask_has_unaccelerated(mask))
+ dy = valuator_mask_get_unaccelerated(mask, 1);
}
if (DGAStealMotionEvent(device, idx, dx, dy))
--
2.4.1
# Maintainer: Drake Justice <djustice@chakraos.org>
source ../xorg.conf
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')
pkgver=1.17.4
pkgrel=6 # build first with 0.1 and then rebuild it after xf86-input-evdev rebuild
pkgver=1.19.3
pkgrel=1
arch=('x86_64')
license=('custom')
groups=('xorg')
url="http://xorg.freedesktop.org"
makedepends=('pixman' 'libx11' 'mesa' 'mesa-libgl' 'xf86driproto' 'xcmiscproto' 'xtrans' 'bigreqsproto' 'randrproto'
makedepends=('pixman' 'libx11' 'mesa' 'xf86driproto' 'xcmiscproto' 'xtrans' 'bigreqsproto' 'randrproto'
'inputproto' 'fontsproto' 'videoproto' 'presentproto' 'compositeproto' 'recordproto' 'scrnsaverproto'
'resourceproto' 'xineramaproto' 'libxkbfile' 'libxfont' 'renderproto' 'libpciaccess' 'libxv'
'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' 'wayland' 'libunwind')
source=(${url}/releases/individual/xserver/${pkgbase}-${pkgver}.tar.bz2{,.sig}
autoconfig-nvidia.patch
autoconfig-sis.patch
'libxshmfence' 'libunwind' 'systemd' 'wayland-protocols')
source=(https://xorg.freedesktop.org/releases/individual/xserver/${pkgbase}-${pkgver}.tar.bz2{,.sig}
nvidia-add-modulepath-support.patch
xserver-autobind-hotplug.patch
modesetting-Set-correct-DRM-event-context-version.patch
10-quirks.conf
xvfb-run
xvfb-run.1
0001-dix-Add-unaccelerated-valuators-to-the-ValuatorMask.patch
0002-dix-hook-up-the-unaccelerated-valuator-masks.patch
0001-systemd-logind-do-not-rely-on-directed-signals.patch)
xvfb-run.1)
validpgpkeys=('7B27A3F1A6E18CD9588B4AE8310180050905E40C'
'C383B778255613DFDB409D91DB221A6900000011'
'DD38563A8A8224537D1F90E45B8A2D50A0ECD0D3')
sha256sums=('0c4b45c116a812a996eb432d8508cf26c2ec8c3916ff2a50781796882f8d6457'
sha256sums=('677a8166e03474719238dfe396ce673c4234735464d6dadf2959b600d20e5a98'
'SKIP'
'66e25f76a7496c429e0aff4b0670f168719bb0ceaeb88c6f2272f2bf3ed21162'
'd027776fac1f7675b0a9ee817502290b1c45f9c09b0f0a6bb058c35f92361e84'
'914a8d775b708f836ae3f0eeca553da3872727a2e4262190f4d5c01241cb14e8'
'fcaf536e4fc307958923b58f2baf3d3102ad694efc28506f6f95a9e64483fa57'
'831a70809e6bec766138d7a1c96643732df9a2c0c5f77ee44b47ce4be882e0af'
'94612f5c0d34a3b7152915c2e285c7b462e9d8e38d3539bd551a339498eac166'
'ff0156309470fc1d378fd2e104338020a884295e285972cc88e250e031cc35b9'
'2460adccd3362fefd4cdc5f1c70f332d7b578091fb9167bf88b5f91265bbd776'
'3dc795002b8763a7d29db94f0af200131da9ce5ffc233bfd8916060f83a8fad7'
'416a1422eed71efcebb1d893de74e7f27e408323a56c4df003db37f5673b3f96'
'3d7edab3a54d647e7d924b29d29f91b50212f308fcb1853a5aacd3181f58276c')
'2460adccd3362fefd4cdc5f1c70f332d7b578091fb9167bf88b5f91265bbd776')
prepare() {
cd "${pkgbase}-${pkgver}"
# Use unofficial imedia SiS driver for supported SiS devices
patch -Np0 -i ../autoconfig-sis.patch
# outputclass config file works only when nvidia-drm kernel driver is exposed
# this means that older drivers (304xx and before) aren't currently supported
# Use nouveau/nv/nvidia drivers for nvidia devices
patch -Np1 -i ../autoconfig-nvidia.patch
# fix Arch FS#45229, merged upstream
patch -Np1 -i ../0001-dix-Add-unaccelerated-valuators-to-the-ValuatorMask.patch
patch -Np1 -i ../0002-dix-hook-up-the-unaccelerated-valuator-masks.patch
# fix VT switching with kdbus; from upstream
patch -Np1 -i ../0001-systemd-logind-do-not-rely-on-directed-signals.patch
# merged upstream in trunk
patch -Np1 -i ../nvidia-add-modulepath-support.patch
# patch from Fedora, not yet merged
patch -Np1 -i ../xserver-autobind-hotplug.patch
# merged in trunk
patch -Np1 -i ../modesetting-Set-correct-DRM-event-context-version.patch
autoreconf -fvi
autoreconf -vfi
}
build() {
......@@ -72,7 +62,6 @@ build() {
--enable-xephyr \
--enable-glamor \
--enable-xwayland \
--enable-glx-tls \
--enable-kdrive \
--enable-kdrive-kbd \
--enable-kdrive-mouse \
......@@ -108,8 +97,7 @@ build() {
package_xorg-server-common() {
pkgdesc="Xorg server common files"
depends=('xkeyboard-config' 'xorg-xkbcomp' 'xorg-setxkbmap' 'xorg-fonts-misc'
'libunwind')
depends=(xkeyboard-config xorg-xkbcomp xorg-setxkbmap xorg-fonts-misc)
cd "${pkgbase}-${pkgver}"
install -m755 -d "${pkgdir}/usr/share/licenses/xorg-server-common"
......@@ -126,20 +114,23 @@ package_xorg-server-common() {
package_xorg-server() {
pkgdesc="Xorg X server"
depends=(libepoxy libxdmcp libxfont libpciaccess libdrm pixman libgcrypt libxau xorg-server-common xf86-input-driver libxshmfence libgl)
# see 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 pkg
provides=('X-ABI-VIDEODRV_VERSION=19' 'X-ABI-XINPUT_VERSION=21.1' 'X-ABI-EXTENSION_VERSION=9.0' 'x-server')
groups=('xorg')
depends=(libepoxy libxfont2 pixman xorg-server-common libunwind dbus libgl xf86-input-libinput
libpciaccess libdrm libxshmfence) # FS#52949
# see ../xorg.conf
provides=("X-ABI-VIDEODRV_VERSION=${X_ABI_VIDEODRV_VERSION}"
"X-ABI-XINPUT_VERSION=${X_ABI_XINPUT_VERSION}"
"X-ABI-EXTENSION_VERSION=${X_ABI_EXTENSION_VERSION}"
'x-server')
conflicts=('nvidia-utils<=331.20' 'glamor-egl' 'xf86-video-modesetting')
replaces=('glamor-egl' 'xf86-video-modesetting')
install=xorg-server.install
cd "${pkgbase}-${pkgver}"
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"
#TODO still needed? (sb:20170409)
install -m644 "${srcdir}/10-quirks.conf" "${pkgdir}/usr/share/X11/xorg.conf.d/"
rm -rf "${pkgdir}/var"
......@@ -153,15 +144,12 @@ package_xorg-server() {
rm -rf "${pkgdir}/usr/lib/pkgconfig"
rm -rf "${pkgdir}/usr/include"
rm -rf "${pkgdir}/usr/share/aclocal"
# this is now part of xorg-input-evdev
rm -rf "${pkgdir}/usr/share/X11/xorg.conf.d/10-evdev.conf"
}
package_xorg-server-xephyr() {
pkgdesc="A nested X server that runs as an X application"
depends=(libxfont libgl libepoxy libgcrypt 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)
cd "${pkgbase}-${pkgver}/hw/kdrive"
make DESTDIR="${pkgdir}" install
......@@ -172,7 +160,7 @@ package_xorg-server-xephyr() {
package_xorg-server-xvfb() {
pkgdesc="Virtual framebuffer X server"
depends=(libxfont libxdmcp libxau libgcrypt pixman xorg-server-common xorg-xauth libgl)
depends=(libxfont2 libunwind libsystemd pixman xorg-server-common xorg-xauth libgl)
cd "${pkgbase}-${pkgver}/hw/vfb"
make DESTDIR="${pkgdir}" install
......@@ -186,7 +174,7 @@ package_xorg-server-xvfb() {
package_xorg-server-xnest() {
pkgdesc="A nested X server that runs as an X application"
depends=(libxfont libxext libgcrypt pixman xorg-server-common systemd)
depends=(libxfont2 libxext libunwind pixman xorg-server-common libsystemd)
cd "${pkgbase}-${pkgver}/hw/xnest"
make DESTDIR="${pkgdir}" install
......@@ -197,7 +185,7 @@ package_xorg-server-xnest() {
package_xorg-server-xdmx() {
pkgdesc="Distributed Multihead X Server and utilities"
depends=(libxfont libxi libgcrypt libxaw libxrender libdmx libxfixes pixman xorg-server-common)
depends=(libxfont2 libxi libxaw libxrender libdmx libxfixes libunwind pixman xorg-server-common)
cd "${pkgbase}-${pkgver}/hw/dmx"
make DESTDIR="${pkgdir}" install
......@@ -208,7 +196,7 @@ package_xorg-server-xdmx() {
package_xorg-server-xwayland() {
pkgdesc="run X clients under wayland"
depends=(libxfont libepoxy libgl pixman wayland xorg-server-common)
depends=(libxfont2 libepoxy libunwind libsystemd libgl pixman xorg-server-common)
cd "${pkgbase}-${pkgver}/hw/xwayland"
make DESTDIR="${pkgdir}" install
......@@ -220,7 +208,7 @@ package_xorg-server-xwayland() {
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
"xproto>=7.0.31" randrproto renderproto xextproto inputproto kbproto
fontsproto pixman videoproto xf86driproto glproto
mesa dri2proto dri3proto xineramaproto libpciaccess
resourceproto scrnsaverproto presentproto
......
diff -Nur xorg-server-1.11.99.902.orig/hw/xfree86/common/xf86pciBus.c xorg-server-1.11.99.902/hw/xfree86/common/xf86pciBus.c
--- xorg-server-1.11.99.902.orig/hw/xfree86/common/xf86pciBus.c 2012-02-10 10:10:37.583014924 +0000
+++ xorg-server-1.11.99.902/hw/xfree86/common/xf86pciBus.c 2012-02-10 11:16:07.148971317 +0000
@@ -1144,7 +1144,23 @@
int idx = 0;
#ifdef __linux__
- driverList[idx++] = "nouveau";
+ switch (dev->device_id)
+ {
+ /* NV1 */
+ case 0x0008:
+ case 0x0009:
+ driverList[idx++] = "vesa";
+ break;
+ /* NV3 */
+ case 0x0018:
+ case 0x0019:
+ driverList[idx++] = "nouveau";
+ break;
+ default:
+ driverList[idx++] = "nouveau";
+ driverList[idx++] = "nvidia";