From 58c0bdbf7aeb86adfd1a7229b3506ed38cf60b89 Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Thu, 19 Jul 2012 22:00:47 -0400 Subject: [PATCH 1/4] fix building against X.org 1.13 --- tigervnc.spec | 7 +- tigervnc11-xorg113.patch | 170 +++++++++++++++++++++++++++++++++++++++ xserver110.patch | 70 ++++++++-------- 3 files changed, 213 insertions(+), 34 deletions(-) create mode 100644 tigervnc11-xorg113.patch diff --git a/tigervnc.spec b/tigervnc.spec index 9afa612..2f024a8 100644 --- a/tigervnc.spec +++ b/tigervnc.spec @@ -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 1.1.0-7 +- fix building against X.org 1.13 + * Wed Apr 04 2012 Adam Jackson 1.1.0-6 - RHEL exclusion for -server-module on ppc* too diff --git a/tigervnc11-xorg113.patch b/tigervnc11-xorg113.patch new file mode 100644 index 0000000..556d93f --- /dev/null +++ b/tigervnc11-xorg113.patch @@ -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); diff --git a/xserver110.patch b/xserver110.patch index ddf450f..99a162c 100644 --- a/xserver110.patch +++ b/xserver110.patch @@ -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; From 741ca7e5b6955160a622f2f3532abbf0113695ae Mon Sep 17 00:00:00 2001 From: Dennis Gilmore Date: Sat, 21 Jul 2012 18:31:46 -0500 Subject: [PATCH 2/4] - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild --- tigervnc.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/tigervnc.spec b/tigervnc.spec index 2f024a8..10167c1 100644 --- a/tigervnc.spec +++ b/tigervnc.spec @@ -1,6 +1,6 @@ Name: tigervnc Version: 1.1.0 -Release: 7%{?dist} +Release: 8%{?dist} Summary: A TigerVNC remote display system Group: User Interface/Desktops @@ -302,6 +302,9 @@ fi %doc LICENCE.TXT %changelog +* Sat Jul 21 2012 Fedora Release Engineering - 1.1.0-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + * Thu Jul 19 2012 Dave Airlie 1.1.0-7 - fix building against X.org 1.13 From da8577daf80b5b4b1d121eb5d244c30eb5084b61 Mon Sep 17 00:00:00 2001 From: Adam Jackson Date: Mon, 23 Jul 2012 15:29:56 -0400 Subject: [PATCH 3/4] Build with the Composite extension for feature parity with other X servers --- tigervnc.spec | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tigervnc.spec b/tigervnc.spec index 10167c1..f412565 100644 --- a/tigervnc.spec +++ b/tigervnc.spec @@ -1,6 +1,6 @@ Name: tigervnc Version: 1.1.0 -Release: 8%{?dist} +Release: 9%{?dist} Summary: A TigerVNC remote display system Group: User Interface/Desktops @@ -166,7 +166,6 @@ autoreconf -fiv --disable-xorg --disable-xnest --disable-xvfb --disable-dmx \ --disable-xwin --disable-xephyr --disable-kdrive --with-pic \ --disable-static --disable-xinerama \ - --disable-composite \ --with-default-font-path="catalogue:%{_sysconfdir}/X11/fontpath.d,built-ins" \ --with-fontdir=%{_datadir}/X11/fonts \ --with-xkb-output=%{_localstatedir}/lib/xkb \ @@ -302,6 +301,9 @@ fi %doc LICENCE.TXT %changelog +* Mon Jul 23 2012 Adam Jackson 1.1.0-9 +- Build with the Composite extension for feature parity with other X servers + * Sat Jul 21 2012 Fedora Release Engineering - 1.1.0-8 - Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild From d804e0ee1141d076e71f3caa9e2ad954c31ed58d Mon Sep 17 00:00:00 2001 From: Dave Airlie Date: Fri, 10 Aug 2012 14:19:24 +1000 Subject: [PATCH 4/4] fix build against newer X server --- tigervnc.spec | 5 ++++- tigervnc11-xorg113.patch | 25 ------------------------- 2 files changed, 4 insertions(+), 26 deletions(-) diff --git a/tigervnc.spec b/tigervnc.spec index f412565..bce5e30 100644 --- a/tigervnc.spec +++ b/tigervnc.spec @@ -1,6 +1,6 @@ Name: tigervnc Version: 1.1.0 -Release: 9%{?dist} +Release: 10%{?dist} Summary: A TigerVNC remote display system Group: User Interface/Desktops @@ -301,6 +301,9 @@ fi %doc LICENCE.TXT %changelog +* Fri Aug 10 2012 Dave Airlie 1.1.0-10 +- fix build against newer X server + * Mon Jul 23 2012 Adam Jackson 1.1.0-9 - Build with the Composite extension for feature parity with other X servers diff --git a/tigervnc11-xorg113.patch b/tigervnc11-xorg113.patch index 556d93f..d5692e9 100644 --- a/tigervnc11-xorg113.patch +++ b/tigervnc11-xorg113.patch @@ -143,28 +143,3 @@ diff -up xserver/hw/vnc/xvnc.cc.xorg113 xserver/hw/vnc/xvnc.cc 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);