[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

xorg-server: Changes to 'ubuntu'



 debian/changelog                 |    6 
 debian/control                   |   13 
 debian/patches/series            |    1 
 debian/patches/xmir.patch        | 1619 +++++++++++++++++++++++++++++++++++++++
 debian/rules                     |    3 
 debian/serverminver              |    2 
 debian/xserver-xorg-core.install |    4 
 debian/xserver-xorg-xmir.install |    1 
 8 files changed, 1647 insertions(+), 2 deletions(-)

New commits:
commit 727fbe5c19783153427d612c338af5f998400634
Author: Christopher James Halse Rogers <raof@ubuntu.com>
Date:   Fri Aug 2 20:25:58 2013 +1000

    Version the build-dep on libmirclient-dev to ensure we don't get built until a fixed version is available

diff --git a/debian/control b/debian/control
index c3e5a14..a4ad044 100644
--- a/debian/control
+++ b/debian/control
@@ -81,7 +81,7 @@ Build-Depends:
  xkb-data,
  x11-xkb-utils,
 # XMir
- libmirclient-dev,
+ libmirclient-dev (>= 0.0.8+13.10.20130803) [linux-any],
 Standards-Version: 3.9.3
 Vcs-Git: git://git.debian.org/git/pkg-xorg/xserver/xorg-server
 Vcs-Browser: http://git.debian.org/?p=pkg-xorg/xserver/xorg-server.git

commit 465f528f924a2ee9a4c10ca582f70e84f9a8280e
Author: Christopher James Halse Rogers <raof@ubuntu.com>
Date:   Fri Aug 2 20:16:46 2013 +1000

    Fix damage tracking.
    
    I'm not entirely sure why checking against xorg_list_is_empty was failing,
    but checking against ->damaged is no worse, and works

diff --git a/debian/patches/xmir.patch b/debian/patches/xmir.patch
index 953d82c..71f80a4 100644
--- a/debian/patches/xmir.patch
+++ b/debian/patches/xmir.patch
@@ -1,7 +1,7 @@
 Index: xserver/configure.ac
 ===================================================================
---- xserver.orig/configure.ac	2013-08-02 15:09:08.852352007 +1000
-+++ xserver/configure.ac	2013-08-02 15:09:08.832352006 +1000
+--- xserver.orig/configure.ac	2013-08-02 17:45:27.679768902 +1000
++++ xserver/configure.ac	2013-08-02 17:45:27.671768903 +1000
 @@ -639,6 +639,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])
@@ -36,8 +36,8 @@ Index: xserver/configure.ac
  hw/dmx/doc/Makefile
 Index: xserver/hw/xfree86/Makefile.am
 ===================================================================
---- xserver.orig/hw/xfree86/Makefile.am	2013-08-02 15:09:08.852352007 +1000
-+++ xserver/hw/xfree86/Makefile.am	2013-08-02 15:09:08.836352006 +1000
+--- xserver.orig/hw/xfree86/Makefile.am	2013-08-02 17:45:27.679768902 +1000
++++ xserver/hw/xfree86/Makefile.am	2013-08-02 17:45:27.671768903 +1000
 @@ -25,15 +25,20 @@
  INT10_SUBDIR = int10
  endif
@@ -63,8 +63,8 @@ Index: xserver/hw/xfree86/Makefile.am
  nodist_Xorg_SOURCES = sdksyms.c
 Index: xserver/hw/xfree86/common/xf86Config.c
 ===================================================================
---- xserver.orig/hw/xfree86/common/xf86Config.c	2013-08-02 15:09:08.852352007 +1000
-+++ xserver/hw/xfree86/common/xf86Config.c	2013-08-02 15:09:08.836352006 +1000
+--- xserver.orig/hw/xfree86/common/xf86Config.c	2013-08-02 17:45:27.679768902 +1000
++++ xserver/hw/xfree86/common/xf86Config.c	2013-08-02 17:45:27.671768903 +1000
 @@ -117,6 +117,7 @@
      {.name = "fb",.toLoad = TRUE,.load_opt = NULL},
      {.name = "shadow",.toLoad = TRUE,.load_opt = NULL},
@@ -93,8 +93,8 @@ Index: xserver/hw/xfree86/common/xf86Config.c
           * not be loaded 
 Index: xserver/hw/xfree86/common/xf86Globals.c
 ===================================================================
---- xserver.orig/hw/xfree86/common/xf86Globals.c	2013-08-02 15:09:08.852352007 +1000
-+++ xserver/hw/xfree86/common/xf86Globals.c	2013-08-02 15:09:08.836352006 +1000
+--- xserver.orig/hw/xfree86/common/xf86Globals.c	2013-08-02 17:45:27.679768902 +1000
++++ xserver/hw/xfree86/common/xf86Globals.c	2013-08-02 17:45:27.671768903 +1000
 @@ -206,3 +206,6 @@
  #endif
  RootWinPropPtr *xf86RegisteredPropertiesTable = NULL;
@@ -104,8 +104,8 @@ Index: xserver/hw/xfree86/common/xf86Globals.c
 +const char *mirSocket = NULL;
 Index: xserver/hw/xfree86/common/xf86Init.c
 ===================================================================
