fix building against X.org 1.13

This commit is contained in:
Dave Airlie 2012-07-19 22:00:47 -04:00
parent 9dada1da81
commit 58c0bdbf7a
3 changed files with 213 additions and 34 deletions

View File

@ -1,6 +1,6 @@
Name: tigervnc
Version: 1.1.0
Release: 6%{?dist}
Release: 7%{?dist}
Summary: A TigerVNC remote display system
Group: User Interface/Desktops
@ -45,6 +45,7 @@ Patch13: tigervnc11-rh692048.patch
Patch16: tigervnc11-xorg111.patch
Patch17: tigervnc11-xorg112.patch
Patch18: tigervnc11-java7.patch
Patch19: tigervnc11-xorg113.patch
%description
Virtual Network Computing (VNC) is a remote display system which
@ -141,6 +142,7 @@ for all in `find . -type f -perm -001`; do
done
patch -p1 -b --suffix .vnc < %{SOURCE7}
%patch17 -p1 -b .xorg112
%patch19 -p1 -b .xorg113
popd
%patch18 -p1 -b .java7
@ -300,6 +302,9 @@ fi
%doc LICENCE.TXT
%changelog
* Thu Jul 19 2012 Dave Airlie <airlied@redhat.com> 1.1.0-7
- fix building against X.org 1.13
* Wed Apr 04 2012 Adam Jackson <ajax@redhat.com> 1.1.0-6
- RHEL exclusion for -server-module on ppc* too

170
tigervnc11-xorg113.patch Normal file
View File

