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
|
||||
Author: Matt Dew <marcoz@osource.org>
|
||||
Date: Sun Apr 13 20:55:40 2014 -0600
|
||||
|
@ -661,6 +661,8 @@ void
|
||||
DeepCopyDeviceClasses(DeviceIntPtr from, DeviceIntPtr to,
|
||||
DeviceChangedEvent *dce)
|
||||
{
|
||||
OsBlockSIGIO();
|
||||
|
||||
/* generic feedback classes, not tied to pointer and/or keyboard */
|
||||
DeepCopyFeedbackClasses(from, to);
|
||||
|
||||
@ -668,6 +670,8 @@ DeepCopyDeviceClasses(DeviceIntPtr from, DeviceIntPtr to,
|
||||
DeepCopyKeyboardClasses(from, to);
|
||||
if ((dce->flags & DEVCHANGE_POINTER_EVENT))
|
||||
DeepCopyPointerClasses(from, to);
|
||||
|
||||
OsReleaseSIGIO();
|
||||
}
|
||||
|
||||
/**
|
||||
|
24
xserver/configure
vendored
24
xserver/configure
vendored
@ -1,6 +1,6 @@
|
||||
#! /bin/sh
|
||||
# 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>.
|
||||
#
|
||||
@ -651,8 +651,8 @@ MAKEFLAGS=
|
||||
# Identity of this package.
|
||||
PACKAGE_NAME='xorg-server'
|
||||
PACKAGE_TARNAME='xorg-server'
|
||||
PACKAGE_VERSION='1.15.1'
|
||||
PACKAGE_STRING='xorg-server 1.15.1'
|
||||
PACKAGE_VERSION='1.15.2'
|
||||
PACKAGE_STRING='xorg-server 1.15.2'
|
||||
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
|
||||
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.
|
||||
# This message is too long to be a string in the A/UX 3.1 sh.
|
||||
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]...
|
||||
|
||||
@ -2095,7 +2095,7 @@ fi
|
||||
|
||||
if test -n "$ac_init_help"; then
|
||||
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
|
||||
cat <<\_ACEOF
|
||||
|
||||
@ -2522,7 +2522,7 @@ fi
|
||||
test -n "$ac_init_help" && exit $ac_status
|
||||
if $ac_init_version; then
|
||||
cat <<\_ACEOF
|
||||
xorg-server configure 1.15.1
|
||||
xorg-server configure 1.15.2
|
||||
generated by GNU Autoconf 2.69
|
||||
|
||||
Copyright (C) 2012 Free Software Foundation, Inc.
|
||||
@ -3231,7 +3231,7 @@ cat >config.log <<_ACEOF
|
||||
This file contains any messages produced by compilers while
|
||||
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
|
||||
|
||||
$ $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
|
||||
|
||||
|
||||
RELEASE_DATE="2014-04-13"
|
||||
RELEASE_NAME="Heart Candy"
|
||||
RELEASE_DATE="2014-06-27"
|
||||
RELEASE_NAME="Malt Candy"
|
||||
|
||||
am__api_version='1.12'
|
||||
|
||||
@ -4058,7 +4058,7 @@ fi
|
||||
|
||||
# Define the identity of the package.
|
||||
PACKAGE='xorg-server'
|
||||
VERSION='1.15.1'
|
||||
VERSION='1.15.2'
|
||||
|
||||
|
||||
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
|
||||
# values after options handling.
|
||||
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
|
||||
|
||||
CONFIG_FILES = $CONFIG_FILES
|
||||
@ -32057,7 +32057,7 @@ _ACEOF
|
||||
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
|
||||
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
|
||||
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,
|
||||
with options \\"\$ac_cs_config\\"
|
||||
|
||||
|
@ -26,9 +26,9 @@ dnl
|
||||
dnl Process this file with autoconf to create configure.
|
||||
|
||||
AC_PREREQ(2.60)
|
||||
AC_INIT([xorg-server], 1.15.1, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
|
||||
RELEASE_DATE="2014-04-13"
|
||||
RELEASE_NAME="Heart Candy"
|
||||
AC_INIT([xorg-server], 1.15.2, [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], xorg-server)
|
||||
RELEASE_DATE="2014-06-27"
|
||||
RELEASE_NAME="Malt Candy"
|
||||
AC_CONFIG_SRCDIR([Makefile.am])
|
||||
AM_INIT_AUTOMAKE([foreign dist-bzip2])
|
||||
AC_USE_SYSTEM_EXTENSIONS
|
||||
|
@ -191,7 +191,7 @@ fbGlyphs(CARD8 op,
|
||||
pixman_glyph_get_extents(glyphCache, n_glyphs, pglyphs, &extents);
|
||||
|
||||
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 + dstXoff, extents.y1 + dstYoff,
|
||||
extents.x2 - extents.x1,
|
||||
|
@ -97,7 +97,7 @@ Section "ServerFlags"
|
||||
# Uncomment this to disable the <Ctrl><Alt><BS> server abort sequence
|
||||
# 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
|
||||
# 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. */
|
||||
DarwinSendDDXEvent(kXquartzQuit, 0);
|
||||
|
||||
/* In case it doesn't, exit anyway after a while. */
|
||||
remain = 10000000;
|
||||
while ((remain = usleep(remain)) > 0) ;
|
||||
/* In case it doesn't, exit anyway after 5s. */
|
||||
[NSThread sleepForTimeInterval:5.0];
|
||||
|
||||
exit(1);
|
||||
}
|
||||
|
@ -19,9 +19,9 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>2.7.6</string>
|
||||
<string>2.7.7</string>
|
||||
<key>CFBundleVersion</key>
|
||||
<string>2.7.6</string>
|
||||
<string>2.7.7</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>x11a</string>
|
||||
<key>CSResourcesFileMapped</key>
|
||||
|
@ -704,22 +704,6 @@ OsVendorInit(void)
|
||||
free(lf);
|
||||
|
||||
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"
|
||||
#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
|
||||
* for now.. */
|
||||
#define XP_NO_DEFERRED_UPDATES 8
|
||||
@ -164,9 +169,14 @@ displayScreenBounds(CGDirectDisplayID id)
|
||||
(int)frame.size.width, (int)frame.size.height,
|
||||
(int)frame.origin.x, (int)frame.origin.y);
|
||||
|
||||
/* Remove menubar to help standard X11 window managers. */
|
||||
if (XQuartzIsRootless &&
|
||||
frame.origin.x == 0 && frame.origin.y == 0) {
|
||||
/* Remove menubar to help standard X11 window managers.
|
||||
* On Mavericks and later, the menu bar is on all displays.
|
||||
*/
|
||||
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.size.height -= aquaMenuBarHeight;
|
||||
}
|
||||
|
@ -259,15 +259,19 @@ extern void FormatDouble(double dbl, char *string);
|
||||
* or a value greater than 0
|
||||
*/
|
||||
static inline int
|
||||
version_compare(uint16_t a_major, uint16_t a_minor,
|
||||
uint16_t b_major, uint16_t b_minor)
|
||||
version_compare(uint32_t a_major, uint32_t a_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;
|
||||
b = b_major << 16 | b_minor;
|
||||
|
||||
return (a - b);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* some macros to help swap requests, replies, and events */
|
||||
|
@ -223,9 +223,8 @@ turns on auto-repeat.
|
||||
.B -retro
|
||||
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
|
||||
until the first time an application calls XDefineCursor(). For the Xorg
|
||||
server, this also sets the default for the DontZap option to FALSE. For
|
||||
kdrive servers, this implies -zap.
|
||||
until the first time an application calls XDefineCursor(). For kdrive
|
||||
servers, this implies -zap.
|
||||
.TP 8
|
||||
.B \-s \fIminutes\fP
|
||||
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