Update to 1.16.0

This commit is contained in:
Hans de Goede 2014-07-28 12:07:38 +02:00
parent c581e4ba0c
commit 39576a37e5
6 changed files with 6 additions and 401 deletions

View File

@ -1,181 +0,0 @@
From 4d672dd0f41e4bd8f5e67936d7e14409ba80d54e Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
Date: Wed, 2 Jul 2014 20:55:53 +0200
Subject: [PATCH] headers: Fix build errors with latest glibc
include/os.h defines protyptes for various non ansi-c str functions, such
as str[n]casecmp and strndup. The definition of the prototypes is guarded
by #ifndef HAVE_STRFOO, but HAVE_STRFOO is defined by xorg-server.h which
is not included by all users of os.h. E.g. glamor.h does not and should not
include xorg-server.h
This is a problem since the these prototype declarations clash with the libc
declarations when using the latest glibc:
In file included from /usr/include/xorg/misc.h:115:0,
from /usr/include/xorg/screenint.h:50,
from /usr/include/xorg/scrnintstr.h:50,
from /usr/include/xorg/glamor.h:32,
from conftest.c:61:
/usr/include/xorg/os.h:579:2: error: expected identifier or '(' before '__extension__'
strndup(const char *str, size_t n);
To fix this, this commit moves the HAVE_STRFOO defines to their own
(generated) header called os-strfeatures.h, and unconditionally includes this
header from os.h .
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
configure.ac | 2 ++
include/Makefile.am | 2 +-
include/dix-config.h.in | 18 ------------------
include/os-strfeatures.h.in | 33 +++++++++++++++++++++++++++++++++
include/os.h | 1 +
include/xorg-server.h.in | 18 ------------------
6 files changed, 37 insertions(+), 37 deletions(-)
create mode 100644 include/os-strfeatures.h.in
diff --git a/configure.ac b/configure.ac
index 2daa6be..05ae8e6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -72,6 +72,8 @@ AC_CONFIG_HEADERS(include/kdrive-config.h)
dnl version-config.h covers the version numbers so they can be bumped without
dnl forcing an entire recompile.x
AC_CONFIG_HEADERS(include/version-config.h)
+dnl os-strfeatures.h covers HAVE_STRFOO for non ansi-c string functions
+AC_CONFIG_HEADERS(include/os-strfeatures.h)
AM_PROG_AS
AC_PROG_LN_S
diff --git a/include/Makefile.am b/include/Makefile.am
index 6578038..b2ee27b 100644
--- a/include/Makefile.am
+++ b/include/Makefile.am
@@ -62,7 +62,7 @@ sdk_HEADERS = \
xkbrules.h \
xserver-properties.h
-nodist_sdk_HEADERS = xorg-server.h
+nodist_sdk_HEADERS = xorg-server.h os-strfeatures.h
endif
AM_CFLAGS = $(DIX_CFLAGS)
diff --git a/include/dix-config.h.in b/include/dix-config.h.in
index f980a3d..f055b2c 100644
--- a/include/dix-config.h.in
+++ b/include/dix-config.h.in
@@ -175,30 +175,12 @@
/* Define to 1 if you have the <stdlib.h> header file. */
#undef HAVE_STDLIB_H
-/* Define to 1 if you have the `strcasecmp' function. */
-#undef HAVE_STRCASECMP
-
-/* Define to 1 if you have the `strcasestr' function. */
-#undef HAVE_STRCASESTR
-
-/* Define to 1 if you have the `strncasecmp' function. */
-#undef HAVE_STRNCASECMP
-
-/* Define to 1 if you have the `strlcat' function. */
-#undef HAVE_STRLCAT
-
-/* Define to 1 if you have the `strlcpy' function. */
-#undef HAVE_STRLCPY
-
/* Define to 1 if you have the <strings.h> header file. */
#undef HAVE_STRINGS_H
/* Define to 1 if you have the <string.h> header file. */
#undef HAVE_STRING_H
-/* Define to 1 if you have the `strndup' function. */
-#undef HAVE_STRNDUP
-
/* Define to 1 if libsystemd-daemon is available */
#undef HAVE_SYSTEMD_DAEMON
diff --git a/include/os-strfeatures.h.in b/include/os-strfeatures.h.in
new file mode 100644
index 0000000..88c3b30
--- /dev/null
+++ b/include/os-strfeatures.h.in
@@ -0,0 +1,33 @@
+/* os-strfeatures.h.in -*- c -*-
+ *
+ * This file is the template file for the os-strfeatures.h file which gets
+ * installed as part of the SDK. The #defines in this file are HAVE_STRFOO
+ * defines which control whether os.h declares protype for non ansi-c
+ * string functions suchs as str[n]casecmp and strndup,
+ *
+ * Note this file is not generated by autoheader, so it needs to by synced
+ * manually with changes to configure.in where necessary.
+ */
+
+#ifndef OS_STRFEATURES_H
+#define OS_STRFEATURES_H
+
+/* Define to 1 if you have the `strcasecmp' function. */
+#undef HAVE_STRCASECMP
+
+/* Define to 1 if you have the `strncasecmp' function. */
+#undef HAVE_STRNCASECMP
+
+/* Define to 1 if you have the `strcasestr' function. */
+#undef HAVE_STRCASESTR
+
+/* Define to 1 if you have the `strlcat' function. */
+#undef HAVE_STRLCAT
+
+/* Define to 1 if you have the `strlcpy' function. */
+#undef HAVE_STRLCPY
+
+/* Define to 1 if you have the `strndup' function. */
+#undef HAVE_STRNDUP
+
+#endif /* OS_STRFEATURES_H */
diff --git a/include/os.h b/include/os.h
index d26e399..54819f9 100644
--- a/include/os.h
+++ b/include/os.h
@@ -48,6 +48,7 @@ SOFTWARE.
#define OS_H
#include "misc.h"
+#include "os-strfeatures.h"
#include <stdarg.h>
#include <stdint.h>
#include <string.h>
diff --git a/include/xorg-server.h.in b/include/xorg-server.h.in
index 8bf9d38..9daf0fa 100644
--- a/include/xorg-server.h.in
+++ b/include/xorg-server.h.in
@@ -43,24 +43,6 @@
/* Define to 1 if you have the `ffs' function. */
#undef HAVE_FFS
-/* Define to 1 if you have the `strcasecmp' function. */
-#undef HAVE_STRCASECMP
-
-/* Define to 1 if you have the `strcasestr' function. */
-#undef HAVE_STRCASESTR
-
-/* Define to 1 if you have the `strlcat' function. */
-#undef HAVE_STRLCAT
-
-/* Define to 1 if you have the `strlcpy' function. */
-#undef HAVE_STRLCPY
-
-/* Define to 1 if you have the `strncasecmp' function. */
-#undef HAVE_STRNCASECMP
-
-/* Define to 1 if you have the `strndup' function. */
-#undef HAVE_STRNDUP
-
/* Support IPv6 for TCP connections */
#undef IPv6
--
2.0.0

