diff options
-rw-r--r-- | .SRCINFO | 16 | ||||
-rw-r--r-- | 0001-dix-Add-unaccelerated-valuators-to-the-ValuatorMask.patch | 210 | ||||
-rw-r--r-- | 0002-dix-hook-up-the-unaccelerated-valuator-masks.patch | 134 | ||||
-rw-r--r-- | PKGBUILD | 13 |
4 files changed, 9 insertions, 364 deletions
@@ -1,6 +1,6 @@ pkgbase = xorg-server-dev - pkgver = 1.17.2 - pkgrel = 4 + pkgver = 1.17.99.901 + pkgrel = 1 url = http://xorg.freedesktop.org arch = i686 arch = x86_64 @@ -52,23 +52,19 @@ pkgbase = xorg-server-dev makedepends = dri3proto makedepends = libxshmfence makedepends = libunwind - source = http://xorg.freedesktop.org/releases/individual/xserver/xorg-server-1.17.2.tar.bz2 - source = http://xorg.freedesktop.org/releases/individual/xserver/xorg-server-1.17.2.tar.bz2.sig + source = http://xorg.freedesktop.org/releases/individual/xserver/xorg-server-1.17.99.901.tar.bz2 + source = http://xorg.freedesktop.org/releases/individual/xserver/xorg-server-1.17.99.901.tar.bz2.sig source = nvidia-drm-outputclass.conf source = xvfb-run source = xvfb-run.1 - source = 0001-dix-Add-unaccelerated-valuators-to-the-ValuatorMask.patch - source = 0002-dix-hook-up-the-unaccelerated-valuator-masks.patch source = 0001-systemd-logind-do-not-rely-on-directed-signals.patch source = 0001-glamor-make-current-in-prepare-paths.patch source = 0001-os-make-sure-the-clientsWritable-fd_set-is-initializ.patch - sha256sums = f61120612728f2c5034671d0ca3e2273438c60aba93b3dda4a8aa40e6a257993 + sha256sums = d9efaf191f9dd4e84771de507ac00571d2a2f43bfae589fbf1b05706f83bb280 sha256sums = SKIP sha256sums = af1c3d2ea5de7f6a6b5f7c60951a189a4749d1495e5462f3157ae7ac8fe1dc56 sha256sums = ff0156309470fc1d378fd2e104338020a884295e285972cc88e250e031cc35b9 sha256sums = 2460adccd3362fefd4cdc5f1c70f332d7b578091fb9167bf88b5f91265bbd776 - sha256sums = 3dc795002b8763a7d29db94f0af200131da9ce5ffc233bfd8916060f83a8fad7 - sha256sums = 416a1422eed71efcebb1d893de74e7f27e408323a56c4df003db37f5673b3f96 sha256sums = 3d7edab3a54d647e7d924b29d29f91b50212f308fcb1853a5aacd3181f58276c sha256sums = 793579adbef979088cadc0fd9ce0c24df0455a6936d3de7a9356df537b7d9a81 sha256sums = efc05c06af2bfdf588ef7a60b44c1d180fb353b1bffdfdf96415d63690b6e394 @@ -90,7 +86,7 @@ pkgname = xorg-server-dev depends = libxshmfence depends = libgl provides = - provides = X-ABI-_VERSION=grep: xorg-server-1.17.2/hw/xfree86/common/xf86Module.h: No such file or directory + provides = X-ABI-_VERSION=grep: xorg-server-1.17.99.901/hw/xfree86/common/xf86Module.h: No such file or directory provides = x-server provides = xorg-server conflicts = nvidia-utils<=331.20 diff --git a/0001-dix-Add-unaccelerated-valuators-to-the-ValuatorMask.patch b/0001-dix-Add-unaccelerated-valuators-to-the-ValuatorMask.patch deleted file mode 100644 index 86744f1402ea..000000000000 --- a/0001-dix-Add-unaccelerated-valuators-to-the-ValuatorMask.patch +++ /dev/null @@ -1,210 +0,0 @@ -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 - diff --git a/0002-dix-hook-up-the-unaccelerated-valuator-masks.patch b/0002-dix-hook-up-the-unaccelerated-valuator-masks.patch deleted file mode 100644 index 6b8b1e5b5d73..000000000000 --- a/0002-dix-hook-up-the-unaccelerated-valuator-masks.patch +++ /dev/null @@ -1,134 +0,0 @@ -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 - @@ -3,8 +3,8 @@ _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.2 # http://lists.x.org/archives/xorg/2015-June/057436.html -pkgrel=4 +pkgver=1.17.99.901 # 1.18.0 RC1: http://lists.x.org/archives/xorg/2015-September/057571.html +pkgrel=1 arch=('i686' 'x86_64') license=('custom') url="http://xorg.freedesktop.org" @@ -19,30 +19,23 @@ source=(${url}/releases/individual/xserver/${_pkgbase}-${pkgver}.tar.bz2{,.sig} nvidia-drm-outputclass.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 0001-glamor-make-current-in-prepare-paths.patch 0001-os-make-sure-the-clientsWritable-fd_set-is-initializ.patch) validpgpkeys=('7B27A3F1A6E18CD9588B4AE8310180050905E40C' 'C383B778255613DFDB409D91DB221A6900000011' 'DD38563A8A8224537D1F90E45B8A2D50A0ECD0D3') -sha256sums=('f61120612728f2c5034671d0ca3e2273438c60aba93b3dda4a8aa40e6a257993' +sha256sums=('d9efaf191f9dd4e84771de507ac00571d2a2f43bfae589fbf1b05706f83bb280' 'SKIP' 'af1c3d2ea5de7f6a6b5f7c60951a189a4749d1495e5462f3157ae7ac8fe1dc56' 'ff0156309470fc1d378fd2e104338020a884295e285972cc88e250e031cc35b9' '2460adccd3362fefd4cdc5f1c70f332d7b578091fb9167bf88b5f91265bbd776' - '3dc795002b8763a7d29db94f0af200131da9ce5ffc233bfd8916060f83a8fad7' - '416a1422eed71efcebb1d893de74e7f27e408323a56c4df003db37f5673b3f96' '3d7edab3a54d647e7d924b29d29f91b50212f308fcb1853a5aacd3181f58276c' '793579adbef979088cadc0fd9ce0c24df0455a6936d3de7a9356df537b7d9a81' 'efc05c06af2bfdf588ef7a60b44c1d180fb353b1bffdfdf96415d63690b6e394') prepare() { cd "${_pkgbase}-${pkgver}" - msg2 "fix 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 msg2 "fix VT switching with kdbus; from upstream" patch -Np1 -i ../0001-systemd-logind-do-not-rely-on-directed-signals.patch |