---- xserver.orig/hw/xfree86/common/xf86Init.c	2013-08-02 15:09:08.852352007 +1000
-+++ xserver/hw/xfree86/common/xf86Init.c	2013-08-02 15:11:54.768358939 +1000
+--- xserver.orig/hw/xfree86/common/xf86Init.c	2013-08-02 17:45:27.679768902 +1000
++++ xserver/hw/xfree86/common/xf86Init.c	2013-08-02 17:45:27.671768903 +1000
 @@ -554,7 +554,7 @@
           * needed at this early stage.
           */
@@ -178,8 +178,8 @@ Index: xserver/hw/xfree86/common/xf86Init.c
      ErrorF("\n");
 Index: xserver/hw/xfree86/common/xf86Priv.h
 ===================================================================
---- xserver.orig/hw/xfree86/common/xf86Priv.h	2013-08-02 15:09:08.852352007 +1000
-+++ xserver/hw/xfree86/common/xf86Priv.h	2013-08-02 15:09:08.836352006 +1000
+--- xserver.orig/hw/xfree86/common/xf86Priv.h	2013-08-02 17:45:27.679768902 +1000
++++ xserver/hw/xfree86/common/xf86Priv.h	2013-08-02 17:45:27.671768903 +1000
 @@ -93,6 +93,9 @@
  extern _X_EXPORT const char *xf86VisualNames[];
  extern _X_EXPORT int xf86Verbose;       /* verbosity level */
@@ -193,7 +193,7 @@ Index: xserver/hw/xfree86/common/xf86Priv.h
 Index: xserver/hw/xfree86/xmir/Makefile.am
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ xserver/hw/xfree86/xmir/Makefile.am	2013-08-02 15:09:08.836352006 +1000
++++ xserver/hw/xfree86/xmir/Makefile.am	2013-08-02 17:45:27.671768903 +1000
 @@ -0,0 +1,26 @@
 +INCLUDES =					\
 +	$(XORG_INCS)                            \
@@ -224,7 +224,7 @@ Index: xserver/hw/xfree86/xmir/Makefile.am
 Index: xserver/hw/xfree86/xmir/xmir-output.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ xserver/hw/xfree86/xmir/xmir-output.c	2013-08-02 15:09:08.840352007 +1000
++++ xserver/hw/xfree86/xmir/xmir-output.c	2013-08-02 17:45:27.671768903 +1000
 @@ -0,0 +1,225 @@
 +/*
 + * Copyright © 2012 Canonical, Inc
@@ -454,7 +454,7 @@ Index: xserver/hw/xfree86/xmir/xmir-output.c
 Index: xserver/hw/xfree86/xmir/xmir-private.h
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ xserver/hw/xfree86/xmir/xmir-private.h	2013-08-02 15:09:08.840352007 +1000
++++ xserver/hw/xfree86/xmir/xmir-private.h	2013-08-02 17:45:27.671768903 +1000
 @@ -0,0 +1,90 @@
 +/*
 + * Copyright © 2012 Canonical, Inc
@@ -549,7 +549,7 @@ Index: xserver/hw/xfree86/xmir/xmir-private.h
 Index: xserver/hw/xfree86/xmir/xmir-thread-proxy.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ xserver/hw/xfree86/xmir/xmir-thread-proxy.c	2013-08-02 15:09:08.840352007 +1000
++++ xserver/hw/xfree86/xmir/xmir-thread-proxy.c	2013-08-02 17:45:27.671768903 +1000
 @@ -0,0 +1,117 @@
 +/*
 + * Copyright © 2012 Canonical, Inc
@@ -671,8 +671,8 @@ Index: xserver/hw/xfree86/xmir/xmir-thread-proxy.c
 Index: xserver/hw/xfree86/xmir/xmir-window.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ xserver/hw/xfree86/xmir/xmir-window.c	2013-08-02 15:09:08.840352007 +1000
-@@ -0,0 +1,324 @@
++++ xserver/hw/xfree86/xmir/xmir-window.c	2013-08-02 19:41:11.403465612 +1000
+@@ -0,0 +1,323 @@
 +/*
 + * Copyright © 2012 Canonical, Inc
 + *
@@ -824,10 +824,9 @@ Index: xserver/hw/xfree86/xmir/xmir-window.c
 +{
 +    xmir_window *xmir_win = xmir_window_get(win);
 +
-+    if (xorg_list_is_empty(&xmir_win->link_damage))
++    if (!xmir_win->damaged)
 +	    return (RegionPtr)&xmir_empty_region;
-+
-+    if (xmir_win->damaged) {
++    else {
 +	    RegionPtr damage = DamageRegion(xmir_win->damage);
 +	    int i;
 +
@@ -1000,7 +999,7 @@ Index: xserver/hw/xfree86/xmir/xmir-window.c
 Index: xserver/hw/xfree86/xmir/xmir.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ xserver/hw/xfree86/xmir/xmir.c	2013-08-02 15:09:08.840352007 +1000
++++ xserver/hw/xfree86/xmir/xmir.c	2013-08-02 17:45:27.675768903 +1000
 @@ -0,0 +1,217 @@
 +/*
 + * Copyright © 2012 Canonical, Inc
@@ -1222,7 +1221,7 @@ Index: xserver/hw/xfree86/xmir/xmir.c
 Index: xserver/hw/xfree86/xmir/xmir.h
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ xserver/hw/xfree86/xmir/xmir.h	2013-08-02 15:09:08.840352007 +1000
++++ xserver/hw/xfree86/xmir/xmir.h	2013-08-02 17:45:27.675768903 +1000
 @@ -0,0 +1,95 @@
 +/*
 + * Copyright © 2012 Canonical, Inc
@@ -1321,8 +1320,8 @@ Index: xserver/hw/xfree86/xmir/xmir.h
 +#endif /* _XMIR_H */
 Index: xserver/include/list.h
 ===================================================================