View File

@ -1,42 +0,0 @@
From 142cebe39f216b3e39353e173b29f47b4fc295fd Mon Sep 17 00:00:00 2001
From: Peter Hutterer <peter.hutterer@who-t.net>
Date: Thu, 10 Jul 2014 10:39:50 +1000
Subject: [PATCH] xfree86: don't force the screensaver off on DPMS unblank,
merely suggest it
Having dependencies between DPMS and the screensaver is subject to further
arguments, but in this particular case using SCREENSAVER_FORCER is
detrimental. SCREENSAVER_FORCER(ScreenSaverReset) resets the idle time for all
devices on DPMS unblank.
It prevents at least one use-case that GNOME tries to implement:
GNOME displays a notification before suspending. If the display is
currently blanked, GNOME lights it up to display the message. With the
original in place DPMS unblank also resets the screen saver, thus
restarting the timeout.
Switch this to a more suggestive SCREENSAVER_OFF(ScreenSaverReset). This keeps
the symmetry in blanking mode (DPMS and screensaver turn each other on/off as
expected) but does not reset the idle time on the devices.
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
---
hw/xfree86/common/xf86DPMS.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/xfree86/common/xf86DPMS.c b/hw/xfree86/common/xf86DPMS.c
index 14d1f45..2b5a3ed 100644
--- a/hw/xfree86/common/xf86DPMS.c
+++ b/hw/xfree86/common/xf86DPMS.c
@@ -166,7 +166,7 @@ DPMSSet(ClientPtr client, int level)
return rc;
}
} else if (!xf86IsUnblank(screenIsSaved)) {
- rc = dixSaveScreens(client, SCREEN_SAVER_FORCER, ScreenSaverReset);
+ rc = dixSaveScreens(client, SCREEN_SAVER_OFF, ScreenSaverReset);
if (rc != Success)
return rc;
}
--
1.9.3

View File