@ -0,0 +1,170 @@
diff -up xserver/hw/vnc/Makefile.am.xorg113 xserver/hw/vnc/Makefile.am
--- xserver/hw/vnc/Makefile.am.xorg113 2012-07-19 21:42:46.297455970 -0400
+++ xserver/hw/vnc/Makefile.am 2012-07-19 21:19:22.526005528 -0400
@@ -62,7 +62,7 @@ EXTRA_DIST = Xvnc.man
BUILT_SOURCES = $(nodist_Xvnc_SOURCES)
fb.h: $(top_srcdir)/fb/fb.h
- cat $(top_srcdir)/fb/fb.h | sed -e 's,and,c_and,' -e 's,xor,c_xor,' > $(srcdir)/fb.h
+ cat $(top_srcdir)/fb/fb.h | sed -e 's,and,c_and,g' -e 's,xor,c_xor,g' > $(srcdir)/fb.h
pixman.h: $(includedir)/pixman-1/pixman.h
cat $(includedir)/pixman-1/pixman.h | sed 's/xor/c_xor/' > $(srcdir)/pixman.h
diff -up xserver/hw/vnc/vncHooks.cc.xorg113 xserver/hw/vnc/vncHooks.cc
--- xserver/hw/vnc/vncHooks.cc.xorg113 2012-07-19 21:31:37.191820942 -0400
+++ xserver/hw/vnc/vncHooks.cc 2012-07-19 21:36:00.327531293 -0400
@@ -116,7 +116,7 @@ static DevPrivateKeyRec vncHooksGCKeyRec
// screen functions
-static Bool vncHooksCloseScreen(int i, ScreenPtr pScreen);
+static Bool vncHooksCloseScreen(ScreenPtr pScreen);
static Bool vncHooksCreateGC(GCPtr pGC);
static void vncHooksCopyWindow(WindowPtr pWin, DDXPointRec ptOldOrg,
RegionPtr pOldRegion);
@@ -133,7 +133,7 @@ static Bool vncHooksDisplayCursor(
DeviceIntPtr pDev,
#endif
ScreenPtr pScreen, CursorPtr cursor);
-static void vncHooksBlockHandler(int i, pointer blockData, pointer pTimeout,
+static void vncHooksBlockHandler(ScreenPtr pScreen_, pointer pTimeout,
pointer pReadmask);
#ifdef RENDER
static void vncHooksComposite(CARD8 op, PicturePtr pSrc, PicturePtr pMask,
@@ -335,7 +335,7 @@ Bool vncHooksInit(ScreenPtr pScreen, Xse
// CloseScreen - unwrap the screen functions and call the original CloseScreen
// function
-static Bool vncHooksCloseScreen(int i, ScreenPtr pScreen_)
+static Bool vncHooksCloseScreen(ScreenPtr pScreen_)
{
SCREEN_UNWRAP(pScreen_, CloseScreen);
@@ -366,7 +366,7 @@ static Bool vncHooksCloseScreen(int i, S
DBGPRINT((stderr,"vncHooksCloseScreen: unwrapped screen functions\n"));
- return (*pScreen->CloseScreen)(i, pScreen);
+ return (*pScreen->CloseScreen)(pScreen);
}
// CreateGC - wrap the "GC funcs"
@@ -531,14 +531,14 @@ static Bool vncHooksDisplayCursor(
// BlockHandler - ignore any changes during the block handler - it's likely
// these are just drawing the cursor.
-static void vncHooksBlockHandler(int i, pointer blockData, pointer pTimeout,
+static void vncHooksBlockHandler(ScreenPtr pScreen_, pointer pTimeout,
pointer pReadmask)
{
- SCREEN_UNWRAP(screenInfo.screens[i], BlockHandler);
+ SCREEN_UNWRAP(pScreen_, BlockHandler);
vncHooksScreen->desktop->ignoreHooks(true);
- (*pScreen->BlockHandler) (i, blockData, pTimeout, pReadmask);
+ (*pScreen->BlockHandler) (pScreen, pTimeout, pReadmask);
vncHooksScreen->desktop->ignoreHooks(false);
diff -up xserver/hw/vnc/xf86vncModule.cc.xorg113 xserver/hw/vnc/xf86vncModule.cc
--- xserver/hw/vnc/xf86vncModule.cc.xorg113 2012-07-19 21:19:27.558942606 -0400
+++ xserver/hw/vnc/xf86vncModule.cc 2012-07-19 21:19:27.574942408 -0400
@@ -53,8 +53,6 @@ ExtensionModule vncExt =
{
vncExtensionInitWithParams,
"VNC",
- NULL,
- NULL,
NULL
};
diff -up xserver/hw/vnc/xorg-version.h.xorg113 xserver/hw/vnc/xorg-version.h
--- xserver/hw/vnc/xorg-version.h.xorg113 2012-07-19 21:19:27.560942582 -0400
+++ xserver/hw/vnc/xorg-version.h 2012-07-19 21:19:27.576942382 -0400
@@ -40,6 +40,8 @@
#define XORG 111
#elif XORG_VERSION_CURRENT < ((1 * 10000000) + (12 * 100000) + (99 * 1000))
#define XORG 112
+#elif XORG_VERSION_CURRENT < ((1 * 10000000) + (13 * 100000) + (99 * 1000))
+#define XORG 113
#else
#error "X.Org newer than 1.10 is not supported"
#endif
diff -up xserver/hw/vnc/xvnc.cc.xorg113 xserver/hw/vnc/xvnc.cc
--- xserver/hw/vnc/xvnc.cc.xorg113 2012-07-19 21:36:33.078121854 -0400
+++ xserver/hw/vnc/xvnc.cc 2012-07-19 21:39:49.685663920 -0400
@@ -267,7 +267,7 @@ OsVendorInit()
}
void
-OsVendorFatalError()
+OsVendorFatalError(const char *f, va_list args)
{
}
@@ -1135,9 +1135,9 @@ static Bool vncRandRSetConfig (ScreenPtr
#endif
static Bool
-vfbCloseScreen(int index, ScreenPtr pScreen)
+vfbCloseScreen(ScreenPtr pScreen)
{
- vfbScreenInfoPtr pvfb = &vfbScreens[index];
+ vfbScreenInfoPtr pvfb = &vfbScreens[pScreen->myNum];
int i;
pScreen->CloseScreen = pvfb->closeScreen;
@@ -1149,13 +1149,13 @@ vfbCloseScreen(int index, ScreenPtr pScr
for (i = 0; i < MAXSCREENS; i++)
InstalledMaps[i] = NULL;
- return pScreen->CloseScreen(index, pScreen);
+ return pScreen->CloseScreen(pScreen);
}
static Bool
-vfbScreenInit(int index, ScreenPtr pScreen, int argc, char **argv)
+vfbScreenInit(ScreenPtr pScreen, int argc, char **argv)
{
- vfbScreenInfoPtr pvfb = &vfbScreens[index];
+ vfbScreenInfoPtr pvfb = &vfbScreens[pScreen->myNum];
int dpi;
int ret;
void *pbits;
@@ -1167,8 +1167,8 @@ vfbScreenInit(int index, ScreenPtr pScre
pbits = vfbAllocateFramebufferMemory(&pvfb->fb);
if (!pbits) return FALSE;
- vncFbptr[index] = pbits;
- vncFbstride[index] = pvfb->fb.paddedWidth;
+ vncFbptr[pScreen->myNum] = pbits;
+ vncFbstride[pScreen->myNum] = pvfb->fb.paddedWidth;
miSetPixmapDepths();
diff -up xserver/include/screenint.h.xorg113 xserver/include/screenint.h
--- xserver/include/screenint.h.xorg113 2012-07-19 21:30:38.258557709 -0400
+++ xserver/include/screenint.h 2012-07-19 21:30:45.415468235 -0400
@@ -72,18 +72,18 @@ extern _X_EXPORT int AddGPUScreen(Bool (
extern _X_EXPORT void RemoveGPUScreen(ScreenPtr pScreen);
extern _X_EXPORT void
-AttachUnboundGPU(ScreenPtr pScreen, ScreenPtr new);
+AttachUnboundGPU(ScreenPtr pScreen, ScreenPtr);
extern _X_EXPORT void
DetachUnboundGPU(ScreenPtr unbound);
extern _X_EXPORT void
-AttachOutputGPU(ScreenPtr pScreen, ScreenPtr new);
+AttachOutputGPU(ScreenPtr pScreen, ScreenPtr);
extern _X_EXPORT void
DetachOutputGPU(ScreenPtr output);
extern _X_EXPORT void
-AttachOffloadGPU(ScreenPtr pScreen, ScreenPtr new);
+AttachOffloadGPU(ScreenPtr pScreen, ScreenPtr);
extern _X_EXPORT void
DetachOffloadGPU(ScreenPtr slave);

View File

@ -1,15 +1,15 @@
diff -up xserver/configure.ac.vnc xserver/configure.ac
--- xserver/configure.ac.vnc 2011-03-22 10:41:05.508614018 +0100
+++ xserver/configure.ac 2011-03-22 10:47:01.592023995 +0100
@@ -30,7 +30,6 @@ AC_INIT([xorg-server], 1.10.0, [https://
RELEASE_DATE="2011-2-25"
--- xserver/configure.ac.vnc 2012-07-19 20:22:21.774770804 -0400
+++ xserver/configure.ac 2012-07-19 20:24:42.293014083 -0400
@@ -30,7 +30,6 @@ AC_INIT([xorg-server], 1.12.99.902, [htt
RELEASE_DATE="2012-07-17"
AC_CONFIG_SRCDIR([Makefile.am])
AM_INIT_AUTOMAKE([foreign dist-bzip2])
-AM_MAINTAINER_MODE
# Require xorg-macros minimum of 1.10 for XORG_CHECK_SGML_DOCTOOLS
# Require xorg-macros minimum of 1.14 for XORG_COMPILER_BRAND in XORG_DEFAULT_OPTIONS
m4_ifndef([XORG_MACROS_VERSION],
@@ -65,6 +64,7 @@ dnl forcing an entire recompile.x
@@ -72,6 +71,7 @@ dnl forcing an entire recompile.x
AC_CONFIG_HEADERS(include/version-config.h)
AM_PROG_AS
@ -17,12 +17,12 @@ diff -up xserver/configure.ac.vnc xserver/configure.ac
AC_PROG_LN_S
AC_LIBTOOL_WIN32_DLL
AC_DISABLE_STATIC
@@ -1510,6 +1510,14 @@ if test "x$XVFB" = xyes; then
@@ -1560,6 +1560,14 @@ if test "x$XVFB" = xyes; then
AC_SUBST([XVFB_SYS_LIBS])
fi
+dnl Xvnc DDX
+AC_SUBST([XVNC_CPPFLAGS], ["-DHAVE_DIX_CONFIG_H $XEXT_INC $FB_INC $MI_INC $RENDER_INC $RANDR_INC"])
+AC_SUBST([XVNC_CPPFLAGS], ["-DHAVE_DIX_CONFIG_H $XEXT_INC $FB_INC $MI_INC $RENDER_INC $RANDR_INC $MIEXT_DAMAGE_INC"])
+AC_SUBST([XVNC_LIBS], ["$FB_LIB $FIXES_LIB $XEXT_LIB $CONFIG_LIB $DBE_LIB $RECORD_LIB $GLX_LIBS $RANDR_LIB $RENDER_LIB $DAMAGE_LIB $MIEXT_SYNC_LIB $MIEXT_DAMAGE_LIB $MIEXT_SHADOW_LIB $XI_LIB $XKB_LIB $XKB_STUB_LIB $COMPOSITE_LIB $MAIN_LIB"])
+AC_SUBST([XVNC_SYS_LIBS], ["$GLX_SYS_LIBS"])
+
@ -32,24 +32,24 @@ diff -up xserver/configure.ac.vnc xserver/configure.ac
dnl Xnest DDX
@@ -1548,6 +1556,8 @@ xorg_bus_linuxpci=no
xorg_bus_bsdpci=no
xorg_bus_sparc=no
@@ -1595,6 +1603,8 @@ if test "x$XORG" = xauto; then
fi
AC_MSG_RESULT([$XORG])
+AC_DEFINE_UNQUOTED(XORG_VERSION_CURRENT, [$VENDOR_RELEASE], [Current Xorg version])
+
if test "x$XORG" = xyes; then
XORG_DDXINCS='-I$(top_srcdir)/hw/xfree86 -I$(top_srcdir)/hw/xfree86/include -I$(top_srcdir)/hw/xfree86/common'
XORG_OSINCS='-I$(top_srcdir)/hw/xfree86/os-support -I$(top_srcdir)/hw/xfree86/os-support/bus -I$(top_srcdir)/os'
@@ -1792,7 +1802,6 @@ if test "x$XORG" = xyes; then
@@ -1813,7 +1823,6 @@ if test "x$XORG" = xyes; then
AC_DEFINE(XORG_SERVER, 1, [Building Xorg server])
AC_DEFINE(XORGSERVER, 1, [Building Xorg server])
AC_DEFINE(XFree86Server, 1, [Building XFree86 server])
AC_DEFINE(XFree86LOADER, 1, [Building loadable XFree86 server])
- AC_DEFINE_UNQUOTED(XORG_VERSION_CURRENT, [$VENDOR_RELEASE], [Current Xorg version])
AC_DEFINE(NEED_XF86_TYPES, 1, [Need XFree86 typedefs])
AC_DEFINE(NEED_XF86_PROTOTYPES, 1, [Need XFree86 helper functions])
AC_DEFINE(__XSERVERNAME__, "Xorg", [Name of X server])
@@ -2254,6 +2263,7 @@ hw/dmx/Makefile
@@ -2279,6 +2288,7 @@ hw/dmx/Makefile
hw/dmx/man/Makefile
hw/vfb/Makefile
hw/vfb/man/Makefile
@ -58,8 +58,8 @@ diff -up xserver/configure.ac.vnc xserver/configure.ac
hw/xnest/man/Makefile
hw/xwin/Makefile
diff -up xserver/hw/Makefile.am.vnc xserver/hw/Makefile.am
--- xserver/hw/Makefile.am.vnc 2011-03-22 10:41:05.528613984 +0100
+++ xserver/hw/Makefile.am 2011-03-22 10:41:05.630613813 +0100
--- xserver/hw/Makefile.am.vnc 2012-07-19 20:22:28.575685781 -0400
+++ xserver/hw/Makefile.am 2012-07-19 20:22:31.483649426 -0400
@@ -33,7 +33,8 @@ SUBDIRS = \
$(XNEST_SUBDIRS) \
$(DMX_SUBDIRS) \
@ -70,22 +70,26 @@ diff -up xserver/hw/Makefile.am.vnc xserver/hw/Makefile.am
DIST_SUBDIRS = dmx xfree86 vfb xnest xwin xquartz kdrive
diff -up xserver/mi/miinitext.c.vnc xserver/mi/miinitext.c
--- xserver/mi/miinitext.c.vnc 2011-03-22 10:41:05.591613878 +0100
+++ xserver/mi/miinitext.c 2011-03-22 10:41:05.630613813 +0100
@@ -263,6 +263,7 @@ extern void DamageExtensionInit(INITARGS
extern void CompositeExtensionInit(INITARGS);
#endif
extern void GEExtensionInit(INITARGS);
+extern void vncExtensionInit(INITARGS);
diff -up xserver/include/extinit.h.vnc xserver/include/extinit.h
--- xserver/include/extinit.h.vnc 2012-07-19 20:25:50.465161815 -0400
+++ xserver/include/extinit.h 2012-07-19 20:25:52.490136499 -0400
@@ -81,6 +81,8 @@ extern void DPMSExtensionInit(void);
extern Bool noGEExtension;
extern void GEExtensionInit(void);
/* The following is only a small first step towards run-time
* configurable extensions.
@@ -433,6 +434,7 @@ InitExtensions(int argc, char *argv[])
#ifdef XF86BIGFONT
if (!noXFree86BigfontExtension) XFree86BigfontExtensionInit();
+extern void vncExtensionInit(void);
+
#ifdef GLXEXT
extern _X_EXPORT Bool noGlxExtension;
extern void GlxExtensionInit(void);
diff -up xserver/mi/miinitext.c.vnc xserver/mi/miinitext.c
--- xserver/mi/miinitext.c.vnc 2012-07-19 20:22:30.000000000 -0400
+++ xserver/mi/miinitext.c 2012-07-19 20:26:48.560435524 -0400
@@ -293,6 +293,7 @@ static ExtensionModule staticExtensions[
#ifdef XSELINUX
{SELinuxExtensionInit, SELINUX_EXTENSION_NAME, &noSELinuxExtension},
#endif
+ vncExtensionInit();
#if !defined(NO_HW_ONLY_EXTS)
#if defined(XF86VIDMODE)
if (!noXFree86VidModeExtension) XFree86VidModeExtensionInit();
+ {vncExtensionInit, "VNC", NULL},
};
static ExtensionModule *ExtensionModuleList = NULL;