---- xserver.orig/include/list.h	2013-08-02 15:09:08.852352007 +1000
-+++ xserver/include/list.h	2013-08-02 15:09:08.840352007 +1000
+--- xserver.orig/include/list.h	2013-08-02 17:45:27.679768902 +1000
++++ xserver/include/list.h	2013-08-02 17:45:27.675768903 +1000
 @@ -184,6 +184,14 @@
      prev->next = next;
  }
@@ -1340,8 +1339,8 @@ Index: xserver/include/list.h
   * the pointers to/from this element so it is removed from the list. It does
 Index: xserver/include/xorg-server.h.in
 ===================================================================
---- xserver.orig/include/xorg-server.h.in	2013-08-02 15:09:08.852352007 +1000
-+++ xserver/include/xorg-server.h.in	2013-08-02 15:09:08.840352007 +1000
+--- xserver.orig/include/xorg-server.h.in	2013-08-02 17:45:27.679768902 +1000
++++ xserver/include/xorg-server.h.in	2013-08-02 17:45:27.675768903 +1000
 @@ -212,4 +212,7 @@
  #define _XSERVER64 1
  #endif
@@ -1352,8 +1351,8 @@ Index: xserver/include/xorg-server.h.in
  #endif /* _XORG_SERVER_H_ */
 Index: xserver/miext/damage/damage.c
 ===================================================================
---- xserver.orig/miext/damage/damage.c	2013-08-02 15:09:08.852352007 +1000
-+++ xserver/miext/damage/damage.c	2013-08-02 15:09:08.844352007 +1000
+--- xserver.orig/miext/damage/damage.c	2013-08-02 17:45:27.679768902 +1000
++++ xserver/miext/damage/damage.c	2013-08-02 17:45:27.675768903 +1000
 @@ -123,18 +123,14 @@
  damageReportDamagePostRendering(DamagePtr pDamage, RegionPtr pOldDamage,
                                  RegionPtr pDamageRegion)
@@ -1414,8 +1413,8 @@ Index: xserver/miext/damage/damage.c
  #if DAMAGE_DEBUG_ENABLE
 Index: xserver/test/Makefile.am
 ===================================================================
---- xserver.orig/test/Makefile.am	2013-08-02 15:09:08.852352007 +1000
-+++ xserver/test/Makefile.am	2013-08-02 15:09:08.844352007 +1000
+--- xserver.orig/test/Makefile.am	2013-08-02 17:45:27.679768902 +1000
++++ xserver/test/Makefile.am	2013-08-02 17:45:27.675768903 +1000
 @@ -6,7 +6,12 @@
  # For now, requires xf86 ddx, could be adjusted to use another
  SUBDIRS += xi2
@@ -1442,7 +1441,7 @@ Index: xserver/test/Makefile.am
 Index: xserver/test/xmir-thread-proxy.c
 ===================================================================
 --- /dev/null	1970-01-01 00:00:00.000000000 +0000
-+++ xserver/test/xmir-thread-proxy.c	2013-08-02 15:09:08.844352007 +1000
++++ xserver/test/xmir-thread-proxy.c	2013-08-02 17:45:27.675768903 +1000
 @@ -0,0 +1,154 @@
 +/*
 + * Copyright © 2012 Canonical, Inc
@@ -1600,8 +1599,8 @@ Index: xserver/test/xmir-thread-proxy.c
 +}
 Index: xserver/hw/xfree86/common/xf86Helper.c
 ===================================================================
---- xserver.orig/hw/xfree86/common/xf86Helper.c	2013-08-02 15:09:07.884351967 +1000
-+++ xserver/hw/xfree86/common/xf86Helper.c	2013-08-02 15:11:54.768358939 +1000
+--- xserver.orig/hw/xfree86/common/xf86Helper.c	2013-08-02 17:45:27.679768902 +1000
++++ xserver/hw/xfree86/common/xf86Helper.c	2013-08-02 17:45:27.675768903 +1000
 @@ -100,7 +100,14 @@
          if (xf86DriverList[drvIndex]->module)
              UnloadModule(xf86DriverList[drvIndex]->module);

commit cda9ecfaf670e424845bc9d9933c6e3d85da77d9
Author: Christopher James Halse Rogers <raof@ubuntu.com>
Date:   Fri Aug 2 15:13:21 2013 +1000

    Bump serverminver to ensure XMir availability

diff --git a/debian/serverminver b/debian/serverminver
index 0f9556a..08551ff 100644
--- a/debian/serverminver
+++ b/debian/serverminver
@@ -1,3 +1,3 @@
-2:1.13.99.901
+2:1.14.2-0ubuntu4~
 ABI_VIDEODRV_VERSION:14.1
 ABI_XINPUT_VERSION:19.1

commit 0bb30f5c354664c0ab696a9ac47b45c38f9a74f6
Author: Christopher James Halse Rogers <raof@ubuntu.com>
Date:   Fri Aug 2 15:13:02 2013 +1000

    Fix xf86NumDrivers again

diff --git a/debian/patches/xmir.patch b/debian/patches/xmir.patch
index f8b094a..953d82c 100644
--- a/debian/patches/xmir.patch
+++ b/debian/patches/xmir.patch
@@ -1,8 +1,8 @@
-diff --git a/configure.ac b/configure.ac
-index c6ecba4..cbba229 100644
---- a/configure.ac
-+++ b/configure.ac
-@@ -635,6 +635,7 @@ AC_ARG_ENABLE(windowswm,      AS_HELP_STRING([--enable-windowswm], [Build XWin w
+Index: xserver/configure.ac
+===================================================================
+--- xserver.orig/configure.ac	2013-08-02 15:09:08.852352007 +1000
++++ xserver/configure.ac	2013-08-02 15:09:08.832352006 +1000
+@@ -639,6 +639,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])
@@ -10,7 +10,7 @@ index c6ecba4..cbba229 100644
  
  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
+@@ -1152,6 +1153,15 @@
  	SDK_REQUIRED_MODULES="$SDK_REQUIRED_MODULES $XINERAMAPROTO"
  fi
  
@@ -26,7 +26,7 @@ index c6ecba4..cbba229 100644
  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
+@@ -2300,6 +2310,7 @@
  hw/xfree86/utils/man/Makefile
  hw/xfree86/utils/cvt/Makefile
  hw/xfree86/utils/gtf/Makefile
@@ -34,11 +34,11 @@ index c6ecba4..cbba229 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
+Index: xserver/hw/xfree86/Makefile.am
+===================================================================
+--- xserver.orig/hw/xfree86/Makefile.am	2013-08-02 15:09:08.852352007 +1000
++++ xserver/hw/xfree86/Makefile.am	2013-08-02 15:09:08.836352006 +1000
+@@ -25,15 +25,20 @@
  INT10_SUBDIR = int10
  endif
  
@@ -61,11 +61,11 @@ 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[] = {
+Index: xserver/hw/xfree86/common/xf86Config.c
+===================================================================
+--- xserver.orig/hw/xfree86/common/xf86Config.c	2013-08-02 15:09:08.852352007 +1000
++++ xserver/hw/xfree86/common/xf86Config.c	2013-08-02 15:09:08.836352006 +1000
+@@ -117,6 +117,7 @@
      {.name = "fb",.toLoad = TRUE,.load_opt = NULL},
      {.name = "shadow",.toLoad = TRUE,.load_opt = NULL},
  #endif
@@ -73,7 +73,7 @@ index 74d5ed3..538ba4b 100644
      {.name = NULL,.toLoad = FALSE,.load_opt = NULL}
  };
  
-@@ -260,6 +261,17 @@ xf86ModulelistFromConfig(pointer **optlist)
+@@ -259,6 +260,17 @@
          return NULL;
      }
  
@@ -91,22 +91,31 @@ 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/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;
+Index: xserver/hw/xfree86/common/xf86Globals.c
+===================================================================
+--- xserver.orig/hw/xfree86/common/xf86Globals.c	2013-08-02 15:09:08.852352007 +1000
++++ xserver/hw/xfree86/common/xf86Globals.c	2013-08-02 15:09:08.836352006 +1000
+@@ -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/xf86Init.c b/hw/xfree86/common/xf86Init.c
-index 91ec4c8..1e5415b 100644
---- a/hw/xfree86/common/xf86Init.c
-+++ b/hw/xfree86/common/xf86Init.c
-@@ -541,6 +541,13 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv)
+Index: xserver/hw/xfree86/common/xf86Init.c
+===================================================================
+--- xserver.orig/hw/xfree86/common/xf86Init.c	2013-08-02 15:09:08.852352007 +1000
++++ xserver/hw/xfree86/common/xf86Init.c	2013-08-02 15:11:54.768358939 +1000
+@@ -554,7 +554,7 @@
+          * needed at this early stage.
+          */
+ 
+-        for (i = 0; i < xf86NumDrivers; i++) {
++        for (i = 0; i < xf86NumDrivers; ) {
+             xorgHWFlags flags = HW_IO;
+ 
+             if (xf86DriverList[i]->Identify != NULL)
+@@ -565,11 +565,20 @@
                                                GET_REQUIRED_HW_INTERFACES,
                                                &flags);
  
@@ -120,7 +129,27 @@ index 91ec4c8..1e5415b 100644
              if (NEED_IO_ENABLED(flags))
                  want_hw_access = TRUE;
  
-@@ -1454,6 +1461,17 @@ ddxProcessArgument(int argc, char **argv, int i)
+             if (!(flags & HW_SKIP_CONSOLE))
+                 xorgHWOpenConsole = TRUE;
++
++            i++;
+         }
+ 
+         if (xorgHWOpenConsole)
+@@ -662,9 +671,11 @@
+         }
+ 
+         /* Remove (unload) drivers that are not required */
+-        for (i = 0; i < xf86NumDrivers; i++)
++        for (i = 0; i < xf86NumDrivers; )
+             if (xf86DriverList[i] && xf86DriverList[i]->refCount <= 0)
+                 xf86DeleteDriver(i);
++            else
++                i++;
+ 
+         /*
+          * At this stage we know how many screens there are.
+@@ -1490,6 +1501,17 @@
          xf86Info.ShareVTs = TRUE;
          return 1;
      }
@@ -138,7 +167,7 @@ index 91ec4c8..1e5415b 100644
  
      /* OS-specific processing */
      return xf86ProcessArgument(argc, argv, i);
-@@ -1527,6 +1545,8 @@ ddxUseMsg(void)
+@@ -1563,6 +1585,8 @@
      ErrorF
          ("-novtswitch            don't automatically switch VT at reset & exit\n");
      ErrorF("-sharevts              share VTs with another X server\n");
@@ -147,11 +176,11 @@ index 91ec4c8..1e5415b 100644
      /* OS-specific usage */
      xf86UseMsg();
      ErrorF("\n");
-diff --git a/hw/xfree86/common/xf86Priv.h b/hw/xfree86/common/xf86Priv.h
-index 58cfe0a..4630e9e 100644
---- a/hw/xfree86/common/xf86Priv.h
-+++ b/hw/xfree86/common/xf86Priv.h
-@@ -91,6 +91,9 @@ extern _X_EXPORT int xf86NumScreens;
+Index: xserver/hw/xfree86/common/xf86Priv.h
+===================================================================
+--- xserver.orig/hw/xfree86/common/xf86Priv.h	2013-08-02 15:09:08.852352007 +1000
++++ xserver/hw/xfree86/common/xf86Priv.h	2013-08-02 15:09:08.836352006 +1000
+@@ -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 */
@@ -161,11 +190,10 @@ index 58cfe0a..4630e9e 100644
  
  extern _X_EXPORT RootWinPropPtr *xf86RegisteredPropertiesTable;
  
-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
+Index: xserver/hw/xfree86/xmir/Makefile.am
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ xserver/hw/xfree86/xmir/Makefile.am	2013-08-02 15:09:08.836352006 +1000
 @@ -0,0 +1,26 @@
 +INCLUDES =					\
 +	$(XORG_INCS)                            \
