xorg-server: Changes to 'ubuntu+1'
Rebased ref, commits from common ancestor:
commit 040e9c201beed17ef95e9fd8c348e3b78cff5118
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date: Mon Dec 2 13:07:42 2013 +0100
fixup xmir patch building
diff --git a/debian/patches/xmir.patch b/debian/patches/xmir.patch
index bc2fd5e..c649889 100644
--- a/debian/patches/xmir.patch
+++ b/debian/patches/xmir.patch
@@ -1484,7 +1484,7 @@
+xmir_window_disable_damage_tracking(xmir_window *xmir_win)
+{
+ if (xmir_win->damage != NULL) {
-+ DamageUnregister(&xmir_win->win->drawable, xmir_win->damage);
++ DamageUnregister(xmir_win->damage);
+ DamageDestroy(xmir_win->damage);
+ xmir_win->damage = NULL;
+ }
commit e29f8177c0b72665334fc5fe8637de0b525785c0
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date: Mon Dec 2 12:57:11 2013 +0100
disable xorg-servers linux acpi and apm support
Can only cause bugs.
diff --git a/debian/rules b/debian/rules
index 3d1168d..741834e 100755
--- a/debian/rules
+++ b/debian/rules
@@ -108,6 +108,8 @@ confflags += \
--enable-dpms \
$(config_backend) \
--enable-xorg \
+ --disable-linux-acpi \
+ --disable-linux-apm \
--disable-xquartz \
--disable-xwin \
--disable-xfake \
commit 494fddaa976c94320feb547e444d0b97a96f9c7d
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date: Mon Dec 2 12:55:48 2013 +0100
refresh xmir patch
diff --git a/debian/patches/xmir.patch b/debian/patches/xmir.patch
index 6c82d8f..bc2fd5e 100644
--- a/debian/patches/xmir.patch
+++ b/debian/patches/xmir.patch
@@ -1,16 +1,14 @@
-diff --git a/configure.ac b/configure.ac
-index c6ecba4..07d02d0 100644
--- a/configure.ac
+++ b/configure.ac
-@@ -635,6 +635,7 @@ AC_ARG_ENABLE(windowswm, AS_HELP_STRING([--enable-windowswm], [Build XWin w
+@@ -631,6 +631,7 @@
AC_ARG_ENABLE(libdrm, AS_HELP_STRING([--enable-libdrm], [Build Xorg with libdrm support (default: enabled)]), [DRM=$enableval],[DRM=yes])
AC_ARG_ENABLE(clientids, AS_HELP_STRING([--disable-clientids], [Build Xorg with client ID tracking (default: enabled)]), [CLIENTIDS=$enableval], [CLIENTIDS=yes])
AC_ARG_ENABLE(pciaccess, AS_HELP_STRING([--enable-pciaccess], [Build Xorg with pciaccess library (default: enabled)]), [PCI=$enableval], [PCI=yes])
+AC_ARG_ENABLE(xmir, AS_HELP_STRING([--enable-xmir], [Build support for nesting in Mir (default: auto)]), [XMIR=$enableval], [XMIR=auto])
+ AC_ARG_ENABLE(linux_acpi, AC_HELP_STRING([--disable-linux-acpi], [Disable building ACPI support on Linux (if available).]), [enable_linux_acpi=$enableval], [enable_linux_acpi=yes])
+ AC_ARG_ENABLE(linux_apm, AC_HELP_STRING([--disable-linux-apm], [Disable building APM support on Linux (if available).]), [enable_linux_apm=$enableval], [enable_linux_apm=yes])
- dnl DDXes.
- AC_ARG_ENABLE(xorg, AS_HELP_STRING([--enable-xorg], [Build Xorg server (default: auto)]), [XORG=$enableval], [XORG=auto])
-@@ -1148,6 +1149,15 @@ if test "x$XINERAMA" = xyes; then
+@@ -1275,6 +1276,15 @@
SDK_REQUIRED_MODULES="$SDK_REQUIRED_MODULES $XINERAMAPROTO"
fi
@@ -20,13 +18,13 @@ index c6ecba4..07d02d0 100644
+ AC_SUBST([XMIR_CFLAGS])
+ AC_DEFINE(XMIR, 1, [Support Mir nested mode])
+ SDK_REQUIRED_MODULES="$SDK_REQUIRED_MODULES mirclient"
-+fi
++fi
+AM_CONDITIONAL(XMIR, [test "x$XMIR" = xyes])
+
AM_CONDITIONAL(XACE, [test "x$XACE" = xyes])
if test "x$XACE" = xyes; then
AC_DEFINE(XACE, 1, [Build X-ACE extension])
-@@ -2299,6 +2309,7 @@ hw/xfree86/utils/Makefile
+@@ -2439,6 +2449,7 @@
hw/xfree86/utils/man/Makefile
hw/xfree86/utils/cvt/Makefile
hw/xfree86/utils/gtf/Makefile
@@ -34,11 +32,9 @@ index c6ecba4..07d02d0 100644
hw/dmx/config/Makefile
hw/dmx/config/man/Makefile
hw/dmx/doc/Makefile
-diff --git a/hw/xfree86/Makefile.am b/hw/xfree86/Makefile.am
-index c3899b5..6821198 100644
--- a/hw/xfree86/Makefile.am
+++ b/hw/xfree86/Makefile.am
-@@ -25,15 +25,20 @@ if INT10MODULE
+@@ -30,15 +30,20 @@
INT10_SUBDIR = int10
endif
@@ -61,11 +57,9 @@ index c3899b5..6821198 100644
bin_PROGRAMS = Xorg
nodist_Xorg_SOURCES = sdksyms.c
-diff --git a/hw/xfree86/common/xf86Config.c b/hw/xfree86/common/xf86Config.c
-index 74d5ed3..538ba4b 100644
--- a/hw/xfree86/common/xf86Config.c
+++ b/hw/xfree86/common/xf86Config.c
-@@ -118,6 +118,7 @@ static ModuleDefault ModuleDefaults[] = {
+@@ -118,6 +118,7 @@
{.name = "fb",.toLoad = TRUE,.load_opt = NULL},
{.name = "shadow",.toLoad = TRUE,.load_opt = NULL},
#endif
@@ -73,7 +67,7 @@ index 74d5ed3..538ba4b 100644
{.name = NULL,.toLoad = FALSE,.load_opt = NULL}
};
-@@ -260,6 +261,17 @@ xf86ModulelistFromConfig(pointer **optlist)
+@@ -260,6 +261,17 @@
return NULL;
}
@@ -91,11 +85,9 @@ index 74d5ed3..538ba4b 100644
if (xf86configptr->conf_modules) {
/* Walk the disable list and let people know what we've parsed to
* not be loaded
-diff --git a/hw/xfree86/common/xf86Events.c b/hw/xfree86/common/xf86Events.c
-index 7a949fd..4d416b4 100644
--- a/hw/xfree86/common/xf86Events.c
+++ b/hw/xfree86/common/xf86Events.c
-@@ -105,8 +105,6 @@ extern fd_set EnabledDevices;
+@@ -105,8 +105,6 @@
extern void (*xf86OSPMClose) (void);
#endif
@@ -104,7 +96,7 @@ index 7a949fd..4d416b4 100644
/*
* Allow arbitrary drivers or other XFree86 code to register with our main
* Wakeup handler.
-@@ -410,7 +408,7 @@ xf86ReleaseKeys(DeviceIntPtr pDev)
+@@ -411,7 +409,7 @@
* xf86VTSwitch --
* Handle requests for switching the vt.
*/
@@ -113,7 +105,7 @@ index 7a949fd..4d416b4 100644
xf86VTSwitch(void)
{
int i;
-@@ -466,7 +464,7 @@ xf86VTSwitch(void)
+@@ -471,7 +469,7 @@
xf86AccessLeave(); /* We need this here, otherwise */
@@ -122,7 +114,7 @@ index 7a949fd..4d416b4 100644
/*
* switch failed
*/
-@@ -522,7 +520,7 @@ xf86VTSwitch(void)
+@@ -530,7 +528,7 @@
}
else {
DebugF("xf86VTSwitch: Entering\n");
@@ -131,22 +123,18 @@ index 7a949fd..4d416b4 100644
return;
#ifdef XF86PM
-diff --git a/hw/xfree86/common/xf86Globals.c b/hw/xfree86/common/xf86Globals.c
-index 7df7a80..17ed7c6 100644
--- a/hw/xfree86/common/xf86Globals.c
+++ b/hw/xfree86/common/xf86Globals.c
-@@ -204,3 +204,6 @@ Bool xf86VidModeAllowNonLocal = FALSE;
+@@ -206,3 +206,6 @@
#endif
RootWinPropPtr *xf86RegisteredPropertiesTable = NULL;
Bool xorgHWAccess = FALSE;
+Bool xorgMir = FALSE;
+const char *mirID = NULL;
+const char *mirSocket = NULL;
-diff --git a/hw/xfree86/common/xf86Helper.c b/hw/xfree86/common/xf86Helper.c
-index 721159d..d319e0c 100644
--- a/hw/xfree86/common/xf86Helper.c
+++ b/hw/xfree86/common/xf86Helper.c
-@@ -100,7 +100,14 @@ xf86DeleteDriver(int drvIndex)
+@@ -100,7 +100,14 @@
if (xf86DriverList[drvIndex]->module)
UnloadModule(xf86DriverList[drvIndex]->module);
free(xf86DriverList[drvIndex]);
@@ -162,11 +150,9 @@ index 721159d..d319e0c 100644
}
}
-diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
-index 91ec4c8..0508e8d 100644
--- a/hw/xfree86/common/xf86Init.c
+++ b/hw/xfree86/common/xf86Init.c
-@@ -530,7 +530,7 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv)
+@@ -554,7 +554,7 @@
* needed at this early stage.
*/
@@ -175,7 +161,7 @@ index 91ec4c8..0508e8d 100644
xorgHWFlags flags = HW_IO;
if (xf86DriverList[i]->Identify != NULL)
-@@ -541,11 +541,20 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv)
+@@ -565,11 +565,20 @@
GET_REQUIRED_HW_INTERFACES,
&flags);
@@ -196,7 +182,7 @@ index 91ec4c8..0508e8d 100644
}
if (xorgHWOpenConsole)
-@@ -631,9 +640,13 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv)
+@@ -662,9 +671,13 @@
}
/* Remove (unload) drivers that are not required */
@@ -212,7 +198,7 @@ index 91ec4c8..0508e8d 100644
/*
* At this stage we know how many screens there are.
-@@ -1454,6 +1467,17 @@ ddxProcessArgument(int argc, char **argv, int i)
+@@ -1490,6 +1503,17 @@
xf86Info.ShareVTs = TRUE;
return 1;
}
@@ -230,7 +216,7 @@ index 91ec4c8..0508e8d 100644
/* OS-specific processing */
return xf86ProcessArgument(argc, argv, i);
-@@ -1527,6 +1551,8 @@ ddxUseMsg(void)
+@@ -1563,6 +1587,8 @@
ErrorF
("-novtswitch don't automatically switch VT at reset & exit\n");
ErrorF("-sharevts share VTs with another X server\n");
@@ -239,11 +225,9 @@ index 91ec4c8..0508e8d 100644
/* OS-specific usage */
xf86UseMsg();
ErrorF("\n");
-diff --git a/hw/xfree86/common/xf86Priv.h b/hw/xfree86/common/xf86Priv.h
-index 58cfe0a..96372fa 100644
--- a/hw/xfree86/common/xf86Priv.h
+++ b/hw/xfree86/common/xf86Priv.h
-@@ -91,6 +91,9 @@ extern _X_EXPORT int xf86NumScreens;
+@@ -93,6 +93,9 @@
extern _X_EXPORT const char *xf86VisualNames[];
extern _X_EXPORT int xf86Verbose; /* verbosity level */
extern _X_EXPORT int xf86LogVerbose; /* log file verbosity level */
@@ -253,7 +237,7 @@ index 58cfe0a..96372fa 100644
extern _X_EXPORT RootWinPropPtr *xf86RegisteredPropertiesTable;
-@@ -147,6 +150,9 @@ xf86HandlePMEvents(int fd, pointer data);
+@@ -149,6 +152,9 @@
extern _X_EXPORT int (*xf86PMGetEventFromOs) (int fd, pmEvent * events,
int num);
extern _X_EXPORT pmWait (*xf86PMConfirmEventToOs) (int fd, pmEvent event);
@@ -263,17 +247,15 @@ index 58cfe0a..96372fa 100644
/* xf86Helper.c */
extern _X_EXPORT void
-diff --git a/hw/xfree86/ramdac/xf86Cursor.c b/hw/xfree86/ramdac/xf86Cursor.c
-index 860704e..5277c94 100644
--- a/hw/xfree86/ramdac/xf86Cursor.c
+++ b/hw/xfree86/ramdac/xf86Cursor.c
-@@ -58,7 +58,12 @@ xf86InitCursor(ScreenPtr pScreen, xf86CursorInfoPtr infoPtr)
+@@ -58,7 +58,12 @@
xf86CursorScreenPtr ScreenPriv;
miPointerScreenPtr PointPriv;
- if (!xf86InitHardwareCursor(pScreen, infoPtr))
+ infoPtr->pScrn = xf86ScreenToScrn(pScreen);
-+
++
+ /* If we can't create a hardware cursor don't bother initialising HW cursor support */
+ if (infoPtr->MaxWidth != 0 &&
+ infoPtr->MaxHeight != 0 &&
@@ -281,11 +263,9 @@ index 860704e..5277c94 100644
return FALSE;
if (!dixRegisterPrivateKey(&xf86CursorScreenKeyRec, PRIVATE_SCREEN, 0))
-diff --git a/hw/xfree86/ramdac/xf86HWCurs.c b/hw/xfree86/ramdac/xf86HWCurs.c
-index 197abff..399bfb9 100644
--- a/hw/xfree86/ramdac/xf86HWCurs.c
+++ b/hw/xfree86/ramdac/xf86HWCurs.c
-@@ -114,8 +114,6 @@ xf86InitHardwareCursor(ScreenPtr pScreen, xf86CursorInfoPtr infoPtr)
+@@ -114,8 +114,6 @@
infoPtr->RealizeCursor = RealizeCursorInterleave0;
}
@@ -294,9 +274,6 @@ index 197abff..399bfb9 100644
return TRUE;
}
-diff --git a/hw/xfree86/xmir/Makefile.am b/hw/xfree86/xmir/Makefile.am
-new file mode 100644
-index 0000000..80715f8
--- /dev/null
+++ b/hw/xfree86/xmir/Makefile.am
@@ -0,0 +1,26 @@
@@ -326,9 +303,6 @@ index 0000000..80715f8
+ xmir-private.h
+
+sdk_HEADERS = xmir.h
-diff --git a/hw/xfree86/xmir/xmir-output.c b/hw/xfree86/xmir/xmir-output.c
-new file mode 100644
-index 0000000..8fd8640
--- /dev/null
+++ b/hw/xfree86/xmir/xmir-output.c
@@ -0,0 +1,678 @@
@@ -657,7 +631,7 @@ index 0000000..8fd8640
+ const char *error_msg;
+
+ if (mode->HDisplay == 0 || mode->VDisplay == 0)
-+ return FALSE;
++ return FALSE;
+
+ xf86Msg(X_INFO, "Initial configuration for crtc %p:\n", crtc);
+ xmir_dump_config(xmir_crtc->config);
@@ -823,7 +797,7 @@ index 0000000..8fd8640
+static void
+xmir_output_destroy(xf86OutputPtr xf86output)
+{
-+ /* The MirDisplayOutput* in driver_private gets cleaned up by
++ /* The MirDisplayOutput* in driver_private gets cleaned up by
+ mir_display_config_destroy() */
+}
+
@@ -920,7 +894,7 @@ index 0000000..8fd8640
+ xmir_update_config(crtc_config);
+
+ /* Trigger RANDR refresh */
-+ RRGetInfo(xf86ScrnToScreen(scrn), TRUE);
++ RRGetInfo(xf86ScrnToScreen(scrn), TRUE);
+}
+
+static void
@@ -1007,12 +981,9 @@ index 0000000..8fd8640
+
+ /* TODO: Use initial Mir state rather than setting up our own */
+ xf86InitialConfiguration(scrn, TRUE);
-+
++
+ return TRUE;
+}
-diff --git a/hw/xfree86/xmir/xmir-private.h b/hw/xfree86/xmir/xmir-private.h
-new file mode 100644
-index 0000000..15d89f0
--- /dev/null
+++ b/hw/xfree86/xmir/xmir-private.h
@@ -0,0 +1,106 @@
@@ -1122,9 +1093,6 @@ index 0000000..15d89f0
+xmir_process_from_eventloop(void);
+
+ #endif /* _MIR_PRIVATE_H */
-diff --git a/hw/xfree86/xmir/xmir-thread-proxy.c b/hw/xfree86/xmir/xmir-thread-proxy.c
-new file mode 100644
-index 0000000..e0acceb
--- /dev/null
+++ b/hw/xfree86/xmir/xmir-thread-proxy.c
@@ -0,0 +1,124 @@
@@ -1221,7 +1189,7 @@ index 0000000..e0acceb
+}
+
+void
-+xmir_post_to_eventloop(xmir_marshall_handler *handler, void *msg)
++xmir_post_to_eventloop(xmir_marshall_handler *handler, void *msg)
+{
+ ssize_t written;
+ const int total_size = sizeof *handler + handler->msg_size;
@@ -1252,9 +1220,6 @@ index 0000000..e0acceb
+ }
+}
+
-diff --git a/hw/xfree86/xmir/xmir-window.c b/hw/xfree86/xmir/xmir-window.c
-new file mode 100644
-index 0000000..a5e97c7
--- /dev/null
+++ b/hw/xfree86/xmir/xmir-window.c
@@ -0,0 +1,343 @@
@@ -1593,7 +1558,7 @@ index 0000000..a5e97c7
+ xmir->DestroyWindow = screen->DestroyWindow;
+ screen->DestroyWindow = xmir_destroy_window;
+
-+ xmir->submit_rendering_handler =
++ xmir->submit_rendering_handler =
+ xmir_register_handler(&xmir_handle_buffer_available,
+ sizeof (xmir_window *));
+ if (xmir->submit_rendering_handler == NULL)
@@ -1601,9 +1566,6 @@ index 0000000..a5e97c7
+
+ return TRUE;
+}
-diff --git a/hw/xfree86/xmir/xmir.c b/hw/xfree86/xmir/xmir.c
-new file mode 100644
-index 0000000..bb2bd59
--- /dev/null
+++ b/hw/xfree86/xmir/xmir.c
@@ -0,0 +1,263 @@
@@ -1658,7 +1620,7 @@ index 0000000..bb2bd59
+#include <mir_toolkit/mir_client_library_drm.h>
+
+static DevPrivateKeyRec xmir_screen_private_key;
-+/*
++/*
+ * We have only a single Mir connection, regardless of how many
+ * drivers load.
+ */
@@ -1784,7 +1746,7 @@ index 0000000..bb2bd59
+ xf86Msg(X_WARNING, "xf86Cursor initialisation failed\n");
+
+ /* Hook up focus -> VT switch proxy */
-+ xmir->focus_event_handler =
++ xmir->focus_event_handler =
+ xmir_register_handler(&xmir_handle_focus_event,
+ sizeof(Bool));
+ if (xmir->focus_event_handler == NULL)
@@ -1806,7 +1768,7 @@ index 0000000..bb2bd59
+_X_EXPORT void
+xmir_screen_destroy(xmir_screen *xmir)
+{
-+
++
+}
+
+_X_EXPORT void
@@ -1842,7 +1804,7 @@ index 0000000..bb2bd59
+xMirSetup(pointer module, pointer opts, int *errmaj, int *errmin)
+{
+ static Bool setupDone = FALSE;
-+
++
+ if (setupDone) {
+ if (errmaj)
+ *errmaj = LDR_ONCEONLY;
@@ -1859,7 +1821,7 @@ index 0000000..bb2bd59
+ return NULL;
+ }
+
-+ xmir_init_thread_to_eventloop();
++ xmir_init_thread_to_eventloop();
+
+ setupDone = TRUE;
+
@@ -1870,9 +1832,6 @@ index 0000000..bb2bd59
+xMirTeardown(pointer module)
+{
+}
-diff --git a/hw/xfree86/xmir/xmir.h b/hw/xfree86/xmir/xmir.h
-new file mode 100644
-index 0000000..78396a3
--- /dev/null
+++ b/hw/xfree86/xmir/xmir.h
@@ -0,0 +1,103 @@
@@ -1946,7 +1905,7 @@ index 0000000..78396a3
+
+_X_EXPORT void
+xmir_screen_close(ScreenPtr screen, xmir_screen *xmir);
-+
++
+_X_EXPORT void
+xmir_screen_destroy(xmir_screen *xmir);
+
@@ -1979,11 +1938,9 @@ index 0000000..78396a3
+xmir_screen_for_each_damaged_window(xmir_screen *xmir, xmir_window_proc callback);
+
+#endif /* _XMIR_H */
-diff --git a/include/list.h b/include/list.h
-index 11de7c5..59f0233 100644
--- a/include/list.h
+++ b/include/list.h
-@@ -184,6 +184,14 @@ __xorg_list_del(struct xorg_list *prev, struct xorg_list *next)
+@@ -184,6 +184,14 @@
prev->next = next;
}
@@ -1998,99 +1955,29 @@ index 11de7c5..59f0233 100644
/**
* Remove the element from the list it is in. Using this function will reset
* the pointers to/from this element so it is removed from the list. It does
-diff --git a/include/xorg-server.h.in b/include/xorg-server.h.in
-index 81935be..c9cd4e8 100644
--- a/include/xorg-server.h.in
+++ b/include/xorg-server.h.in
-@@ -212,4 +212,7 @@
- #define _XSERVER64 1
- #endif
+@@ -224,4 +224,7 @@
+ /* Use XTrans FD passing support */
+ #undef XTRANS_SEND_FDS
+/* Build XMIR nested server */
+#undef XMIR
+
#endif /* _XORG_SERVER_H_ */
-diff --git a/miext/damage/damage.c b/miext/damage/damage.c
-index a98c20e..a1daebb 100644
---- a/miext/damage/damage.c
-+++ b/miext/damage/damage.c
-@@ -123,18 +123,14 @@ static void
- damageReportDamagePostRendering(DamagePtr pDamage, RegionPtr pOldDamage,
- RegionPtr pDamageRegion)
- {
-- BoxRec tmpBox;
-- RegionRec tmpRegion, newDamage;
-- Bool was_empty;
--
-- RegionUnion(&newDamage, pOldDamage, pDamageRegion);
--
- switch (pDamage->damageLevel) {
- case DamageReportRawRegion:
- (*pDamage->damageReportPostRendering) (pDamage, pDamageRegion,
- pDamage->closure);
- break;
- case DamageReportDeltaRegion:
-+ {
-+ RegionRec tmpRegion;
- RegionNull(&tmpRegion);
- RegionSubtract(&tmpRegion, pDamageRegion, pOldDamage);
- if (RegionNotEmpty(&tmpRegion)) {
-@@ -143,25 +139,31 @@ damageReportDamagePostRendering(DamagePtr pDamage, RegionPtr pOldDamage,
- }
- RegionUninit(&tmpRegion);
- break;
-+ }
- case DamageReportBoundingBox:
-+ {
-+ BoxRec tmpBox;
-+ RegionRec newDamage;
- tmpBox = *RegionExtents(pOldDamage);
-+ RegionUnion(&newDamage, pOldDamage, pDamageRegion);
- if (!BOX_SAME(&tmpBox, RegionExtents(&newDamage))) {
- (*pDamage->damageReportPostRendering) (pDamage, &newDamage,
- pDamage->closure);
- }
- break;
-+ }
- case DamageReportNonEmpty:
-- was_empty = !RegionNotEmpty(pOldDamage);
-- if (was_empty && RegionNotEmpty(&newDamage)) {
-- (*pDamage->damageReportPostRendering) (pDamage, &newDamage,
-+ if (RegionNotEmpty(pOldDamage))
-+ break;
-+
-+ if (RegionNotEmpty(pDamageRegion)) {
-+ (*pDamage->damageReportPostRendering) (pDamage, pDamageRegion,
- pDamage->closure);
- }
- break;
- case DamageReportNone:
- break;
- }
--
-- RegionUninit(&newDamage);
- }
-
- #if DAMAGE_DEBUG_ENABLE
-diff --git a/test/Makefile.am b/test/Makefile.am
-index 34f53fc..d1a0f27 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
-@@ -6,7 +6,12 @@ if XORG
+@@ -6,6 +6,9 @@
# For now, requires xf86 ddx, could be adjusted to use another
SUBDIRS += xi2
- noinst_PROGRAMS += xkb input xtest misc fixes xfree86 hashtabletest os signal-logging
--endif
-+
+ noinst_PROGRAMS += xkb input xtest misc fixes xfree86 hashtabletest os signal-logging touch
+if XMIR
+noinst_PROGRAMS += xmir-thread-proxy
+endif #XMIR
-+
-+endif #XORG
+ endif
check_LTLIBRARIES = libxservertest.la
- TESTS=$(noinst_PROGRAMS)
-@@ -38,6 +43,8 @@ touch_LDADD=$(TEST_LDADD)
+@@ -38,6 +41,8 @@
signal_logging_LDADD=$(TEST_LDADD)
hashtabletest_LDADD=$(TEST_LDADD) $(top_srcdir)/Xext/hashtable.c
os_LDADD=$(TEST_LDADD)
@@ -2099,9 +1986,6 @@ index 34f53fc..d1a0f27 100644
libxservertest_la_LIBADD = $(XSERVER_LIBS)
if XORG
-diff --git a/test/xmir-thread-proxy.c b/test/xmir-thread-proxy.c
-new file mode 100644
-index 0000000..7cf19cf
--- /dev/null
+++ b/test/xmir-thread-proxy.c
@@ -0,0 +1,154 @@
@@ -2241,7 +2125,7 @@ index 0000000..7cf19cf
+
+ xmir_process_from_eventloop();
+
-+ assert(check == NUM_THREADS);
++ assert(check == NUM_THREADS);
+}
+
+static void
commit 76fba15816b20e05fcbf6ac44063197b49043bcc
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date: Mon Dec 2 12:47:40 2013 +0100
remove aarch64.patch, upstream
diff --git a/debian/patches/aarch64.patch b/debian/patches/aarch64.patch
deleted file mode 100644
index c24c415..0000000
--- a/debian/patches/aarch64.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-Author: Marcin Juszkiewicz <marcin.juszkiewicz@linaro.org>
-
-Upstream-status: not sent yet
-
----
- hw/xfree86/os-support/linux/lnx_video.c | 4 ++--
- include/servermd.h | 7 +++++++
- 2 files changed, 9 insertions(+), 2 deletions(-)
-
-Index: b/hw/xfree86/os-support/linux/lnx_video.c
-===================================================================
---- a/hw/xfree86/os-support/linux/lnx_video.c
-+++ b/hw/xfree86/os-support/linux/lnx_video.c
-@@ -58,6 +58,7 @@
- !defined(__sparc__) && \
- !defined(__mips__) && \
- !defined(__nds32__) && \
-+ !defined(__aarch64__) && \
- !defined(__arm__)
-
- /*
-Index: b/include/servermd.h
-===================================================================
---- a/include/servermd.h
-+++ b/include/servermd.h
-@@ -245,6 +245,13 @@
- /* ???? */
- #endif /* AMD64 */
-
-+#if defined(__aarch64__) || defined(aarch64) || defined(__aarch64)
-+#define IMAGE_BYTE_ORDER MSBFirst
-+#define BITMAP_BIT_ORDER MSBFirst
-+#define GLYPHPADBYTES 4
-+/* ???? */
-+#endif /* AArch64 */
-+
- #if defined(SVR4) && (defined(__i386__) || defined(__i386) ) || \
- defined(__alpha__) || defined(__alpha) || \
- defined(__i386__) || \
diff --git a/debian/patches/series b/debian/patches/series
index 276d502..cee2ba5 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -47,6 +47,5 @@ xf86-inactive-gpuscreen.patch
rrcrtc-brackets-are-hard.patch
config-add-no-removal.patch
-aarch64.patch
xmir.patch
pixman-validate.patch
commit 2571328296bba71d12ebb35843cce0f9b53f933c
Author: Maarten Lankhorst <maarten.lankhorst@canonical.com>
Date: Mon Dec 2 12:46:57 2013 +0100
remove upstream glx patches
diff --git a/debian/patches/glx-corner-case-drawablegone.patch b/debian/patches/glx-corner-case-drawablegone.patch
deleted file mode 100644
index 13af4e3..0000000
--- a/debian/patches/glx-corner-case-drawablegone.patch
+++ /dev/null
@@ -1,39 +0,0 @@
-From: Adam Jackson <ajax@redhat.com>
-To: xorg-devel@lists.x.org
-Subject: [PATCH 3/3] glx: Fix a corner case in DrawableGone
-Date: Mon, 30 Sep 2013 12:11:24 -0400
-Message-Id: <1380557484-23805-4-git-send-email-ajax@redhat.com>
-
-Losing the drawable does not change our notion of current client. Since
-the GL under us doesn't understand having a current context without
-current drawables (sigh), we do still need to loseCurrent so that we
-re-bind the context on the next request.
-
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=65030
-Signed-off-by: Adam Jackson <ajax@redhat.com>
----
- glx/glxext.c | 2 +-
- 1 file changed, 1 insertion(+), 1 deletion(-)
-
-diff --git a/glx/glxext.c b/glx/glxext.c
-index 534c791..75260a0 100644
---- a/glx/glxext.c
-+++ b/glx/glxext.c
-@@ -132,8 +132,8 @@ DrawableGone(__GLXdrawable * glxPriv, XID xid)
- next = c->next;
- if (c->currentClient &&
- (c->drawPriv == glxPriv || c->readPriv == glxPriv)) {
-+ /* just force a re-bind the next time through */
- (*c->loseCurrent) (c);
-- c->currentClient = NULL;
- }
- if (c->drawPriv == glxPriv)
- c->drawPriv = NULL;
---
-1.8.3.1
-
-_______________________________________________
-xorg-devel@lists.x.org: X.Org development
-Archives: http://lists.x.org/archives/xorg-devel
-Info: http://lists.x.org/mailman/listinfo/xorg-devel
-
diff --git a/debian/patches/glx-fix-memory-leak.patch b/debian/patches/glx-fix-memory-leak.patch
deleted file mode 100644
index a627909..0000000
--- a/debian/patches/glx-fix-memory-leak.patch
+++ /dev/null
@@ -1,237 +0,0 @@
-From: Adam Jackson <ajax@redhat.com>
-To: xorg-devel@lists.x.org
-Subject: [PATCH 2/3] glx: Fix memory leak in context garbage collection
-Date: Mon, 30 Sep 2013 12:11:23 -0400
-Message-Id: <1380557484-23805-3-git-send-email-ajax@redhat.com>
-
-I broke this, back in:
-
- commit a48dadc98a28c969741979b70b7a639f24f4cbbd
- Author: Adam Jackson <ajax@redhat.com>
- Date: Mon Mar 21 11:59:29 2011 -0400
-
- glx: Reimplement context tags
-
-In that, I changed the glx client state to not explicitly track the list
-of current contexts for the client (since that was what we were deriving
-tags from). The bug was that I removed the code for same from
-glxClientCallback without noticing that it had the side effect of
-effectively de-currenting those contexts, so that ContextGone could free
-them. So, if you had a client exit with a context still current, the
-context's memory would leak. Not a huge deal for direct clients, but
-viciously bad for indirect, since the swrast context state at the bottom
-of Mesa is like 15M.
-
-Fix this by promoting Bool isCurrent to ClientPtr currentClient, so that
-we have a back-pointer to chase when walking the list of contexts when
-ClientStateGone happens.
-
-Signed-off-by: Adam Jackson <ajax@redhat.com>
----
- glx/createcontext.c | 2 +-
- glx/glxcmds.c | 14 +++++++-------
- glx/glxcontext.h | 10 +++++-----
- glx/glxext.c | 36 +++++++++++++++++++++++++-----------
- 4 files changed, 38 insertions(+), 24 deletions(-)
-
-diff --git a/glx/createcontext.c b/glx/createcontext.c
-index 13d21cc..78792da 100644
---- a/glx/createcontext.c
-+++ b/glx/createcontext.c
-@@ -320,7 +320,7 @@ __glXDisp_CreateContextAttribsARB(__GLXclientState * cl, GLbyte * pc)
- ctx->id = req->context;
- ctx->share_id = req->shareList;
- ctx->idExists = True;
-- ctx->isCurrent = False;
-+ ctx->currentClient = False;
- ctx->isDirect = req->isDirect;
- ctx->hasUnflushedCommands = False;
- ctx->renderMode = GL_RENDER;
-diff --git a/glx/glxcmds.c b/glx/glxcmds.c
-index 663448a..288b417 100644
---- a/glx/glxcmds.c
-+++ b/glx/glxcmds.c
-@@ -290,7 +290,7 @@ DoCreateContext(__GLXclientState * cl, GLXContextID gcId,
- glxc->id = gcId;
- glxc->share_id = shareList;
- glxc->idExists = GL_TRUE;
-- glxc->isCurrent = GL_FALSE;
-+ glxc->currentClient = NULL;
- glxc->isDirect = isDirect;
- glxc->hasUnflushedCommands = GL_FALSE;
- glxc->renderMode = GL_RENDER;
-@@ -398,7 +398,7 @@ __glXDisp_DestroyContext(__GLXclientState * cl, GLbyte * pc)
- return err;
-
- glxc->idExists = GL_FALSE;
-- if (!glxc->isCurrent)
-+ if (!glxc->currentClient)
- FreeResourceByType(req->context, __glXContextRes, FALSE);
-
- return Success;
-@@ -431,7 +431,7 @@ static void
- StopUsingContext(__GLXcontext * glxc)
- {
- if (glxc) {
-- glxc->isCurrent = GL_FALSE;
-+ glxc->currentClient = NULL;
- if (!glxc->idExists) {
- FreeResourceByType(glxc->id, __glXContextRes, FALSE);
- }
-@@ -441,7 +441,7 @@ StopUsingContext(__GLXcontext * glxc)
- static void
- StartUsingContext(__GLXclientState * cl, __GLXcontext * glxc)
- {
-- glxc->isCurrent = GL_TRUE;
-+ glxc->currentClient = cl->client;
- }
-
- /**
-@@ -571,7 +571,7 @@ DoMakeCurrent(__GLXclientState * cl,
-
- if (!validGlxContext(client, contextId, DixUseAccess, &glxc, &error))
- return error;
-- if ((glxc != prevglxc) && glxc->isCurrent) {
-+ if ((glxc != prevglxc) && glxc->currentClient) {
- /* Context is current to somebody else */
- return BadAccess;
- }
-@@ -633,7 +633,7 @@ DoMakeCurrent(__GLXclientState * cl,
- return __glXError(GLXBadContext);
- }
-
-- glxc->isCurrent = GL_TRUE;
-+ glxc->currentClient = client;
- }
-
- StopUsingContext(prevglxc);
-@@ -854,7 +854,7 @@ __glXDisp_CopyContext(__GLXclientState * cl, GLbyte * pc)
- /*
- ** The destination context must not be current for any client.
- */
-- if (dst->isCurrent) {
-+ if (dst->currentClient) {
- client->errorValue = dest;
- return BadAccess;
- }
-diff --git a/glx/glxcontext.h b/glx/glxcontext.h
-index 96a4dd2..fd018d0 100644
---- a/glx/glxcontext.h
-+++ b/glx/glxcontext.h
-@@ -70,6 +70,11 @@ struct __GLXcontext {
- __GLXscreen *pGlxScreen;
-
- /*
-+ ** If this context is current for a client, this will be that client
-+ */
-+ ClientPtr currentClient;
-+
-+ /*
- ** The XID of this context.
- */
- XID id;
-@@ -85,11 +90,6 @@ struct __GLXcontext {
- GLboolean idExists;
-
- /*
-- ** Whether this context is current for some client.
-- */
-- GLboolean isCurrent;
--
-- /*
- ** Whether this context is a direct rendering context.
- */
- GLboolean isDirect;
-diff --git a/glx/glxext.c b/glx/glxext.c
-index 1bb884f..534c791 100644
---- a/glx/glxext.c
-+++ b/glx/glxext.c
-@@ -88,16 +88,15 @@ __glXResetLargeCommandStatus(__GLXclientState * cl)
- }
-
- /*
--** This procedure is called when the client who created the context goes
--** away OR when glXDestroyContext is called. In either case, all we do is
--** flag that the ID is no longer valid, and (maybe) free the context.
--** use.
--*/
-+ * This procedure is called when the client who created the context goes away
-+ * OR when glXDestroyContext is called. In either case, all we do is flag that
-+ * the ID is no longer valid, and (maybe) free the context.
-+ */
- static int
- ContextGone(__GLXcontext * cx, XID id)
- {
- cx->idExists = GL_FALSE;
-- if (!cx->isCurrent) {
-+ if (!cx->currentClient) {
- __glXFreeContext(cx);
- }
-
-@@ -131,9 +130,10 @@ DrawableGone(__GLXdrawable * glxPriv, XID xid)
-
- for (c = glxAllContexts; c; c = next) {
- next = c->next;
-- if (c->isCurrent && (c->drawPriv == glxPriv || c->readPriv == glxPriv)) {
-+ if (c->currentClient &&
-+ (c->drawPriv == glxPriv || c->readPriv == glxPriv)) {
- (*c->loseCurrent) (c);
-- c->isCurrent = GL_FALSE;
-+ c->currentClient = NULL;
- }
- if (c->drawPriv == glxPriv)
- c->drawPriv = NULL;
-@@ -187,14 +187,14 @@ __glXRemoveFromContextList(__GLXcontext * cx)
- GLboolean
- __glXFreeContext(__GLXcontext * cx)
- {
-- if (cx->idExists || cx->isCurrent)
-+ if (cx->idExists || cx->currentClient)
- return GL_FALSE;
-
-+ __glXRemoveFromContextList(cx);
-+
- free(cx->feedbackBuf);
- free(cx->selectBuf);
-
-- __glXRemoveFromContextList(cx);
--
- /* We can get here through both regular dispatching from
- * __glXDispatch() or as a callback from the resource manager. In
- * the latter case we need to lift the DRI lock manually. */
-@@ -271,6 +271,7 @@ glxClientCallback(CallbackListPtr *list, pointer closure, pointer data)
- NewClientInfoRec *clientinfo = (NewClientInfoRec *) data;
- ClientPtr pClient = clientinfo->client;
- __GLXclientState *cl = glxGetClient(pClient);
-+ __GLXcontext *c, *next;
-
- switch (pClient->clientState) {
- case ClientStateRunning:
-@@ -282,6 +283,19 @@ glxClientCallback(CallbackListPtr *list, pointer closure, pointer data)
- break;
-
- case ClientStateGone:
-+ /*
-+ * reap any remaining contexts. we're running just before
-+ * FreeClientResources, so all we need to do is detach the client
-+ * from the context, and ContextGone will do the rest.
-+ */
-+ for (c = glxAllContexts; c; c = next) {
-+ next = c->next;
-+ if (c->currentClient == pClient) {
-+ (*c->loseCurrent) (c);
-+ c->currentClient = NULL;
-+ }
-+ }
-+
- free(cl->returnBuf);
- free(cl->largeCmdBuf);
- free(cl->GLClientextensions);
---
-1.8.3.1
-
-_______________________________________________
-xorg-devel@lists.x.org: X.Org development
-Archives: http://lists.x.org/archives/xorg-devel
-Info: http://lists.x.org/mailman/listinfo/xorg-devel
-
diff --git a/debian/patches/glx-link-against-glapi.patch b/debian/patches/glx-link-against-glapi.patch
deleted file mode 100644
index cda436c..0000000
--- a/debian/patches/glx-link-against-glapi.patch
+++ /dev/null
@@ -1,31 +0,0 @@
-diff --git a/glx/Makefile.am b/glx/Makefile.am
-index 591c4ac..5f91946 100644
---- a/glx/Makefile.am
-+++ b/glx/Makefile.am
-@@ -10,7 +10,7 @@ AM_CFLAGS = \
- @XLIB_CFLAGS@ \
- @LIBDRM_CFLAGS@ \
- @GLX_DEFINES@ \
-- @GLX_ARCH_DEFINES@
-+ @GLX_ARCH_DEFINES@ -lglapi
-
- # none yet
- #sdk_HEADERS =
-diff --git a/glx/glapi.c b/glx/glapi.c
-index ad7329e..8b754e6 100644
---- a/glx/glapi.c
-+++ b/glx/glapi.c
-@@ -80,13 +80,6 @@ static void init_glapi_relocs(void);
- /*@{*/
- #if defined(GLX_USE_TLS)
-
--PUBLIC TLS struct _glapi_table *_glapi_tls_Dispatch = NULL;
--
--PUBLIC TLS void *_glapi_tls_Context;
--
--PUBLIC const struct _glapi_table *_glapi_Dispatch = NULL;
--PUBLIC const void *_glapi_Context = NULL;
--
- #else
-
Reply to: