Update to xorg-server 1.15.2. bug fixes.
This commit is contained in:
parent
f78c783403
commit
4f333b168a
@ -1,3 +1,299 @@
|
|||||||
|
commit a0e938baa3ab51c8f42d62522da15d1fd56d7d1c
|
||||||
|
Author: Peter Hutterer <peter.hutterer@who-t.net>
|
||||||
|
Date: Fri Jun 27 10:57:48 2014 +1000
|
||||||
|
|
||||||
|
Bump version to 1.15.2
|
||||||
|
|
||||||
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||||
|
|
||||||
|
commit 2abbf56493bb8636ae1ef6de2cbb412ac79c717f
|
||||||
|
Author: Steven McDonald <steven@steven-mcdonald.id.au>
|
||||||
|
Date: Sun May 18 13:42:08 2014 +0200
|
||||||
|
|
||||||
|
Xi: block SIGIOs while copying device classes around
|
||||||
|
|
||||||
|
I've been seeing sporadic (anywhere from once every few days to 3-4
|
||||||
|
times a day) crashes and freezes in X. The problematic behaviour isn't
|
||||||
|
always the same, but I chose a particular incident to debug, and found
|
||||||
|
that X was segfaulting in updateMotionHistory, on line 575 of
|
||||||
|
dix/getevents.c.
|
||||||
|
|
||||||
|
After some further investigation, I found that the bug was being
|
||||||
|
triggered when a SIGIO was received in DeepCopyPointerClasses, between
|
||||||
|
the AllocValuatorClass call (line 540) and updating the to->valuator
|
||||||
|
pointer (line 545). AllocValuatorClass calls realloc() on to->valuator,
|
||||||
|
so between these lines, it's not guaranteed to point to allocated
|
||||||
|
memory.
|
||||||
|
|
||||||
|
It seems the SIGIO handler is calling updateMotionHistory, which is
|
||||||
|
reading the memory pointed to by to->valuator and getting a wrong value
|
||||||
|
for last_motion, which updates buff to point to wildly the wrong place
|
||||||
|
and thus generates a segfault when a memcpy() is done into buff.
|
||||||
|
|
||||||
|
I am attaching a patch which I've been running on that machine for the
|
||||||
|
past three days, and haven't yet observed any more crashing or freezing
|
||||||
|
behaviour. The patch simply calls OsBlockSIGIO while
|
||||||
|
DeepCopyDeviceClasses is in progress, as the state of the X server's
|
||||||
|
device data structures is not guaranteed to be in a consistent state
|
||||||
|
during that time.
|
||||||
|
|
||||||
|
Debian bug#744303 <https://bugs.debian.org/744303>
|
||||||
|
|
||||||
|
Signed-off-by: Julien Cristau <jcristau@debian.org>
|
||||||
|
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||||
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||||
|
(cherry picked from commit d7a2df0a7499864cb005b098b79c1bdf884f6600)
|
||||||
|
|
||||||
|
commit 2ceb44827f86d9f5f995448c3cf603ee9459fef3
|
||||||
|
Author: Robert Ancell <robert.ancell@canonical.com>
|
||||||
|
Date: Thu May 22 10:43:52 2014 +1200
|
||||||
|
|
||||||
|
Fix overflow checking extension versions
|
||||||
|
|
||||||
|
The easiest way to check for the version of an extension is to send the maximum
|
||||||
|
possible version numbers in the QueryVersion request. The X server overflows on
|
||||||
|
these as it assumes you will send a reasonable version number.
|
||||||
|
|
||||||
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||||
|
Reviewed-by: Keith Packard <keithp@keithp.com>
|
||||||
|
(cherry picked from commit 548fc937b22d4dfe7f96e0bd77522261603a2c2f)
|
||||||
|
|
||||||
|
commit 416ea95d8018875ed77a46634e5ab4d8b6e94dec
|
||||||
|
Author: Peter Hutterer <peter.hutterer@who-t.net>
|
||||||
|
Date: Sat May 24 20:05:53 2014 +1000
|
||||||
|
|
||||||
|
man: drop specific mention of DontZap in -retro (#71113)
|
||||||
|
|
||||||
|
DontZap off is the default anyway, don't mention it specifically to avoid
|
||||||
|
confusion
|
||||||
|
|
||||||
|
X.Org Bug 71113 <http://bugs.freedesktop.org/show_bug.cgi?id=71113>
|
||||||
|
|
||||||
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||||
|
(cherry picked from commit cfaf2abbac3f01e57d00845d8908bf01559263f9)
|
||||||
|
|
||||||
|
commit 18f3471a05a7fba19713c788ed92e5e2ea7a4452
|
||||||
|
Author: Peter Hutterer <peter.hutterer@who-t.net>
|
||||||
|
Date: Sat May 24 20:02:56 2014 +1000
|
||||||
|
|
||||||
|
xfree86: fix wrong DontZap documentation (#71113)
|
||||||
|
|
||||||
|
X.Org Bug 71113 <http://bugs.freedesktop.org/show_bug.cgi?id=71113>
|
||||||
|
|
||||||
|
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
|
||||||
|
(cherry picked from commit e48a132b6d187f355abd7021be47edde972e7091)
|
||||||
|
|
||||||
|
commit 57a042682029d009094a59914d6044b57ebf209b
|
||||||
|
Author: Matt Dew <marcoz@osource.org>
|
||||||
|
Date: Sun Jun 22 22:11:48 2014 -0600
|
||||||
|
|
||||||
|
Bump version # to 1.15.1.901
|
||||||
|
|
||||||
|
commit 268eb961c9c58fc7cc26e514661b5f8304c1c08f
|
||||||
|
Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
|
||||||
|
Date: Sat May 31 17:45:02 2014 -0700
|
||||||
|
|
||||||
|
XQuartz: Update logic to account for title bar on every display in Mavericks
|
||||||
|
|
||||||
|
<rdar://problem/14205847>
|
||||||
|
http://xquartz.macosforge.org/trac/ticket/832
|
||||||
|
|
||||||
|
Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
|
||||||
|
(cherry picked from commit 1c10b37380d228b35db8a8616a6312ac54f5e59b)
|
||||||
|
|
||||||
|
commit 624461797e05da711212329a5c7677df2544fb21
|
||||||
|
Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
|
||||||
|
Date: Sat May 31 17:22:51 2014 -0700
|
||||||
|
|
||||||
|
XQuartz: Dead code removal (ENABLE_DEBUG_LOG)
|
||||||
|
|
||||||
|
Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
|
||||||
|
(cherry picked from commit ad0ff649c68b18c4b95b078c2d1d1e7de71a7c6f)
|
||||||
|
|
||||||
|
commit 77ab9ca61717054b1c8c09594b01f04c3f4681f3
|
||||||
|
Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
|
||||||
|
Date: Sat May 31 13:04:43 2014 -0700
|
||||||
|
|
||||||
|
XQuartz: Bump to 2.7.7
|
||||||
|
|
||||||
|
Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
|
||||||
|
(cherry picked from commit e281288d5afedb154f52c31f70a350a013ecfb06)
|
||||||
|
|
||||||
|
commit 6e31a3e4b51b89180ddbcdb40308e4192a64301f
|
||||||
|
Author: Peter Harris <pharris@opentext.com>
|
||||||
|
Date: Fri Apr 11 17:44:59 2014 -0400
|
||||||
|
|
||||||
|
fb: Fix origin of source picture in fbGlyphs
|
||||||
|
|
||||||
|
If a source picture doesn't repeat and a mask format is specified, the
|
||||||
|
incorrect calulation of the origin of the glyphs caused the glyphs to
|
||||||
|
not be drawn at all.
|
||||||
|
|
||||||
|
Noticed when running gtk-demo from RHEL 6.5 and selecting "Rotated
|
||||||
|
Text".
|
||||||
|
|
||||||
|
Signed-off-by: Peter Harris <pharris@opentext.com>
|
||||||
|
Reviewed-by: Keith Packard <keithp@keithp.com>
|
||||||
|
Signed-off-by: Keith Packard <keithp@keithp.com>
|
||||||
|
|
||||||
|
/* Test for this bug
|
||||||
|
|
||||||
|
cc -std=c99 -o glyph glyph.c `pkg-config --cflags --libs xcb-render`
|
||||||
|
|
||||||
|
*/
|
||||||
|
|
||||||
|
// 16 x 16 pictfmt_a8 "glyph"
|
||||||
|
static const char glyph[] = {
|
||||||
|
0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff,
|
||||||
|
0, 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0,
|
||||||
|
0, 0, 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0, 0,
|
||||||
|
0, 0, 0, 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0xff, 0, 0, 0, 0, 0, 0, 0xff, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0xff, 0, 0, 0, 0, 0xff, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0xff, 0, 0, 0xff, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0, 0xff, 0, 0, 0xff, 0, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0, 0xff, 0, 0, 0, 0, 0xff, 0, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0, 0xff, 0, 0, 0, 0, 0, 0, 0xff, 0, 0, 0, 0,
|
||||||
|
0, 0, 0, 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0, 0, 0,
|
||||||
|
0, 0, 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0, 0,
|
||||||
|
0, 0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0,
|
||||||
|
0xff, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff,
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct {
|
||||||
|
uint8_t len;
|
||||||
|
uint8_t pad[3];
|
||||||
|
uint16_t deltax, deltay;
|
||||||
|
uint8_t glyph;
|
||||||
|
uint8_t pad2[3];
|
||||||
|
} elt = { len:1, glyph:1, deltax:WIN_SIZE/2 - GLYPH_SIZE/2, deltay:WIN_SIZE/2 - GLYPH_SIZE/2 };
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
int screen;
|
||||||
|
xcb_connection_t *c = xcb_connect(NULL, &screen);
|
||||||
|
if (!c || xcb_connection_has_error(c)) {
|
||||||
|
fprintf(stderr, "Cannot open default display \"%s\"\n", getenv("DISPLAY"));
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Find root window and depth
|
||||||
|
const xcb_setup_t *setup = xcb_get_setup(c);
|
||||||
|
if (screen >= setup->roots_len)
|
||||||
|
screen = 0;
|
||||||
|
xcb_screen_iterator_t si = xcb_setup_roots_iterator(setup);
|
||||||
|
for (int i=0; i < screen; i++)
|
||||||
|
xcb_screen_next(&si);
|
||||||
|
xcb_window_t root = si.data->root;
|
||||||
|
uint8_t depth = si.data->root_depth;
|
||||||
|
xcb_visualid_t visual = si.data->root_visual;
|
||||||
|
|
||||||
|
// Find picture formats
|
||||||
|
xcb_render_query_pict_formats_reply_t *qpf;
|
||||||
|
qpf = xcb_render_query_pict_formats_reply(c, xcb_render_query_pict_formats(c), NULL);
|
||||||
|
if (!qpf) {
|
||||||
|
fprintf(stderr, "Cannot query RENDER picture formats\n");
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
xcb_render_pictformat_t fmt_a8 = 0;
|
||||||
|
xcb_render_pictforminfo_iterator_t pfi =
|
||||||
|
xcb_render_query_pict_formats_formats_iterator(qpf);
|
||||||
|
for (int i = 0; i < xcb_render_query_pict_formats_formats_length(qpf); i++) {
|
||||||
|
|
||||||
|
if (pfi.data->depth == 8 &&
|
||||||
|
pfi.data->type == XCB_RENDER_PICT_TYPE_DIRECT &&
|
||||||
|
pfi.data->direct.alpha_mask == 0xFF) {
|
||||||
|
fmt_a8 = pfi.data->id;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
xcb_render_pictforminfo_next(&pfi);
|
||||||
|
}
|
||||||
|
if (!fmt_a8) {
|
||||||
|
fprintf(stderr, "Cannot find a8 RENDER picture format\n");
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
xcb_render_pictformat_t fmt_visual = 0;
|
||||||
|
xcb_render_pictscreen_iterator_t psi =
|
||||||
|
xcb_render_query_pict_formats_screens_iterator(qpf);
|
||||||
|
for (int i = 0; i < xcb_render_query_pict_formats_screens_length(qpf); i++) {
|
||||||
|
xcb_render_pictdepth_iterator_t pdi =
|
||||||
|
xcb_render_pictscreen_depths_iterator(psi.data);
|
||||||
|
for (int j = 0; i < xcb_render_pictscreen_depths_length(psi.data); i++) {
|
||||||
|
xcb_render_pictvisual_iterator_t pvi =
|
||||||
|
xcb_render_pictdepth_visuals_iterator(pdi.data);
|
||||||
|
for (int k = 0; k < xcb_render_pictdepth_visuals_length(pdi.data); i++) {
|
||||||
|
if (pvi.data->visual == visual) {
|
||||||
|
fmt_visual = pvi.data->format;
|
||||||
|
goto found_visual;
|
||||||
|
}
|
||||||
|
xcb_render_pictvisual_next(&pvi);
|
||||||
|
}
|
||||||
|
xcb_render_pictdepth_next(&pdi);
|
||||||
|
}
|
||||||
|
xcb_render_pictscreen_next(&psi);
|
||||||
|
}
|
||||||
|
found_visual:
|
||||||
|
if (!fmt_visual) {
|
||||||
|
fprintf(stderr, "Cannot find visual RENDER picture format\n");
|
||||||
|
return EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
xcb_render_glyphset_t glyphset = xcb_generate_id(c);
|
||||||
|
xcb_render_create_glyph_set(c, glyphset, fmt_a8);
|
||||||
|
uint32_t glyph_ids[] = {1};
|
||||||
|
xcb_render_add_glyphs(c, glyphset, 1, glyph_ids,
|
||||||
|
&(xcb_render_glyphinfo_t){width:GLYPH_SIZE, height:GLYPH_SIZE}, sizeof(glyph), glyph);
|
||||||
|
|
||||||
|
// Create window, pixmap, and gc
|
||||||
|
xcb_window_t window = xcb_generate_id(c);
|
||||||
|
uint32_t list[] = { si.data->black_pixel, XCB_EVENT_MASK_EXPOSURE };
|
||||||
|
xcb_create_window(c, XCB_COPY_FROM_PARENT, window, root, 0, 0, WIN_SIZE, WIN_SIZE,
|
||||||
|
0, XCB_WINDOW_CLASS_INPUT_OUTPUT, XCB_COPY_FROM_PARENT,
|
||||||
|
XCB_CW_BACK_PIXEL | XCB_CW_EVENT_MASK, list);
|
||||||
|
xcb_map_window(c, window);
|
||||||
|
xcb_render_picture_t winpic = xcb_generate_id(c);
|
||||||
|
xcb_render_create_picture(c, winpic, window, fmt_visual, 0, NULL);
|
||||||
|
|
||||||
|
xcb_pixmap_t pixmap = xcb_generate_id(c);
|
||||||
|
xcb_create_pixmap(c, depth, pixmap, window, GLYPH_SIZE, GLYPH_SIZE);
|
||||||
|
xcb_render_picture_t pixpic = xcb_generate_id(c);
|
||||||
|
xcb_render_create_picture(c, pixpic, pixmap, fmt_visual, 0, NULL);
|
||||||
|
xcb_render_fill_rectangles(c, XCB_RENDER_PICT_OP_SRC, pixpic,
|
||||||
|
(xcb_render_color_t){green:0xFFFF, alpha:0xFFFF}, 1,
|
||||||
|
&(xcb_rectangle_t){width:GLYPH_SIZE, height:GLYPH_SIZE} );
|
||||||
|
|
||||||
|
xcb_flush(c);
|
||||||
|
for (xcb_generic_event_t *ev = xcb_wait_for_event(c); ev; ev = xcb_wait_for_event(c)) {
|
||||||
|
int type = ev->response_type;
|
||||||
|
free(ev);
|
||||||
|
if (type == XCB_EXPOSE) {
|
||||||
|
xcb_clear_area(c, 0, window, 0, 0, 0, 0);
|
||||||
|
xcb_render_composite_glyphs_8(c, XCB_RENDER_PICT_OP_SRC, pixpic, winpic, fmt_a8,
|
||||||
|
glyphset, 0, 0, sizeof(elt), (uint8_t *)&elt);
|
||||||
|
xcb_flush(c);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return EXIT_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
|
(cherry picked from commit 983e30361f49a67252d0b5d82630e70724d69dbf)
|
||||||
|
|
||||||
|
commit 7b3aa3f0be8d1334dbf23bd04258a8856a4329c7
|
||||||
|
Author: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
|
||||||
|
Date: Sun Apr 6 05:32:00 2014 -0700
|
||||||
|
|
||||||
|
XQuartz: Ensure we wait for the server thread to terminate
|
||||||
|
|
||||||
|
AKA: XQuartz 2.7.5 doesn't delete its /tmp/.X$d-lock
|
||||||
|
|
||||||
|
http://xquartz.macosforge.org/trac/ticket/823
|
||||||
|
|
||||||
|
Signed-off-by: Jeremy Huddleston Sequoia <jeremyhu@apple.com>
|
||||||
|
|
||||||
commit 9182af8a09c326bb4b01d3645fb2936e93f02242
|
commit 9182af8a09c326bb4b01d3645fb2936e93f02242
|
||||||
Author: Matt Dew <marcoz@osource.org>
|
Author: Matt Dew <marcoz@osource.org>
|
||||||
Date: Sun Apr 13 20:55:40 2014 -0600
|
Date: Sun Apr 13 20:55:40 2014 -0600
|
||||||
|
@ -661,6 +661,8 @@ void
|
|||||||
DeepCopyDeviceClasses(DeviceIntPtr from, DeviceIntPtr to,
|
DeepCopyDeviceClasses(DeviceIntPtr from, DeviceIntPtr to,
|
||||||
DeviceChangedEvent *dce)
|
DeviceChangedEvent *dce)
|
||||||
{
|
{
|
||||||
|
OsBlockSIGIO();
|
||||||
|
|
||||||
/* generic feedback classes, not tied to pointer and/or keyboard */
|
/* generic feedback classes, not tied to pointer and/or keyboard */
|
||||||
DeepCopyFeedbackClasses(from, to);
|
DeepCopyFeedbackClasses(from, to);
|
||||||
|
|
||||||
@ -668,6 +670,8 @@ DeepCopyDeviceClasses(DeviceIntPtr from, DeviceIntPtr to,
|
|||||||
DeepCopyKeyboardClasses(from, to);
|
DeepCopyKeyboardClasses(from, to);
|
||||||
if ((dce->flags & DEVCHANGE_POINTER_EVENT))
|
if ((dce->flags & DEVCHANGE_POINTER_EVENT))
|
||||||
DeepCopyPointerClasses(from, to);
|
DeepCopyPointerClasses(from, to);
|
||||||
|
|
||||||
|
OsReleaseSIGIO();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
24
xserver/configure
vendored
24
xserver/configure
vendored
@ -1,6 +1,6 @@
|
|||||||
#! /bin/sh
|
#! /bin/sh
|
||||||
# Guess values for system-dependent variables and create Makefiles.
|
# Guess values for system-dependent variables and create Makefiles.
|
||||||
# Generated by GNU Autoconf 2.69 for xorg-server 1.15.1.
|
# Generated by GNU Autoconf 2.69 for xorg-server 1.15.2.
|
||||||
#
|
#
|
||||||
# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
|
# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
|
||||||
#
|
#
|
||||||
@ -651,8 +651,8 @@ MAKEFLAGS=
|
|||||||
# Identity of this package.
|
# Identity of this package.
|
||||||
PACKAGE_NAME='xorg-server'
|
PACKAGE_NAME='xorg-server'
|
||||||
PACKAGE_TARNAME='xorg-server'
|
PACKAGE_TARNAME='xorg-server'
|
||||||
PACKAGE_VERSION='1.15.1'
|
PACKAGE_VERSION='1.15.2'
|
||||||
PACKAGE_STRING='xorg-server 1.15.1'
|
PACKAGE_STRING='xorg-server 1.15.2'
|
||||||
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
|
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
|
||||||
PACKAGE_URL=''
|
PACKAGE_URL=''
|
||||||
|
|
||||||
@ -2025,7 +2025,7 @@ if test "$ac_init_help" = "long"; then
|
|||||||
# Omit some internal or obsolete options to make the list less imposing.
|
# Omit some internal or obsolete options to make the list less imposing.
|
||||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||||
cat <<_ACEOF
|
cat <<_ACEOF
|
||||||
\`configure' configures xorg-server 1.15.1 to adapt to many kinds of systems.
|
\`configure' configures xorg-server 1.15.2 to adapt to many kinds of systems.
|
||||||
|
|
||||||
Usage: $0 [OPTION]... [VAR=VALUE]...
|
Usage: $0 [OPTION]... [VAR=VALUE]...
|
||||||
|
|
||||||
@ -2095,7 +2095,7 @@ fi
|
|||||||
|
|
||||||
if test -n "$ac_init_help"; then
|
if test -n "$ac_init_help"; then
|
||||||
case $ac_init_help in
|
case $ac_init_help in
|
||||||
short | recursive ) echo "Configuration of xorg-server 1.15.1:";;
|
short | recursive ) echo "Configuration of xorg-server 1.15.2:";;
|
||||||
esac
|
esac
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
|
|
||||||
@ -2522,7 +2522,7 @@ fi
|
|||||||
test -n "$ac_init_help" && exit $ac_status
|
test -n "$ac_init_help" && exit $ac_status
|
||||||
if $ac_init_version; then
|
if $ac_init_version; then
|
||||||
cat <<\_ACEOF
|
cat <<\_ACEOF
|
||||||
xorg-server configure 1.15.1
|
xorg-server configure 1.15.2
|
||||||
generated by GNU Autoconf 2.69
|
generated by GNU Autoconf 2.69
|
||||||
|
|
||||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||||
@ -3231,7 +3231,7 @@ cat >config.log <<_ACEOF
|
|||||||
This file contains any messages produced by compilers while
|
This file contains any messages produced by compilers while
|
||||||
running configure, to aid debugging if configure makes a mistake.
|
running configure, to aid debugging if configure makes a mistake.
|
||||||
|
|
||||||
It was created by xorg-server $as_me 1.15.1, which was
|
It was created by xorg-server $as_me 1.15.2, which was
|
||||||
generated by GNU Autoconf 2.69. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
$ $0 $@
|
$ $0 $@
|
||||||
@ -3579,8 +3579,8 @@ ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $
|
|||||||
ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
ac_compiler_gnu=$ac_cv_c_compiler_gnu
|
||||||
|
|
||||||
|
|
||||||
RELEASE_DATE="2014-04-13"
|
RELEASE_DATE="2014-06-27"
|
||||||
RELEASE_NAME="Heart Candy"
|
RELEASE_NAME="Malt Candy"
|
||||||
|
|
||||||
am__api_version='1.12'
|
am__api_version='1.12'
|
||||||
|
|
||||||
@ -4058,7 +4058,7 @@ fi
|
|||||||
|
|
||||||
# Define the identity of the package.
|
# Define the identity of the package.
|
||||||
PACKAGE='xorg-server'
|
PACKAGE='xorg-server'
|
||||||
VERSION='1.15.1'
|
VERSION='1.15.2'
|
||||||
|
|
||||||
|
|
||||||
cat >>confdefs.h <<_ACEOF
|
cat >>confdefs.h <<_ACEOF
|
||||||
@ -31991,7 +31991,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
|
|||||||
# report actual input values of CONFIG_FILES etc. instead of their
|
# report actual input values of CONFIG_FILES etc. instead of their
|
||||||
# values after options handling.
|
# values after options handling.
|
||||||
ac_log="
|
ac_log="
|
||||||
This file was extended by xorg-server $as_me 1.15.1, which was
|
This file was extended by xorg-server $as_me 1.15.2, which was
|
||||||
generated by GNU Autoconf 2.69. Invocation command line was
|
generated by GNU Autoconf 2.69. Invocation command line was
|
||||||
|
|
||||||
CONFIG_FILES = $CONFIG_FILES
|
CONFIG_FILES = $CONFIG_FILES
|
||||||
@ -32057,7 +32057,7 @@ _ACEOF
|
|||||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||||
ac_cs_version="\\
|
ac_cs_version="\\
|
||||||
xorg-server config.status 1.15.1
|
xorg-server config.status 1.15.2
|
||||||
configured by $0, generated by GNU Autoconf 2.69,
|
configured by $0, generated by GNU Autoconf 2.69,
|
||||||
with options \\"\$ac_cs_config\\"
|
with options \\"\$ac_cs_config\\"
|
||||||
|
|
||||||
|
@ -26,9 +26,9 @@ dnl
|
|||||||
dnl Process this file with autoconf to create configure.
|
dnl Process this file with autoconf to create configure.
|
||||||
|
|
||||||
AC_PREREQ(2.60)
|
AC_PREREQ(2.60)
|
||||||
AC_INIT([xorg-server], 1.15.1, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
|
AC_INIT([xorg-server], 1.15.2, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
|
||||||
RELEASE_DATE="2014-04-13"
|
RELEASE_DATE="2014-06-27"
|
||||||
RELEASE_NAME="Heart Candy"
|
RELEASE_NAME="Malt Candy"
|
||||||
AC_CONFIG_SRCDIR([Makefile.am])
|
AC_CONFIG_SRCDIR([Makefile.am])
|
||||||
AM_INIT_AUTOMAKE([foreign dist-bzip2])
|
AM_INIT_AUTOMAKE([foreign dist-bzip2])
|
||||||
AC_USE_SYSTEM_EXTENSIONS
|
AC_USE_SYSTEM_EXTENSIONS
|
||||||
|
@ -191,7 +191,7 @@ fbGlyphs(CARD8 op,
|
|||||||
pixman_glyph_get_extents(glyphCache, n_glyphs, pglyphs, &extents);
|
pixman_glyph_get_extents(glyphCache, n_glyphs, pglyphs, &extents);
|
||||||
|
|
||||||
pixman_composite_glyphs(op, srcImage, dstImage, format,
|
pixman_composite_glyphs(op, srcImage, dstImage, format,
|
||||||
xSrc + srcXoff + xDst, ySrc + srcYoff + yDst,
|
xSrc + srcXoff + extents.x1 - xDst, ySrc + srcYoff + extents.y1 - yDst,
|
||||||
extents.x1, extents.y1,
|
extents.x1, extents.y1,
|
||||||
extents.x1 + dstXoff, extents.y1 + dstYoff,
|
extents.x1 + dstXoff, extents.y1 + dstYoff,
|
||||||
extents.x2 - extents.x1,
|
extents.x2 - extents.x1,
|
||||||
|
@ -97,7 +97,7 @@ Section "ServerFlags"
|
|||||||
# Uncomment this to disable the <Ctrl><Alt><BS> server abort sequence
|
# Uncomment this to disable the <Ctrl><Alt><BS> server abort sequence
|
||||||
# This allows clients to receive this key event.
|
# This allows clients to receive this key event.
|
||||||
|
|
||||||
# Option "DontZap" "false"
|
# Option "DontZap" "true"
|
||||||
|
|
||||||
# Uncomment this to disable the <Ctrl><Alt><KP_+>/<KP_-> mode switching
|
# Uncomment this to disable the <Ctrl><Alt><KP_+>/<KP_-> mode switching
|
||||||
# sequences. This allows clients to receive these key events.
|
# sequences. This allows clients to receive these key events.
|
||||||
|
@ -942,9 +942,8 @@ extern char *bundle_id_prefix;
|
|||||||
/* shutdown the X server, it will exit () for us. */
|
/* shutdown the X server, it will exit () for us. */
|
||||||
DarwinSendDDXEvent(kXquartzQuit, 0);
|
DarwinSendDDXEvent(kXquartzQuit, 0);
|
||||||
|
|
||||||
/* In case it doesn't, exit anyway after a while. */
|
/* In case it doesn't, exit anyway after 5s. */
|
||||||
remain = 10000000;
|
[NSThread sleepForTimeInterval:5.0];
|
||||||
while ((remain = usleep(remain)) > 0) ;
|
|
||||||
|
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
@ -19,9 +19,9 @@
|
|||||||
<key>CFBundlePackageType</key>
|
<key>CFBundlePackageType</key>
|
||||||
<string>APPL</string>
|
<string>APPL</string>
|
||||||
<key>CFBundleShortVersionString</key>
|
<key>CFBundleShortVersionString</key>
|
||||||
<string>2.7.6</string>
|
<string>2.7.7</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>2.7.6</string>
|
<string>2.7.7</string>
|
||||||
<key>CFBundleSignature</key>
|
<key>CFBundleSignature</key>
|
||||||
<string>x11a</string>
|
<string>x11a</string>
|
||||||
<key>CSResourcesFileMapped</key>
|
<key>CSResourcesFileMapped</key>
|
||||||
|
@ -704,22 +704,6 @@ OsVendorInit(void)
|
|||||||
free(lf);
|
free(lf);
|
||||||
|
|
||||||
DarwinPrintBanner();
|
DarwinPrintBanner();
|
||||||
#ifdef ENABLE_DEBUG_LOG
|
|
||||||
{
|
|
||||||
char *home_dir = NULL, *log_file_path = NULL;
|
|
||||||
home_dir = getenv("HOME");
|
|
||||||
if (home_dir) asprintf(&log_file_path, "%s/%s", home_dir,
|
|
||||||
DEBUG_LOG_NAME);
|
|
||||||
if (log_file_path) {
|
|
||||||
if (!access(log_file_path, F_OK)) {
|
|
||||||
debug_log_fp = fopen(log_file_path, "a");
|
|
||||||
if (debug_log_fp) ErrorF("Debug logging enabled to %s\n",
|
|
||||||
log_file_path);
|
|
||||||
}
|
|
||||||
free(log_file_path);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -54,6 +54,11 @@
|
|||||||
#include "damage.h"
|
#include "damage.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if MAC_OS_X_VERSION_MIN_REQUIRED < 1090
|
||||||
|
// From NSApplication.h
|
||||||
|
extern const double NSAppKitVersionNumber;
|
||||||
|
#endif
|
||||||
|
|
||||||
/* 10.4's deferred update makes X slower.. have to live with the tearing
|
/* 10.4's deferred update makes X slower.. have to live with the tearing
|
||||||
* for now.. */
|
* for now.. */
|
||||||
#define XP_NO_DEFERRED_UPDATES 8
|
#define XP_NO_DEFERRED_UPDATES 8
|
||||||
@ -164,9 +169,14 @@ displayScreenBounds(CGDirectDisplayID id)
|
|||||||
(int)frame.size.width, (int)frame.size.height,
|
(int)frame.size.width, (int)frame.size.height,
|
||||||
(int)frame.origin.x, (int)frame.origin.y);
|
(int)frame.origin.x, (int)frame.origin.y);
|
||||||
|
|
||||||
/* Remove menubar to help standard X11 window managers. */
|
/* Remove menubar to help standard X11 window managers.
|
||||||
if (XQuartzIsRootless &&
|
* On Mavericks and later, the menu bar is on all displays.
|
||||||
frame.origin.x == 0 && frame.origin.y == 0) {
|
*/
|
||||||
|
if (XQuartzIsRootless
|
||||||
|
#if MAC_OS_X_VERSION_MIN_REQUIRED < 1090
|
||||||
|
&& (NSAppKitVersionNumber >= 1265 || (frame.origin.x == 0 && frame.origin.y == 0))
|
||||||
|
#endif
|
||||||
|
) {
|
||||||
frame.origin.y += aquaMenuBarHeight;
|
frame.origin.y += aquaMenuBarHeight;
|
||||||
frame.size.height -= aquaMenuBarHeight;
|
frame.size.height -= aquaMenuBarHeight;
|
||||||
}
|
}
|
||||||
|
@ -259,15 +259,19 @@ extern void FormatDouble(double dbl, char *string);
|
|||||||
* or a value greater than 0
|
* or a value greater than 0
|
||||||
*/
|
*/
|
||||||
static inline int
|
static inline int
|
||||||
version_compare(uint16_t a_major, uint16_t a_minor,
|
version_compare(uint32_t a_major, uint32_t a_minor,
|
||||||
uint16_t b_major, uint16_t b_minor)
|
uint32_t b_major, uint32_t b_minor)
|
||||||
{
|
{
|
||||||
int a, b;
|
if (a_major > b_major)
|
||||||
|
return 1;
|
||||||
|
if (a_major < b_major)
|
||||||
|
return -1;
|
||||||
|
if (a_minor > b_minor)
|
||||||
|
return 1;
|
||||||
|
if (a_minor < b_minor)
|
||||||
|
return -1;
|
||||||
|
|
||||||
a = a_major << 16 | a_minor;
|
return 0;
|
||||||
b = b_major << 16 | b_minor;
|
|
||||||
|
|
||||||
return (a - b);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/* some macros to help swap requests, replies, and events */
|
/* some macros to help swap requests, replies, and events */
|
||||||
|
@ -223,9 +223,8 @@ turns on auto-repeat.
|
|||||||
.B -retro
|
.B -retro
|
||||||
starts the stipple with the classic stipple and cursor visible. The default
|
starts the stipple with the classic stipple and cursor visible. The default
|
||||||
is to start with a black root window, and to suppress display of the cursor
|
is to start with a black root window, and to suppress display of the cursor
|
||||||
until the first time an application calls XDefineCursor(). For the Xorg
|
until the first time an application calls XDefineCursor(). For kdrive
|
||||||
server, this also sets the default for the DontZap option to FALSE. For
|
servers, this implies -zap.
|
||||||
kdrive servers, this implies -zap.
|
|
||||||
.TP 8
|
.TP 8
|
||||||
.B \-s \fIminutes\fP
|
.B \-s \fIminutes\fP
|
||||||
sets screen-saver timeout time in minutes.
|
sets screen-saver timeout time in minutes.
|
||||||
|
127
xserver/test-driver
Normal file
127
xserver/test-driver
Normal file
@ -0,0 +1,127 @@
|
|||||||
|
#! /bin/sh
|
||||||
|
# test-driver - basic testsuite driver script.
|
||||||
|
|
||||||
|
scriptversion=2012-06-27.10; # UTC
|
||||||
|
|
||||||
|
# Copyright (C) 2011-2013 Free Software Foundation, Inc.
|
||||||
|
#
|
||||||
|
# This program is free software; you can redistribute it and/or modify
|
||||||
|
# it under the terms of the GNU General Public License as published by
|
||||||
|
# the Free Software Foundation; either version 2, or (at your option)
|
||||||
|
# any later version.
|
||||||
|
#
|
||||||
|
# This program is distributed in the hope that it will be useful,
|
||||||
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
# GNU General Public License for more details.
|
||||||
|
#
|
||||||
|
# You should have received a copy of the GNU General Public License
|
||||||
|
# along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
# As a special exception to the GNU General Public License, if you
|
||||||
|
# distribute this file as part of a program that contains a
|
||||||
|
# configuration script generated by Autoconf, you may include it under
|
||||||
|
# the same distribution terms that you use for the rest of that program.
|
||||||
|
|
||||||
|
# This file is maintained in Automake, please report
|
||||||
|
# bugs to <bug-automake@gnu.org> or send patches to
|
||||||
|
# <automake-patches@gnu.org>.
|
||||||
|
|
||||||
|
# Make unconditional expansion of undefined variables an error. This
|
||||||
|
# helps a lot in preventing typo-related bugs.
|
||||||
|
set -u
|
||||||
|
|
||||||
|
usage_error ()
|
||||||
|
{
|
||||||
|
echo "$0: $*" >&2
|
||||||
|
print_usage >&2
|
||||||
|
exit 2
|
||||||
|
}
|
||||||
|
|
||||||
|
print_usage ()
|
||||||
|
{
|
||||||
|
cat <<END
|
||||||
|
Usage:
|
||||||
|
test-driver --test-name=NAME --log-file=PATH --trs-file=PATH
|
||||||
|
[--expect-failure={yes|no}] [--color-tests={yes|no}]
|
||||||
|
[--enable-hard-errors={yes|no}] [--] TEST-SCRIPT
|
||||||
|
The '--test-name', '--log-file' and '--trs-file' options are mandatory.
|
||||||
|
END
|
||||||
|
}
|
||||||
|
|
||||||
|
# TODO: better error handling in option parsing (in particular, ensure
|
||||||
|
# TODO: $log_file, $trs_file and $test_name are defined).
|
||||||
|
test_name= # Used for reporting.
|
||||||
|
log_file= # Where to save the output of the test script.
|
||||||
|
trs_file= # Where to save the metadata of the test run.
|
||||||
|
expect_failure=no
|
||||||
|
color_tests=no
|
||||||
|
enable_hard_errors=yes
|
||||||
|
while test $# -gt 0; do
|
||||||
|
case $1 in
|
||||||
|
--help) print_usage; exit $?;;
|
||||||
|
--version) echo "test-driver $scriptversion"; exit $?;;
|
||||||
|
--test-name) test_name=$2; shift;;
|
||||||
|
--log-file) log_file=$2; shift;;
|
||||||
|
--trs-file) trs_file=$2; shift;;
|
||||||
|
--color-tests) color_tests=$2; shift;;
|
||||||
|
--expect-failure) expect_failure=$2; shift;;
|
||||||
|
--enable-hard-errors) enable_hard_errors=$2; shift;;
|
||||||
|
--) shift; break;;
|
||||||
|
-*) usage_error "invalid option: '$1'";;
|
||||||
|
esac
|
||||||
|
shift
|
||||||
|
done
|
||||||
|
|
||||||
|
if test $color_tests = yes; then
|
||||||
|
# Keep this in sync with 'lib/am/check.am:$(am__tty_colors)'.
|
||||||
|
red='[0;31m' # Red.
|
||||||
|
grn='[0;32m' # Green.
|
||||||
|
lgn='[1;32m' # Light green.
|
||||||
|
blu='[1;34m' # Blue.
|
||||||
|
mgn='[0;35m' # Magenta.
|
||||||
|
std='[m' # No color.
|
||||||
|
else
|
||||||
|
red= grn= lgn= blu= mgn= std=
|
||||||
|
fi
|
||||||
|
|
||||||
|
do_exit='rm -f $log_file $trs_file; (exit $st); exit $st'
|
||||||
|
trap "st=129; $do_exit" 1
|
||||||
|
trap "st=130; $do_exit" 2
|
||||||
|
trap "st=141; $do_exit" 13
|
||||||
|
trap "st=143; $do_exit" 15
|
||||||
|
|
||||||
|
# Test script is run here.
|
||||||
|
"$@" >$log_file 2>&1
|
||||||
|
estatus=$?
|
||||||
|
if test $enable_hard_errors = no && test $estatus -eq 99; then
|
||||||
|
estatus=1
|
||||||
|
fi
|
||||||
|
|
||||||
|
case $estatus:$expect_failure in
|
||||||
|
0:yes) col=$red res=XPASS recheck=yes gcopy=yes;;
|
||||||
|
0:*) col=$grn res=PASS recheck=no gcopy=no;;
|
||||||
|
77:*) col=$blu res=SKIP recheck=no gcopy=yes;;
|
||||||
|
99:*) col=$mgn res=ERROR recheck=yes gcopy=yes;;
|
||||||
|
*:yes) col=$lgn res=XFAIL recheck=no gcopy=yes;;
|
||||||
|
*:*) col=$red res=FAIL recheck=yes gcopy=yes;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Report outcome to console.
|
||||||
|
echo "${col}${res}${std}: $test_name"
|
||||||
|
|
||||||
|
# Register the test result, and other relevant metadata.
|
||||||
|
echo ":test-result: $res" > $trs_file
|
||||||
|
echo ":global-test-result: $res" >> $trs_file
|
||||||
|
echo ":recheck: $recheck" >> $trs_file
|
||||||
|
echo ":copy-in-global-log: $gcopy" >> $trs_file
|
||||||
|
|
||||||
|
# Local Variables:
|
||||||
|
# mode: shell-script
|
||||||
|
# sh-indentation: 2
|
||||||
|
# eval: (add-hook 'write-file-hooks 'time-stamp)
|
||||||
|
# time-stamp-start: "scriptversion="
|
||||||
|
# time-stamp-format: "%:y-%02m-%02d.%02H"
|
||||||
|
# time-stamp-time-zone: "UTC"
|
||||||
|
# time-stamp-end: "; # UTC"
|
||||||
|
# End:
|
Loading…
Reference in New Issue
Block a user