@@ -193,11 +221,10 @@ 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..e62c7fb
---- /dev/null
-+++ b/hw/xfree86/xmir/xmir-output.c
+Index: xserver/hw/xfree86/xmir/xmir-output.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ xserver/hw/xfree86/xmir/xmir-output.c	2013-08-02 15:09:08.840352007 +1000
 @@ -0,0 +1,225 @@
 +/*
 + * Copyright © 2012 Canonical, Inc
@@ -424,11 +451,10 @@ index 0000000..e62c7fb
 +  
 +    return TRUE;
 +}
-diff --git a/hw/xfree86/xmir/xmir-private.h b/hw/xfree86/xmir/xmir-private.h
-new file mode 100644
-index 0000000..7a518a4
---- /dev/null
-+++ b/hw/xfree86/xmir/xmir-private.h
+Index: xserver/hw/xfree86/xmir/xmir-private.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ xserver/hw/xfree86/xmir/xmir-private.h	2013-08-02 15:09:08.840352007 +1000
 @@ -0,0 +1,90 @@
 +/*
 + * Copyright © 2012 Canonical, Inc
@@ -520,11 +546,10 @@ index 0000000..7a518a4
 +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..7464644
---- /dev/null
-+++ b/hw/xfree86/xmir/xmir-thread-proxy.c
+Index: xserver/hw/xfree86/xmir/xmir-thread-proxy.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ xserver/hw/xfree86/xmir/xmir-thread-proxy.c	2013-08-02 15:09:08.840352007 +1000
 @@ -0,0 +1,117 @@
 +/*
 + * Copyright © 2012 Canonical, Inc
@@ -643,11 +668,10 @@ index 0000000..7464644
 +	}
 +}
 +
-diff --git a/hw/xfree86/xmir/xmir-window.c b/hw/xfree86/xmir/xmir-window.c
-new file mode 100644
-index 0000000..0c906e2
---- /dev/null
-+++ b/hw/xfree86/xmir/xmir-window.c
+Index: xserver/hw/xfree86/xmir/xmir-window.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ xserver/hw/xfree86/xmir/xmir-window.c	2013-08-02 15:09:08.840352007 +1000
 @@ -0,0 +1,324 @@
 +/*
 + * Copyright © 2012 Canonical, Inc
@@ -973,11 +997,10 @@ index 0000000..0c906e2
 +
 +    return TRUE;
 +}
-diff --git a/hw/xfree86/xmir/xmir.c b/hw/xfree86/xmir/xmir.c
-new file mode 100644
-index 0000000..6e2ebb8
---- /dev/null
-+++ b/hw/xfree86/xmir/xmir.c
+Index: xserver/hw/xfree86/xmir/xmir.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ xserver/hw/xfree86/xmir/xmir.c	2013-08-02 15:09:08.840352007 +1000
 @@ -0,0 +1,217 @@
 +/*
 + * Copyright © 2012 Canonical, Inc
@@ -1196,11 +1219,10 @@ index 0000000..6e2ebb8
 +xMirTeardown(pointer module)
 +{
 +}
-diff --git a/hw/xfree86/xmir/xmir.h b/hw/xfree86/xmir/xmir.h
-new file mode 100644
-index 0000000..573309d
---- /dev/null
-+++ b/hw/xfree86/xmir/xmir.h
+Index: xserver/hw/xfree86/xmir/xmir.h
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ xserver/hw/xfree86/xmir/xmir.h	2013-08-02 15:09:08.840352007 +1000
 @@ -0,0 +1,95 @@
 +/*
 + * Copyright © 2012 Canonical, Inc
@@ -1297,11 +1319,11 @@ index 0000000..573309d
 +xmir_screen_for_each_damaged_window(xmir_screen *xmir, xmir_handle_window_damage_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)
+Index: xserver/include/list.h
+===================================================================
+--- xserver.orig/include/list.h	2013-08-02 15:09:08.852352007 +1000
++++ xserver/include/list.h	2013-08-02 15:09:08.840352007 +1000
+@@ -184,6 +184,14 @@
      prev->next = next;
  }
  
@@ -1316,10 +1338,10 @@ 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
+Index: xserver/include/xorg-server.h.in
+===================================================================
+--- xserver.orig/include/xorg-server.h.in	2013-08-02 15:09:08.852352007 +1000
++++ xserver/include/xorg-server.h.in	2013-08-02 15:09:08.840352007 +1000
 @@ -212,4 +212,7 @@
  #define _XSERVER64 1
  #endif
@@ -1328,11 +1350,11 @@ index 81935be..c9cd4e8 100644
 +#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
+Index: xserver/miext/damage/damage.c
+===================================================================
+--- xserver.orig/miext/damage/damage.c	2013-08-02 15:09:08.852352007 +1000
++++ xserver/miext/damage/damage.c	2013-08-02 15:09:08.844352007 +1000
+@@ -123,18 +123,14 @@
  damageReportDamagePostRendering(DamagePtr pDamage, RegionPtr pOldDamage,
                                  RegionPtr pDamageRegion)
  {
@@ -1353,7 +1375,7 @@ index a98c20e..a1daebb 100644
          RegionNull(&tmpRegion);
          RegionSubtract(&tmpRegion, pDamageRegion, pOldDamage);
          if (RegionNotEmpty(&tmpRegion)) {
-@@ -143,25 +139,31 @@ damageReportDamagePostRendering(DamagePtr pDamage, RegionPtr pOldDamage,
+@@ -143,25 +139,31 @@
          }
          RegionUninit(&tmpRegion);
          break;
@@ -1390,11 +1412,11 @@ index a98c20e..a1daebb 100644
  }
  
  #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
+Index: xserver/test/Makefile.am
+===================================================================
+--- xserver.orig/test/Makefile.am	2013-08-02 15:09:08.852352007 +1000
++++ xserver/test/Makefile.am	2013-08-02 15:09:08.844352007 +1000
+@@ -6,7 +6,12 @@
  # 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
@@ -1408,7 +1430,7 @@ index 34f53fc..d1a0f27 100644
  check_LTLIBRARIES = libxservertest.la
  
  TESTS=$(noinst_PROGRAMS)
-@@ -38,6 +43,8 @@ touch_LDADD=$(TEST_LDADD)
+@@ -38,6 +43,8 @@
  signal_logging_LDADD=$(TEST_LDADD)
  hashtabletest_LDADD=$(TEST_LDADD) $(top_srcdir)/Xext/hashtable.c
  os_LDADD=$(TEST_LDADD)
@@ -1417,11 +1439,10 @@ 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
+Index: xserver/test/xmir-thread-proxy.c
+===================================================================
+--- /dev/null	1970-01-01 00:00:00.000000000 +0000
++++ xserver/test/xmir-thread-proxy.c	2013-08-02 15:09:08.844352007 +1000
 @@ -0,0 +1,154 @@
 +/*
 + * Copyright © 2012 Canonical, Inc
@@ -1577,3 +1598,23 @@ index 0000000..7cf19cf
 +	xmir_test_many_threads_to_eventloop();
 +	xmir_test_refuses_to_marshall_too_large_msg();
 +}
+Index: xserver/hw/xfree86/common/xf86Helper.c
+===================================================================
+--- xserver.orig/hw/xfree86/common/xf86Helper.c	2013-08-02 15:09:07.884351967 +1000
++++ xserver/hw/xfree86/common/xf86Helper.c	2013-08-02 15:11:54.768358939 +1000
+@@ -100,7 +100,14 @@
+         if (xf86DriverList[drvIndex]->module)
+             UnloadModule(xf86DriverList[drvIndex]->module);
+         free(xf86DriverList[drvIndex]);
+-        xf86DriverList[drvIndex] = NULL;
++
++        /* Compact xf86DriverList array, update xf86NumDrivers */
++        xf86NumDrivers--;
++        if(drvIndex != xf86NumDrivers)
++            memmove(xf86DriverList + drvIndex,
++                    xf86DriverList + drvIndex + 1,
++                    sizeof(DriverPtr) * (xf86NumDrivers - drvIndex));
++        xf86DriverList = realloc(xf86DriverList, xf86NumDrivers * sizeof(DriverPtr));
+     }
+ }
+ 

commit 7829035be881459b826f1721964037913e02833d
Author: Christopher James Halse Rogers <raof@ubuntu.com>
Date:   Thu Aug 1 13:01:42 2013 +1000

    Add XMir support to archive packages

diff --git a/debian/changelog b/debian/changelog
index b7763a4..e80041d 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,9 @@
+xorg-server (2:1.14.2-0ubuntu4) saucy; urgency=low
+
+  * Add xmir.patch; First upload with XMir support.
+
+ -- Christopher James Halse Rogers <raof@ubuntu.com>  Thu, 01 Aug 2013 13:00:41 +1000
+
 xorg-server (2:1.14.2-0ubuntu3) saucy; urgency=low
 
   * Oops, refresh xf86-detach-scanout, embarassing bug in the for check.