@ -1,133 +0,0 @@
From 5a16e22115ad88bf9abe91c43c203385e2ea41bb Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
Date: Tue, 8 Jul 2014 11:10:39 +0200
Subject: [PATCH 2/2] Revert "dix: fix up coordinate scaling when external
monitors are present"
This reverts commit d90b5f83010248be65b2039b0b2d0b9e6a4e93cf.
---
dix/getevents.c | 80 +++++++++++++++------------------------------------------
1 file changed, 20 insertions(+), 60 deletions(-)
diff --git a/dix/getevents.c b/dix/getevents.c
index d68fa96..ffa89fa 100644
--- a/dix/getevents.c
+++ b/dix/getevents.c
@@ -770,65 +770,27 @@ add_to_scroll_valuator(DeviceIntPtr dev, ValuatorMask *mask, int valuator, doubl
}
-/* FIXME: relative events from devices with absolute axis ranges is
- fundamentally broken. We map the device coordinate range into the screen
- range, but don't really account for device resolution in that.
-
- what we do here is a hack to make touchpads usable. for a given relative
- motion vector in device coordinates:
- 1. calculate physical movement on the device in metres
- 2. calculate pixel vector that is the same physical movement on the
- screen (times some magic number to provide sensible base speed)
- 3. calculate what percentage this vector is of the current screen
- width/height
- 4. calculate equivalent vector in % on the device's min/max axis range
- 5. Use that device vector as the actual motion vector
-
- e.g. 10/50mm on the device, 10/50mm on the screen are 30/100 pixels,
- 30/100 pixels are 1/3% of the width, 1/3% of the device is a vector of
- 20/80 -> use 20/80 as dx/dy.
-
- dx/dy is then applied to the current position in device coordinates,
- mapped to screen coordinates and thus the movement on the screen reflects
- the motion direction on the device.
- */
static void
scale_for_device_resolution(DeviceIntPtr dev, ValuatorMask *mask)
{
- double x, y;
+ double y;
ValuatorClassPtr v = dev->valuator;
int xrange = v->axes[0].max_value - v->axes[0].min_value + 1;
int yrange = v->axes[1].max_value - v->axes[1].min_value + 1;
- /* Assume 100 units/m for devices without resolution */
- int xres = 100000, yres = 100000;
-
- /* If we have multiple screens with different dpi, it gets complicated:
- we have to map which screen we're on and then take the dpi of that
- screen to be somewhat accurate. */
- const ScreenPtr s = screenInfo.screens[0];
- const double screen_res = 1000.0 * s->width/s->mmWidth; /* units/m */
+ double screen_ratio = 1.0 * screenInfo.width/screenInfo.height;
+ double device_ratio = 1.0 * xrange/yrange;
+ double resolution_ratio = 1.0;
+ double ratio;
- /* some magic multiplier, so unaccelerated movement of x mm on the
- device reflects x * magic mm on the screen */
- const double magic = 4;
+ if (!valuator_mask_fetch_double(mask, 1, &y))
+ return;
- if (v->axes[0].resolution != 0 && v->axes[1].resolution != 0) {
- xres = v->axes[0].resolution;
- yres = v->axes[1].resolution;
- }
+ if (v->axes[0].resolution != 0 && v->axes[1].resolution != 0)
+ resolution_ratio = 1.0 * v->axes[0].resolution/v->axes[1].resolution;
- if (valuator_mask_isset(mask, 0)) {
- x = valuator_mask_get_double(mask, 0);
- x = magic * x/xres * screen_res/screenInfo.width * xrange;
- valuator_mask_set_double(mask, 0, x);
- }
-
- if (valuator_mask_isset(mask, 1)) {
- y = valuator_mask_get_double(mask, 1);
- y = magic * y/yres * screen_res/screenInfo.height * yrange;
- valuator_mask_set_double(mask, 1, y);
- }
+ ratio = device_ratio/resolution_ratio/screen_ratio;
+ valuator_mask_set_double(mask, 1, y / ratio);
}
/**
@@ -842,6 +804,15 @@ moveRelative(DeviceIntPtr dev, int flags, ValuatorMask *mask)
{
int i;
Bool clip_xy = IsMaster(dev) || !IsFloating(dev);
+ ValuatorClassPtr v = dev->valuator;
+
+ /* for abs devices in relative mode, we've just scaled wrong, since we
+ mapped the device's shape into the screen shape. Undo this. */
+ if ((flags & POINTER_ABSOLUTE) == 0 && v && v->numAxes > 1 &&
+ v->axes[0].min_value < v->axes[0].max_value &&
+ v->axes[1].min_value < v->axes[1].max_value) {
+ scale_for_device_resolution(dev, mask);
+ }
/* calc other axes, clip, drop back into valuators */
for (i = 0; i < valuator_mask_size(mask); i++) {
@@ -1470,21 +1441,10 @@ fill_pointer_events(InternalEvent *events, DeviceIntPtr pDev, int type,
set_raw_valuators(raw, &mask, raw->valuators.data);
}
else {
- ValuatorClassPtr v = pDev->valuator;
-
transformRelative(pDev, &mask);
- /* for abs devices in relative mode, we've just scaled wrong, since we
- mapped the device's shape into the screen shape. Undo this. */
- if (v && v->numAxes > 1 &&
- v->axes[0].min_value < v->axes[0].max_value &&
- v->axes[1].min_value < v->axes[1].max_value) {
- scale_for_device_resolution(pDev, &mask);
- }
-
if (flags & POINTER_ACCELERATE)
accelPointer(pDev, &mask, ms);
-
if ((flags & POINTER_NORAW) == 0 && raw)
set_raw_valuators(raw, &mask, raw->valuators.data);
--
2.0.0

View File

@ -1,29 +0,0 @@
From 3e4e029cca08e97ede67d19020476cd460eec00f Mon Sep 17 00:00:00 2001
From: Hans de Goede <hdegoede@redhat.com>
Date: Fri, 11 Jul 2014 09:49:13 +0200
Subject: [PATCH 3/3] Fix ODEV_ATTRIB_DRIVER overlapping with ODEV_ATTRIB_FD
Looks like the value of ODEV_ATTRIB_DRIVER was not updated when the patch
adding it got rebased on top of a newer server version.
Signed-off-by: Hans de Goede <hdegoede@redhat.com>
---
include/hotplug.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/include/hotplug.h b/include/hotplug.h
index c4268a0..b2c0d78 100644
--- a/include/hotplug.h
+++ b/include/hotplug.h
@@ -88,7 +88,7 @@ config_odev_free_attributes(struct OdevAttributes *attribs);
/* Minor number of the device node pointed to by ODEV_ATTRIB_PATH */
#define ODEV_ATTRIB_MINOR 6
/* kernel driver name */
-#define ODEV_ATTRIB_DRIVER 4
+#define ODEV_ATTRIB_DRIVER 7
typedef void (*config_odev_probe_proc_ptr)(struct OdevAttributes *attribs);
void config_odev_probe(config_odev_probe_proc_ptr probe_callback);
--
2.0.0

View File

@ -1 +1 @@
6840767d8306921b687d05437a952753 xorg-server-1.15.99.904.tar.bz2
8a9ff6ee9907360f09b5bdabb8089502 xorg-server-1.16.0.tar.bz2

View File

@ -41,8 +41,8 @@
Summary: X.Org X11 X server
Name: xorg-x11-server
Version: 1.15.99.904
Release: 4%{?gitdate:.%{gitdate}}%{dist}
Version: 1.16.0
Release: 1%{?gitdate:.%{gitdate}}%{dist}
URL: http://www.x.org
License: MIT
Group: User Interface/X
@ -74,15 +74,6 @@ Source31: xserver-sdk-abi-requires.git
# maintainer convenience script
Source40: driver-abi-rebuild.sh
# Submitted upstream
Patch0001: 0001-headers-Fix-build-errors-with-latest-glibc.patch
# Revert of a touchpad motion scaling fix with known issues (rhbz#1104789)
Patch0002: 0002-Revert-dix-fix-up-coordinate-scaling-when-external-m.patch
# Submitted upstream
Patch0003: 0003-Fix-ODEV_ATTRIB_DRIVER-overlapping-with-ODEV_ATTRIB_.patch
# Trivial things to never merge upstream ever:
# This really could be done prettier.
Patch5002: xserver-1.4.99-ssh-isnt-local.patch
@ -108,10 +99,6 @@ Patch10000: 0001-Fedora-hack-Make-the-suid-root-wrapper-always-start-.patch
# submitted http://lists.x.org/archives/xorg-devel/2014-July/042936.html
Patch10200: 0001-xwayland-Snap-damage-reports-to-the-bounding-box.patch
# https://bugzilla.gnome.org/show_bug.cgi?id=731241
# submitted: http://patchwork.freedesktop.org/patch/29412/
Patch10201: 0001-xfree86-don-t-force-the-screensaver-off-on-DPMS-unbl.patch
%global moduledir %{_libdir}/xorg/modules
%global drimoduledir %{_libdir}/dri
%global sdkdir %{_includedir}/xorg
@ -646,6 +633,9 @@ find %{inst_srcdir}/hw/xfree86 -name \*.c -delete
%changelog
* Mon Jul 28 2014 Hans de Goede <hdegoede@redhat.com> - 1.16.0-1
- Update to 1.16.0
* Thu Jul 17 2014 Adam Jackson <ajax@redhat.com> 1.15.99.904-4
- Add Obsoletes for video drivers dropped in F21+