diff --git a/debian/control b/debian/control
index 74c5327..c3e5a14 100644
--- a/debian/control
+++ b/debian/control
@@ -80,6 +80,8 @@ Build-Depends:
 # unit tests
  xkb-data,
  x11-xkb-utils,
+# XMir
+ libmirclient-dev,
 Standards-Version: 3.9.3
 Vcs-Git: git://git.debian.org/git/pkg-xorg/xserver/xorg-server
 Vcs-Browser: http://git.debian.org/?p=pkg-xorg/xserver/xorg-server.git
@@ -184,6 +186,7 @@ Depends:
  libpciaccess-dev,
  libpixman-1-dev (>= 0.21.8),
  mesa-common-dev,
+ libmirclient-dev,
  ${misc:Depends},
 Description: Xorg X server - development files
  This package provides development files for the X.Org ('Xorg') X server.
@@ -355,3 +358,13 @@ Recommends:
 Replaces: xserver-xorg-core (<< 2:1.5.2)
 Description: common files used by various X servers
  This package provides files necessary for all X.Org based X servers.
+
+Package: xserver-xorg-xmir
+Architecture: any
+Depends:
+ ${shlibs:Depends},
+ ${misc:Depends},
+ xserver-xorg-core (= ${binary:Version}),
+Description: Xorg - the X.Org X server (module for running nested in Mir)
+ xserver-xorg-xmir provides an extension module to support running an
+ Xorg as a client of an existing Mir compositor.
diff --git a/debian/patches/series b/debian/patches/series
index 37a75fe..fada62e 100644
--- a/debian/patches/series
+++ b/debian/patches/series
@@ -56,3 +56,4 @@ include-selection-h.patch
 xf86-detach-scanout.patch
 
 aarch64.patch
+xmir.patch
diff --git a/debian/patches/xmir.patch b/debian/patches/xmir.patch
new file mode 100644
index 0000000..f8b094a
--- /dev/null
+++ b/debian/patches/xmir.patch
@@ -0,0 +1,1579 @@
+diff --git a/configure.ac b/configure.ac
+index c6ecba4..cbba229 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -635,6 +635,7 @@ AC_ARG_ENABLE(windowswm,      AS_HELP_STRING([--enable-windowswm], [Build XWin w
+ 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])
+ 
+ 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
+ 	SDK_REQUIRED_MODULES="$SDK_REQUIRED_MODULES $XINERAMAPROTO"
+ fi
+ 
++if test "x$XMIR" != xno; then
++	PKG_CHECK_MODULES([XMIR], [mirclient], [XMIR=yes], [XMIR=no])
++	AC_SUBST([XMIR_LIBS])
++        AC_SUBST([XMIR_CFLAGS])
++        AC_DEFINE(XMIR, 1, [Support Mir nested mode])
++	SDK_REQUIRED_MODULES="$SDK_REQUIRED_MODULES mirclient"
++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
+ hw/xfree86/utils/man/Makefile
+ hw/xfree86/utils/cvt/Makefile
+ hw/xfree86/utils/gtf/Makefile
++hw/xfree86/xmir/Makefile
+ 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
+ INT10_SUBDIR = int10
+ endif
+ 
++if XMIR
++XMIR_SUBDIR = xmir
++endif
++
+ SUBDIRS = common ddc x86emu $(INT10_SUBDIR) os-support parser \
+ 	  ramdac $(VGAHW_SUBDIR) loader modes $(DRI_SUBDIR) \
+ 	  $(DRI2_SUBDIR) . $(VBE_SUBDIR) i2c dixmods \
+-	  fbdevhw shadowfb exa $(XF86UTILS_SUBDIR) doc man
++	  fbdevhw shadowfb exa $(XF86UTILS_SUBDIR) doc man \
++	  $(XMIR_SUBDIR)
+ 
+ DIST_SUBDIRS = common ddc i2c x86emu int10 fbdevhw os-support \
+                parser ramdac shadowfb vbe vgahw \
+                loader dixmods dri dri2 exa modes \
+-	       utils doc man
++	       utils doc man xmir
+ 
+ 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[] = {
+     {.name = "fb",.toLoad = TRUE,.load_opt = NULL},
+     {.name = "shadow",.toLoad = TRUE,.load_opt = NULL},
+ #endif
++    {.name = "xmir", .toLoad = FALSE, .load_opt = NULL},
+     {.name = NULL,.toLoad = FALSE,.load_opt = NULL}
+ };
+ 
+@@ -260,6 +261,17 @@ xf86ModulelistFromConfig(pointer **optlist)
+         return NULL;
+     }
+ 
++    /*
++     * Set the xmir module to autoload if requested.
++     */
++    if (xorgMir) {
++        for (i=0 ; ModuleDefaults[i].name != NULL ; i++) {
++            if (strcmp(ModuleDefaults[i].name, "xmir") == 0) {
++                ModuleDefaults[i].toLoad = TRUE;
++            }
++        }
++    }
++
+     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/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;
+ #endif
+ RootWinPropPtr *xf86RegisteredPropertiesTable = NULL;
+ Bool xorgHWAccess = FALSE;
++Bool xorgMir = FALSE;
++const char *mirID = NULL;
++const char *mirSocket = NULL;
+diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c
+index 91ec4c8..1e5415b 100644
+--- a/hw/xfree86/common/xf86Init.c
++++ b/hw/xfree86/common/xf86Init.c
+@@ -541,6 +541,13 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv)
+                                               GET_REQUIRED_HW_INTERFACES,
+                                               &flags);
+ 
++            if (xorgMir &&
++                (NEED_IO_ENABLED(flags) || !(flags & HW_SKIP_CONSOLE))) {
++                ErrorF("Driver needs flags %lu, incompatible with nested, deleting.\n", flags);
++                xf86DeleteDriver(i);
++                continue;
++            }
++
+             if (NEED_IO_ENABLED(flags))
+                 want_hw_access = TRUE;
+ 
+@@ -1454,6 +1461,17 @@ ddxProcessArgument(int argc, char **argv, int i)
+         xf86Info.ShareVTs = TRUE;
+         return 1;
+     }
++    if (!strcmp(argv[i], "-mir")) {
++        CHECK_FOR_REQUIRED_ARGUMENT();
++        mirID = argv[++i];
++        xorgMir = TRUE;
++        return 2;
++    }
++    if (!strcmp(argv[i], "-mirSocket")) {
++        CHECK_FOR_REQUIRED_ARGUMENT();
++        mirSocket = argv[++i];
++        return 2;
++    }
+ 
+     /* OS-specific processing */
+     return xf86ProcessArgument(argc, argv, i);
+@@ -1527,6 +1545,8 @@ ddxUseMsg(void)
+     ErrorF
+         ("-novtswitch            don't automatically switch VT at reset & exit\n");
+     ErrorF("-sharevts              share VTs with another X server\n");
++    ErrorF
++        ("-mir MirID             run nested in a Mir compositor with app id MirID\n");
+     /* OS-specific usage */
+     xf86UseMsg();
+     ErrorF("\n");
+diff --git a/hw/xfree86/common/xf86Priv.h b/hw/xfree86/common/xf86Priv.h
+index 58cfe0a..4630e9e 100644
+--- a/hw/xfree86/common/xf86Priv.h
++++ b/hw/xfree86/common/xf86Priv.h
+@@ -91,6 +91,9 @@ extern _X_EXPORT int xf86NumScreens;
+ extern _X_EXPORT const char *xf86VisualNames[];
+ extern _X_EXPORT int xf86Verbose;       /* verbosity level */
+ extern _X_EXPORT int xf86LogVerbose;    /* log file verbosity level */
++extern _X_EXPORT Bool xorgMir;
++extern _X_EXPORT const char *mirID;
++extern _X_EXPORT const char *mirSocket;
+ 
+ extern _X_EXPORT RootWinPropPtr *xf86RegisteredPropertiesTable;
+ 
+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 @@
++INCLUDES =					\
++	$(XORG_INCS)                            \
++        -I$(srcdir)/../ddc                      \
++        -I$(srcdir)/../ramdac                   \
++        -I$(srcdir)/../i2c                      \
++        -I$(srcdir)/../parser                   \
++        -I$(srcdir)/../modes
++
++libxmir_la_LTLIBRARIES = libxmir.la
++libxmir_la_CFLAGS = \
++	-DHAVE_XORG_CONFIG_H \
++	$(DRI_CFLAGS) \
++	$(DIX_CFLAGS) $(XORG_CFLAGS) $(LIBDRM_CFLAGS) \
++	$(XMIR_CFLAGS)
++
++libxmir_la_LDFLAGS = -module -avoid-version $(LIBDRM_LIBS) $(XMIR_LIBS)
++libxmir_ladir = $(moduledir)/extensions
++libxmir_la_SOURCES = \
++	xmir.c \
++	xmir-window.c \
++	xmir-output.c \
++	xmir-thread-proxy.c \
++	xmir.h \
++	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..e62c7fb
+--- /dev/null
++++ b/hw/xfree86/xmir/xmir-output.c
+@@ -0,0 +1,225 @@
++/*
++ * Copyright © 2012 Canonical, Inc
++ *
++ * Permission is hereby granted, free of charge, to any person obtaining a
++ * copy of this software and associated documentation files (the "Soft-
++ * ware"), to deal in the Software without restriction, including without
++ * limitation the rights to use, copy, modify, merge, publish, distribute,
++ * and/or sell copies of the Software, and to permit persons to whom the
++ * Software is furnished to do so, provided that the above copyright
++ * notice(s) and this permission notice appear in all copies of the Soft-
++ * ware and that both the above copyright notice(s) and this permission
++ * notice appear in supporting documentation.
++ *
++ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
++ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABIL-
++ * ITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY
++ * RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN
++ * THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSE-
++ * QUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
++ * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
++ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFOR-
++ * MANCE OF THIS SOFTWARE.
++ *
++ * Except as contained in this notice, the name of a copyright holder shall
++ * not be used in advertising or otherwise to promote the sale, use or
++ * other dealings in this Software without prior written authorization of
++ * the copyright holder.
++ *
++ * Authors:
++ *   Christopher James Halse Rogers (christopher.halse.rogers@canonical.com)
++ */
++
++#include <stdlib.h>
++
++#include "xmir-private.h"
++#include "xf86Crtc.h"
++
++static void
++crtc_dpms(xf86CrtcPtr drmmode_crtc, int mode)
++{
++}
++


Reply to: