From 27e06a5e2999e4c68d0292c3f4213c956625593d Mon Sep 17 00:00:00 2001
From: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
Date: Mon, 28 Dec 2015 19:55:38 +0100
Subject: library clean-up: Don't build libNX_Xcomposite anymore. Use system's
 libXcomposite shared library.

---
 debian/control                         |  44 ++---
 debian/libnx-xcomposite-dev.install.in |   2 -
 debian/libnx-xcomposite1.install.in    |   1 -
 debian/libnx-xcomposite1.symbols       |  13 --
 debian/rules                           |   1 -
 nx-X11/config/cf/X11.tmpl              |  34 ----
 nx-X11/config/cf/host.def              |   2 -
 nx-X11/include/extensions/Imakefile    |   2 +-
 nx-X11/lib/Imakefile                   |   5 -
 nx-X11/lib/Xcomposite/Imakefile        |  56 ------
 nx-X11/lib/Xcomposite/Xcomposite.c     | 333 ---------------------------------
 nx-X11/lib/Xcomposite/Xcomposite.h     |  71 -------
 nx-X11/lib/Xcomposite/xcompositeint.h  |  66 -------
 nx-X11/programs/Xserver/Imakefile      |   6 +-
 nx-libs.spec                           |  30 +--
 15 files changed, 23 insertions(+), 643 deletions(-)
 delete mode 100644 debian/libnx-xcomposite-dev.install.in
 delete mode 100644 debian/libnx-xcomposite1.install.in
 delete mode 100644 debian/libnx-xcomposite1.symbols
 delete mode 100644 nx-X11/lib/Xcomposite/Imakefile
 delete mode 100644 nx-X11/lib/Xcomposite/Xcomposite.c
 delete mode 100644 nx-X11/lib/Xcomposite/Xcomposite.h
 delete mode 100644 nx-X11/lib/Xcomposite/xcompositeint.h

diff --git a/debian/control b/debian/control
index 8cbb4bc54..ecfd5d82a 100644
--- a/debian/control
+++ b/debian/control
@@ -18,6 +18,7 @@ Build-Depends:
  libxfont-dev,
  libxdmcp-dev,
  libxdamage-dev,
+ libxcomposite-dev,
  libxrandr-dev,
  autoconf,
  pkg-config,
@@ -199,20 +200,17 @@ Multi-Arch: same
 Pre-Depends:
  ${misc:Pre-Depends},
 Depends:
- ${shlibs:Depends},
  ${misc:Depends},
-Breaks: nxlibs (<= 3.5.1),
-        libnx-x11 (<< 2:3.5.0.29-0x2go2~),
-Description: nx-X11 Composite extension library
+Description: nx-X11 Composite extension library (dummy package)
  NX is a software suite which implements very efficient
  compression of the X11 protocol. This increases performance when
  using X applications over a network, especially a slow one.
  .
- libNX_Xcomposite provides an X Window System client interface to the Composite
- extension to the X protocol
+ This package removes the obsoleted libNX_Xcomposite.so.1 library. With
+ recent versions of NX, the system-wide installed libXcomposite gets
+ used.
  .
- The Composite extension allows clients called compositing managers to control
- the final drawing of the screen. Rendering is done into an off-screen buffer.
+ This package can be safely removed.
 
 Package: libnx-xcomposite-dev
 Provides: libnx-xcomposite1-dev
@@ -220,23 +218,17 @@ Section: libdevel
 Architecture: any
 Multi-Arch: same
 Depends:
- libnx-xcomposite1 (= ${binary:Version}),
- nx-x11proto-composite-dev (= ${binary:Version}),
  ${misc:Depends},
-Breaks: nxlibs (<= 3.5.1),
-        libnx-x11-dev (<< 2:3.5.0.29-0x2go2~),
-Description: nx-X11 Composite extension library (development headers)
+Description: nx-X11 Composite extension library (dummy package)
  NX is a software suite which implements very efficient
  compression of the X11 protocol. This increases performance when
  using X applications over a network, especially a slow one.
  .
- libNX_Xcomposite provides an X Window System client interface to the Composite
- extension to the X protocol
- .
- The Composite extension allows clients called compositing managers to control
- the final drawing of the screen. Rendering is done into an off-screen buffer.
+ This package removes the obsoleted headers for the libNX_Xcomposite.so.1
+ library. With recent versions of NX, the system-wide installed
+ libXcomposite gets used.
  .
- This package contains the development headers for this library.
+ This package can be safely removed.
 
 Package: nx-x11proto-composite-dev
 Section: libdevel
@@ -261,22 +253,18 @@ Multi-Arch: same
 Pre-Depends:
  ${misc:Pre-Depends},
 Depends:
- libnx-xcomposite1 (= ${binary:Version}),
  ${misc:Depends},
 Section: debug
-Breaks: nx-x11-dbg (<< 2:3.5.0.29-0x2go2~),
-Description: nx-X11 Composite extension library (debug package)
+Description: nx-X11 Composite extension library (dummy package)
  NX is a software suite which implements very efficient
  compression of the X11 protocol. This increases performance when
  using X applications over a network, especially a slow one.
  .
- libNX_Xcomposite provides an X Window System client interface to the Composite
- extension to the X protocol
+ This package removes the debug symbols for the obsoleted
+ libNX_Xcomposite.so.1 library. With recent versions of NX, the
+ system-wide installed libXcomposite gets used.
  .
- The Composite extension allows clients called compositing managers to control
- the final drawing of the screen. Rendering is done into an off-screen buffer.
- .
- This package contains debug symbols for this library.
+ This package can be safely removed.
 
 Package: libnx-xdamage1
 Architecture: any
diff --git a/debian/libnx-xcomposite-dev.install.in b/debian/libnx-xcomposite-dev.install.in
deleted file mode 100644
index 71451dbcc..000000000
--- a/debian/libnx-xcomposite-dev.install.in
+++ /dev/null
@@ -1,2 +0,0 @@
-usr/lib/*/libNX_Xcomposite.so
-usr/include/*/nx-X11/extensions/Xcomposite.h
diff --git a/debian/libnx-xcomposite1.install.in b/debian/libnx-xcomposite1.install.in
deleted file mode 100644
index ecc2f4237..000000000
--- a/debian/libnx-xcomposite1.install.in
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/*/libNX_Xcomposite.so.*
diff --git a/debian/libnx-xcomposite1.symbols b/debian/libnx-xcomposite1.symbols
deleted file mode 100644
index 22ddc889f..000000000
--- a/debian/libnx-xcomposite1.symbols
+++ /dev/null
@@ -1,13 +0,0 @@
-libNX_Xcomposite.so.1 libnx-xcomposite1 #MINVER#
- XCompositeCreateRegionFromBorderClip@Base 3.5.0.29
- XCompositeExtensionInfo@Base 3.5.0.29
- XCompositeExtensionName@Base 3.5.0.29
- XCompositeFindDisplay@Base 3.5.0.29
- XCompositeNameWindowPixmap@Base 3.5.0.29
- XCompositeQueryExtension@Base 3.5.0.29
- XCompositeQueryVersion@Base 3.5.0.29
- XCompositeRedirectSubwindows@Base 3.5.0.29
- XCompositeRedirectWindow@Base 3.5.0.29
- XCompositeUnredirectSubwindows@Base 3.5.0.29
- XCompositeUnredirectWindow@Base 3.5.0.29
- XCompositeVersion@Base 3.5.0.29
diff --git a/debian/rules b/debian/rules
index b78855033..791b99cf3 100755
--- a/debian/rules
+++ b/debian/rules
@@ -80,7 +80,6 @@ override_dh_auto_build:
 override_dh_strip:
 	dh_strip -plibnx-x11-6 --dbg-package=libnx-x11-6-dbg
 	dh_strip -plibnx-xau6 --dbg-package=libnx-xau6-dbg
-	dh_strip -plibnx-xcomposite1 --dbg-package=libnx-xcomposite1-dbg
 	dh_strip -plibnx-xext6 --dbg-package=libnx-xext6-dbg
 	dh_strip -plibnx-xfixes3 --dbg-package=libnx-xfixes3-dbg
 	dh_strip -plibnx-xinerama1 --dbg-package=libnx-xinerama1-dbg
diff --git a/nx-X11/config/cf/X11.tmpl b/nx-X11/config/cf/X11.tmpl
index f54ff84cc..6f226c3fa 100644
--- a/nx-X11/config/cf/X11.tmpl
+++ b/nx-X11/config/cf/X11.tmpl
@@ -1396,30 +1396,6 @@ ProjectUnsharedLibReferences(XONLY,NX_X11,$(XLIBSRC),XBuildLibDir)
 #define ProfileLibXfixes	NO
 #endif
 
-#if BuildCompositeLibrary
-#ifndef SharedLibXcomposite
-#define SharedLibXcomposite	HasSharedLibraries
-#endif
-#ifndef NormalLibXcomposite
-#define NormalLibXcomposite	(!SharedLibXcomposite || ForceNormalLib)
-#endif
-#ifndef DebugLibXcomposite
-#define DebugLibXcomposite	NO
-#endif
-#ifndef ProfileLibXcomposite
-#define ProfileLibXcomposite	NO
-#endif
-#else
-#undef  SharedLibXcomposite
-#define SharedLibXcomposite	NO
-#undef  NormalLibXcomposite
-#define NormalLibXcomposite	NO
-#undef  DebugLibXcomposite
-#define DebugLibXcomposite	NO
-#undef  ProfileLibXcomposite
-#define ProfileLibXcomposite	NO
-#endif
-
 #ifndef SharedLibXext
 #define SharedLibXext HasSharedLibraries
 #endif
@@ -1476,16 +1452,6 @@ SharedLibReferences(XFIXES,NX_Xfixes,$(XFIXESLIBSRC),SOXFIXESREV,SharedXfixesRev
 ProjectUnsharedLibReferences(XFIXES,NX_Xfixes,$(XFIXESLIBSRC),XBuildLibDir)
 #endif
 
-XCOMPOSITELIBSRC = $(LIBSRC)/Xcomposite
-#if SharedLibXcomposite
-#ifndef SharedXcompositeRev
-#define SharedXcompositeRev 1.0
-#endif
-SharedLibReferences(XCOMPOSITE,NX_Xcomposite,$(XCOMPOSITELIBSRC),SOXCOMPOSITEREV,SharedXcompositeRev)
-#else
-ProjectUnsharedLibReferences(XCOMPOSITE,NX_Xcomposite,$(XCOMPOSITELIBSRC),XBuildLibDir)
-#endif
-
 #ifndef SharedLibXau
 #define SharedLibXau		YES
 #endif
diff --git a/nx-X11/config/cf/host.def b/nx-X11/config/cf/host.def
index 1edf85de9..9e017d189 100644
--- a/nx-X11/config/cf/host.def
+++ b/nx-X11/config/cf/host.def
@@ -125,8 +125,6 @@ XCOMM $XFree86: xc/config/cf/xf86site.def,v 3.186 2003/06/25 18:06:22 eich Exp $
 
 #define BuildXfixesLibrary              YES
 
-#define BuildCompositeLibrary           YES
-
 #define BuildDocs                       NO
 
 #define BuildComposite			YES
diff --git a/nx-X11/include/extensions/Imakefile b/nx-X11/include/extensions/Imakefile
index b7ed23120..7cb4d2c7b 100644
--- a/nx-X11/include/extensions/Imakefile
+++ b/nx-X11/include/extensions/Imakefile
@@ -44,7 +44,7 @@ RENDERHEADERS = render.h renderproto.h
 #if BuildXfixes || BuildXfixesLibrary
 XFIXESHEADERS = xfixeswire.h xfixesproto.h
 #endif
-#if BuildComposite || BuildCompositeLibrary
+#if BuildComposite
 COMPOSITEHEADERS = composite.h compositeproto.h
 #endif
 #if BuildXTrap
diff --git a/nx-X11/lib/Imakefile b/nx-X11/lib/Imakefile
index 20c68f97e..f498baf04 100644
--- a/nx-X11/lib/Imakefile
+++ b/nx-X11/lib/Imakefile
@@ -27,10 +27,6 @@ RENDERLIBDIR = Xrender
 XFIXESLIBDIR = Xfixes
 #endif
 
-#if BuildCompositeLibrary
-COMPOSITELIBDIR = Xcomposite
-#endif
-
 #if BuildXauLib
 XAULIBDIR = Xau
 #endif
@@ -59,7 +55,6 @@ LINTSUBDIRS = \
 	$(XINERAMADIR) \
 	$(RENDERLIBDIR) \
 	$(XFIXESLIBDIR) \
-	$(COMPOSITELIBDIR) \
 	$(NULL)
 
 SUBDIRS = xtrans $(LINTSUBDIRS)
diff --git a/nx-X11/lib/Xcomposite/Imakefile b/nx-X11/lib/Xcomposite/Imakefile
deleted file mode 100644
index 24820c146..000000000
--- a/nx-X11/lib/Xcomposite/Imakefile
+++ /dev/null
@@ -1,56 +0,0 @@
-XCOMM $XdotOrg: xc/lib/Xcomposite/Imakefile,v 1.1 2004/07/31 05:50:39 anholt Exp $
-
-#ifndef NormalLibXcomposite
-#define NormalLibXcomposite YES
-SOXCOMPOSITEREV=1.0.0
-#endif
-
-#ifndef SharedLibXcomposite
-#define SharedLibXcomposite YES
-#endif
-
-#define DoNormalLib NormalLibXcomposite
-#define DoSharedLib SharedLibXcomposite
-#define DoDebugLib DebugLibXcomposite
-#define DoProfileLib ProfileLibXcomposite
-
-#define LibName NX_Xcomposite
-#define SoRev SOXCOMPOSITEREV
-#define IncSubdir nx-X11
-#define IncSubSubdir extensions
-
-#include <Threads.tmpl>
-
-#ifdef SharedXcompositeReqs
-REQUIREDLIBS = SharedXcompositeReqs
-#endif
-
-XCOMPOSITE_VERSION=1.0.0
-
-X_LIBS=-L$(SHLIBDIR) $(XONLYLIB)
-X_CFLAGS=-I$(INCROOT) $(THREADS_DEFINES)
-XCOMPOSITE_LIBS = $(XFIXESLIB) $(XDAMAGELIB)
-XCOMPOSITE_CFLAGS = 
-
-RPATH_CFLAG = HardCodeLibdirFlag
-
-SRCS =	Xcomposite.c
-
-OBJS =	Xcomposite.o
-
-HEADERS = Xcomposite.h
-
-SUBSTVARS=prefix="$(PROJECTROOT)" \
-	  exec_prefix="$(BINDIR)" \
-	  libdir="$(USRLIBDIR)" \
-	  hardcode_libdir_flag_spec="$(RPATH_CFLAG)" \
-	  includedir="$(INCROOT)" \
-	  X_LIBS="$(X_LIBS)" \
-	  X_CFLAGS="$(X_CFLAGS)" \
-	  XCOMPOSITE_LIBS="$(XCOMPOSITE_LIBS)" \
-	  XCOMPOSITE_CFLAGS="$(XCOMPOSITE_CFLAGS)" \
-	  VERSION="$(XCOMPOSITE_VERSION)"
-
-#include <Library.tmpl>
-
-DependTarget()
diff --git a/nx-X11/lib/Xcomposite/Xcomposite.c b/nx-X11/lib/Xcomposite/Xcomposite.c
deleted file mode 100644
index cd10f8ed6..000000000
--- a/nx-X11/lib/Xcomposite/Xcomposite.c
+++ /dev/null
@@ -1,333 +0,0 @@
-/*
- * $Id: Xcomposite.c,v 1.2 2005/07/03 07:00:56 daniels Exp $
- *
- * Copyright © 2003 Keith Packard
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Keith Packard not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  Keith Packard makes no
- * representations about the suitability of this software for any purpose.  It
- * is provided "as is" without express or implied warranty.
- *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL 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
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-#include "xcompositeint.h"
-
-XCompositeExtInfo XCompositeExtensionInfo;
-
-const char XCompositeExtensionName[] = COMPOSITE_NAME;
-
-/*
- * XCompositeExtRemoveDisplay - remove the indicated display from the
- * extension object. (Replaces XextRemoveDisplay.)
- */
-static int 
-XCompositeExtRemoveDisplay (XCompositeExtInfo *extinfo, Display *dpy)
-{
-    XCompositeExtDisplayInfo *info, *prev;
-
-    /*
-     * locate this display and its back link so that it can be removed
-     */
-    _XLockMutex(_Xglobal_lock);
-    prev = NULL;
-    for (info = extinfo->head; info; info = info->next) {
-	if (info->display == dpy) break;
-	prev = info;
-    }
-    if (!info) {
-	_XUnlockMutex(_Xglobal_lock);
-	return 0;		/* hmm, actually an error */
-    }
-
-    /*
-     * remove the display from the list; handles going to zero
-     */
-    if (prev)
-	prev->next = info->next;
-    else
-	extinfo->head = info->next;
-
-    extinfo->ndisplays--;
-    if (info == extinfo->cur) extinfo->cur = NULL;  /* flush cache */
-    _XUnlockMutex(_Xglobal_lock);
-
-    Xfree ((char *) info);
-    return 1;
-}
-
-static int
-XCompositeCloseDisplay (Display *dpy, XExtCodes *codes)
-{
-    return XCompositeExtRemoveDisplay (&XCompositeExtensionInfo, dpy);
-}
-
-/*
- * XCompositeExtAddDisplay - add a display to this extension. (Replaces
- * XextAddDisplay)
- */
-static XCompositeExtDisplayInfo *
-XCompositeExtAddDisplay (XCompositeExtInfo	*extinfo,
-			 Display		*dpy,
-			 const char		*ext_name)
-{
-    XCompositeExtDisplayInfo    *info;
-    int			    ev;
-
-    info = (XCompositeExtDisplayInfo *) Xmalloc (sizeof (XCompositeExtDisplayInfo));
-    if (!info) return NULL;
-    info->display = dpy;
-
-    info->codes = XInitExtension (dpy, ext_name);
-
-    /*
-     * if the server has the extension, then we can initialize the 
-     * appropriate function vectors
-     */
-    if (info->codes) {
-	xCompositeQueryVersionReply	rep;
-	xCompositeQueryVersionReq	*req;
-        XESetCloseDisplay (dpy, info->codes->extension, 
-                           XCompositeCloseDisplay);
-	/*
-	 * Get the version info
-	 */
-	LockDisplay (dpy);
-	GetReq (CompositeQueryVersion, req);
-	req->reqType = info->codes->major_opcode;
-	req->compositeReqType = X_CompositeQueryVersion;
-	req->majorVersion = COMPOSITE_MAJOR;
-	req->minorVersion = COMPOSITE_MINOR;
-	if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) 
-	{
-	    UnlockDisplay (dpy);
-	    SyncHandle ();
-	    return 0;
-	}
-	info->major_version = rep.majorVersion;
-	info->minor_version = rep.minorVersion;
-	UnlockDisplay (dpy);
-    } else {
-	/* The server doesn't have this extension.
-	 * Use a private Xlib-internal extension to hang the close_display
-	 * hook on so that the "cache" (extinfo->cur) is properly cleaned.
-	 * (XBUG 7955)
-	 */
-	XExtCodes *codes = XAddExtension(dpy);
-	if (!codes) {
-	    XFree(info);
-	    return NULL;
-	}
-        XESetCloseDisplay (dpy, codes->extension, XCompositeCloseDisplay);
-    }
-
-    /*
-     * now, chain it onto the list
-     */
-    _XLockMutex(_Xglobal_lock);
-    info->next = extinfo->head;
-    extinfo->head = info;
-    extinfo->cur = info;
-    extinfo->ndisplays++;
-    _XUnlockMutex(_Xglobal_lock);
-    return info;
-}
-
-/*
- * XCompositeExtFindDisplay - look for a display in this extension; keeps a
- * cache of the most-recently used for efficiency. (Replaces
- * XextFindDisplay.)
- */
-static XCompositeExtDisplayInfo *
-XCompositeExtFindDisplay (XCompositeExtInfo *extinfo, 
-		      Display	    *dpy)
-{
-    XCompositeExtDisplayInfo *info;
-
-    /*
-     * see if this was the most recently accessed display
-     */
-    if ((info = extinfo->cur) && info->display == dpy) 
-	return info;
-
-    /*
-     * look for display in list
-     */
-    _XLockMutex(_Xglobal_lock);
-    for (info = extinfo->head; info; info = info->next) {
-	if (info->display == dpy) {
-	    extinfo->cur = info;     /* cache most recently used */
-	    _XUnlockMutex(_Xglobal_lock);
-	    return info;
-	}
-    }
-    _XUnlockMutex(_Xglobal_lock);
-
-    return NULL;
-}
-
-XCompositeExtDisplayInfo *
-XCompositeFindDisplay (Display *dpy)
-{
-    XCompositeExtDisplayInfo *info;
-
-    info = XCompositeExtFindDisplay (&XCompositeExtensionInfo, dpy);
-    if (!info)
-	info = XCompositeExtAddDisplay (&XCompositeExtensionInfo, dpy, 
-				    XCompositeExtensionName);
-    return info;
-}
-    
-
-Bool 
-XCompositeQueryExtension (Display *dpy, int *event_basep, int *error_basep)
-{
-    XCompositeExtDisplayInfo *info = XCompositeFindDisplay (dpy);
-
-    if (XCompositeHasExtension(info)) 
-    {
-	*event_basep = info->codes->first_event;
-	*error_basep = info->codes->first_error;
-	return True;
-    } 
-    else
-	return False;
-}
-
-Status 
-XCompositeQueryVersion (Display *dpy,
-		    int	    *major_versionp,
-		    int	    *minor_versionp)
-{
-    XCompositeExtDisplayInfo	*info = XCompositeFindDisplay (dpy);
-
-    XCompositeCheckExtension (dpy, info, 0);
-    *major_versionp = info->major_version;
-    *minor_versionp = info->minor_version;
-    UnlockDisplay (dpy);
-    SyncHandle ();
-    return 1;
-}
-
-int
-XCompositeVersion (void)
-{
-    return XCOMPOSITE_VERSION;
-}
-
-void
-XCompositeRedirectWindow (Display *dpy, Window window, int update)
-{
-    XCompositeExtDisplayInfo	    *info = XCompositeFindDisplay (dpy);
-    xCompositeRedirectWindowReq	    *req;
-
-    XCompositeSimpleCheckExtension (dpy, info);
-    LockDisplay (dpy);
-    GetReq (CompositeRedirectWindow, req);
-    req->reqType = info->codes->major_opcode;
-    req->compositeReqType = X_CompositeRedirectWindow;
-    req->window = window;
-    req->update = update;
-    UnlockDisplay (dpy);
-    SyncHandle ();
-}
-
-void
-XCompositeRedirectSubwindows (Display *dpy, Window window, int update)
-{
-    XCompositeExtDisplayInfo	    *info = XCompositeFindDisplay (dpy);
-    xCompositeRedirectSubwindowsReq *req;
-
-    XCompositeSimpleCheckExtension (dpy, info);
-    LockDisplay (dpy);
-    GetReq (CompositeRedirectSubwindows, req);
-    req->reqType = info->codes->major_opcode;
-    req->compositeReqType = X_CompositeRedirectSubwindows;
-    req->window = window;
-    req->update = update;
-    UnlockDisplay (dpy);
-    SyncHandle ();
-}
-
-void
-XCompositeUnredirectWindow (Display *dpy, Window window, int update)
-{
-    XCompositeExtDisplayInfo	    *info = XCompositeFindDisplay (dpy);
-    xCompositeUnredirectWindowReq   *req;
-
-    XCompositeSimpleCheckExtension (dpy, info);
-    LockDisplay (dpy);
-    GetReq (CompositeUnredirectWindow, req);
-    req->reqType = info->codes->major_opcode;
-    req->compositeReqType = X_CompositeUnredirectWindow;
-    req->window = window;
-    req->update = update;
-    UnlockDisplay (dpy);
-    SyncHandle ();
-}
-
-void
-XCompositeUnredirectSubwindows (Display *dpy, Window window, int update)
-{
-    XCompositeExtDisplayInfo		*info = XCompositeFindDisplay (dpy);
-    xCompositeUnredirectSubwindowsReq	*req;
-
-    XCompositeSimpleCheckExtension (dpy, info);
-    LockDisplay (dpy);
-    GetReq (CompositeUnredirectSubwindows, req);
-    req->reqType = info->codes->major_opcode;
-    req->compositeReqType = X_CompositeUnredirectSubwindows;
-    req->window = window;
-    req->update = update;
-    UnlockDisplay (dpy);
-    SyncHandle ();
-}
-
-XserverRegion
-XCompositeCreateRegionFromBorderClip (Display *dpy, Window window)
-{
-    XCompositeExtDisplayInfo		    *info = XCompositeFindDisplay (dpy);
-    xCompositeCreateRegionFromBorderClipReq *req;
-    XserverRegion			    region;
-
-    XCompositeCheckExtension (dpy, info, 0);
-    LockDisplay (dpy);
-    GetReq (CompositeCreateRegionFromBorderClip, req);
-    req->reqType = info->codes->major_opcode;
-    req->compositeReqType = X_CompositeCreateRegionFromBorderClip;
-    req->window = window;
-    region = req->region = XAllocID (dpy);
-    UnlockDisplay (dpy);
-    SyncHandle ();
-    return region;
-}
-
-Pixmap
-XCompositeNameWindowPixmap (Display *dpy, Window window)
-{
-    XCompositeExtDisplayInfo	    *info = XCompositeFindDisplay (dpy);
-    xCompositeNameWindowPixmapReq   *req;
-    Pixmap			    pixmap;
-
-    XCompositeCheckExtension (dpy, info, 0);
-    LockDisplay (dpy);
-    GetReq (CompositeNameWindowPixmap, req);
-    req->reqType = info->codes->major_opcode;
-    req->compositeReqType = X_CompositeNameWindowPixmap;
-    req->window = window;
-    pixmap = req->pixmap = XAllocID (dpy);
-    UnlockDisplay (dpy);
-    SyncHandle ();
-    return pixmap;
-}
diff --git a/nx-X11/lib/Xcomposite/Xcomposite.h b/nx-X11/lib/Xcomposite/Xcomposite.h
deleted file mode 100644
index c28cc6857..000000000
--- a/nx-X11/lib/Xcomposite/Xcomposite.h
+++ /dev/null
@@ -1,71 +0,0 @@
-/*
- * $Id: Xcomposite.h,v 1.5 2005/11/09 21:31:19 kem Exp $
- *
- * Copyright © 2003 Keith Packard
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Keith Packard not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  Keith Packard makes no
- * representations about the suitability of this software for any purpose.  It
- * is provided "as is" without express or implied warranty.
- *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL 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
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifndef _XCOMPOSITE_H_
-#define _XCOMPOSITE_H_
-
-#include <nx-X11/extensions/composite.h>
-#include <nx-X11/extensions/Xfixes.h>
-#include <nx-X11/Xfuncproto.h>
-
-/*
- * This revision number also appears in configure.ac, they have
- * to be manually synchronized
- */
-#define XCOMPOSITE_MAJOR	COMPOSITE_MAJOR
-#define XCOMPOSITE_MINOR	COMPOSITE_MINOR
-#define XCOMPOSITE_REVISION	2
-#define XCOMPOSITE_VERSION	((XCOMPOSITE_MAJOR * 10000) + (XCOMPOSITE_MINOR * 100) + (XCOMPOSITE_REVISION))
-
-_XFUNCPROTOBEGIN
-
-Bool XCompositeQueryExtension (Display *dpy, int *event_basep, int *error_basep);
-
-Status XCompositeQueryVersion (Display *dpy,
-			       int     *major_versionp,
-			       int     *minor_versionp);
-
-int XCompositeVersion (void);
-
-void
-XCompositeRedirectWindow (Display *dpy, Window window, int update);
-
-void
-XCompositeRedirectSubwindows (Display *dpy, Window window, int update);
-
-void
-XCompositeUnredirectWindow (Display *dpy, Window window, int update);
-
-void
-XCompositeUnredirectSubwindows (Display *dpy, Window window, int update);
-
-XserverRegion
-XCompositeCreateRegionFromBorderClip (Display *dpy, Window window);
-
-Pixmap
-XCompositeNameWindowPixmap (Display *dpy, Window window);
-
-_XFUNCPROTOEND
-
-#endif /* _XCOMPOSITE_H_ */
diff --git a/nx-X11/lib/Xcomposite/xcompositeint.h b/nx-X11/lib/Xcomposite/xcompositeint.h
deleted file mode 100644
index 7b12e8d55..000000000
--- a/nx-X11/lib/Xcomposite/xcompositeint.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- * $Id: xcompositeint.h,v 1.3 2005/07/12 03:10:35 keithp Exp $
- *
- * Copyright © 2003 Keith Packard
- *
- * Permission to use, copy, modify, distribute, and sell this software and its
- * documentation for any purpose is hereby granted without fee, provided that
- * the above copyright notice appear in all copies and that both that
- * copyright notice and this permission notice appear in supporting
- * documentation, and that the name of Keith Packard not be used in
- * advertising or publicity pertaining to distribution of the software without
- * specific, written prior permission.  Keith Packard makes no
- * representations about the suitability of this software for any purpose.  It
- * is provided "as is" without express or implied warranty.
- *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL 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
- * PERFORMANCE OF THIS SOFTWARE.
- */
-
-#ifndef _XDAMAGEINT_H_
-#define _XDAMAGEINT_H_
-
-#define NEED_EVENTS
-#define NEED_REPLIES
-#include <stdio.h>
-#include <nx-X11/Xlib.h>
-#include <nx-X11/Xlibint.h>
-#include <nx-X11/Xutil.h>
-#include <nx-X11/extensions/compositeproto.h>
-#include <nx-X11/extensions/Xcomposite.h>
-
-typedef struct _XCompositeExtDisplayInfo {
-    struct _XCompositeExtDisplayInfo  *next;    /* keep a linked list */
-    Display                 *display;	    /* which display this is */
-    XExtCodes               *codes;	    /* the extension protocol codes */
-    int			    major_version;  /* -1 means we don't know */
-    int			    minor_version;  /* -1 means we don't know */
-} XCompositeExtDisplayInfo;
-
-/* replaces XExtensionInfo */
-typedef struct _XCompositeExtInfo {
-    XCompositeExtDisplayInfo    *head;          /* start of the list */
-    XCompositeExtDisplayInfo    *cur;           /* most recently used */
-    int                     ndisplays;      /* number of displays */
-} XCompositeExtInfo;
-
-extern XCompositeExtInfo XCompositeExtensionInfo;
-extern const char XCompositeExtensionName[];
-
-XCompositeExtDisplayInfo *
-XCompositeFindDisplay (Display *dpy);
-
-#define XCompositeHasExtension(i) ((i) && ((i)->codes))
-
-#define XCompositeCheckExtension(dpy,i,val) \
-  if (!XCompositeHasExtension(i)) { return val; }
-
-#define XCompositeSimpleCheckExtension(dpy,i) \
-  if (!XCompositeHasExtension(i)) { return; }
-
-#endif /* _XDAMAGEINT_H_ */
diff --git a/nx-X11/programs/Xserver/Imakefile b/nx-X11/programs/Xserver/Imakefile
index 43d49d085..18e0d47f2 100644
--- a/nx-X11/programs/Xserver/Imakefile
+++ b/nx-X11/programs/Xserver/Imakefile
@@ -403,17 +403,17 @@ $(NXAGENTOBJS) $(NXAGENTLIBS) $(NXAGENTSYSLIBS):: $(NXAGENTDIRS)
 #if defined(SunArchitecture)
 NXAGENTNXLIBS = -L ../../../nxcomp -L ../../../nxcompext -L ../../../nxcompshad \
                 -lXcomp -lXcompext -lXcompshad -lrt -L/usr/sfw/lib -lNX_Xrender -lNX_Xfixes -lXfont \
-                -L../../../nx-X11/exports/lib -lNX_Xtst -lXrandr -lNX_Xcomposite -lXdmcp \
+                -L../../../nx-X11/exports/lib -lNX_Xtst -lXrandr -lXcomposite -lXdmcp \
 `pkg-config --libs libxml-2.0`
 #elif defined(cygwinArchitecture)
 NXAGENTNXLIBS = -L ../../../nxcomp -L ../../../nxcompext \
-                -lXcomp -lXcompext -lNX_Xrender -lX11 -lNX_Xext -lNX_Xcomposite -lNX_Xfixes -lXfont \
+                -lXcomp -lXcompext -lNX_Xrender -lX11 -lNX_Xext -lXcomposite -lNX_Xfixes -lXfont \
                 -L ../../../nxcompshad -lXcompshad -L../../../nx-X11/exports/lib -lNX_Xtst -lXdmcp \
 `pkg-config --libs libxml-2.0`
 #else
 NXAGENTNXLIBS = -L ../../../nxcomp -L ../../../nxcompext -L ../../../nxcompshad \
                 -lXcomp -lXcompext -lXcompshad -lNX_Xrender -lNX_X11 -lNX_Xext -lNX_Xfixes -lXfont \
-                -L../../../nx-X11/exports/lib -lNX_Xtst -lXrandr -lNX_Xcomposite -lNX_Xinerama -lXdmcp \
+                -L../../../nx-X11/exports/lib -lNX_Xtst -lXrandr -lXcomposite -lNX_Xinerama -lXdmcp \
 `pkg-config --libs libxml-2.0`
 #endif
 
diff --git a/nx-libs.spec b/nx-libs.spec
index a9afb7ec8..af9753fdd 100644
--- a/nx-libs.spec
+++ b/nx-libs.spec
@@ -35,6 +35,7 @@ BuildRequires:  pkgconfig(xpm)
 BuildRequires:  pkgconfig(xfont)
 BuildRequires:  pkgconfig(xdmcp)
 BuildRequires:  pkgconfig(xdamage)
+BuildRequires:  pkgconfig(xcomposite)
 BuildRequires:  pkgconfig(xrandr)
 %else
 BuildRequires:  libexpat-devel
@@ -46,6 +47,7 @@ BuildRequires:  xorg-x11-libXpm-devel
 BuildRequires:  xorg-x11-libXfont-devel
 BuildRequires:  xorg-x11-libXdmcp-devel
 BuildRequires:  xorg-x11-libXdamage-devel
+BuildRequires:  xorg-x11-libXcomposite-devel
 BuildRequires:  xorg-x11-libXrandr-devel
 %endif
 BuildRequires:  xorg-x11-util-devel
@@ -57,7 +59,7 @@ BuildRequires:  libpng-devel
 BuildRequires:  libxml2-devel
 BuildRequires:  libXfont-devel
 BuildRequires:  libXdmcp-devel
-BuildRequires:  libXdamage-devel
+BuildRequires:  libXcomposite-devel
 BuildRequires:  libXrandr-devel
 %endif
 
@@ -190,24 +192,6 @@ restrict use of the display to only those clients that show that they
 know a server-specific key called a "magic cookie".
 
 
-%package -n libNX_Xcomposite1
-Group:          System Environment/Libraries
-Summary:        NX protocol Composite extension client library
-Requires:       %{name}%{?_isa} >= 3.5.0.29
-Obsoletes:      libNX_Xcomposite
-
-%description -n libNX_Xcomposite1
-NX is a software suite which implements very efficient compression of
-the X11 protocol. This increases performance when using X
-applications over a network, especially a slow one.
-
-The Composite extension causes a entire sub-tree of the window
-hierarchy to be rendered to an off-screen buffer. Applications can
-then take the contents of that buffer and do whatever they like. The
-off-screen buffer can be automatically merged into the parent window
-or merged by external programs, called compositing managers.
-
-
 %package -n libNX_Xext-devel
 Group:          Development/Libraries
 Summary:        Development files for the NX Common Extensions library
@@ -634,7 +618,6 @@ ln -s -f ../../../../%{_lib}/libNX_Xinerama.so.1 %{buildroot}%{_libdir}/nx/X11/X
 %post -p /sbin/ldconfig
 %post -n libNX_X11-6 -p /sbin/ldconfig
 %post -n libNX_Xau6 -p /sbin/ldconfig
-%post -n libNX_Xcomposite1 -p /sbin/ldconfig
 %post -n libNX_Xext6 -p /sbin/ldconfig
 %post -n libNX_Xfixes3 -p /sbin/ldconfig
 %post -n libNX_Xinerama1 -p /sbin/ldconfig
@@ -646,7 +629,6 @@ ln -s -f ../../../../%{_lib}/libNX_Xinerama.so.1 %{buildroot}%{_libdir}/nx/X11/X
 %postun -p /sbin/ldconfig
 %postun -n libNX_X11-6 -p /sbin/ldconfig
 %postun -n libNX_Xau6 -p /sbin/ldconfig
-%postun -n libNX_Xcomposite1 -p /sbin/ldconfig
 %postun -n libNX_Xext6 -p /sbin/ldconfig
 %postun -n libNX_Xfixes3 -p /sbin/ldconfig
 %postun -n libNX_Xinerama1 -p /sbin/ldconfig
@@ -695,10 +677,6 @@ ln -s -f ../../../../%{_lib}/libNX_Xinerama.so.1 %{buildroot}%{_libdir}/nx/X11/X
 %defattr(-,root,root)
 %{_libdir}/libNX_Xau.so.6*
 
-%files -n libNX_Xcomposite1
-%defattr(-,root,root)
-%{_libdir}/libNX_Xcomposite.so.1*
-
 %files -n libNX_Xext-devel
 %defattr(-,root,root)
 %{_libdir}/libNX_Xext.so
@@ -815,13 +793,11 @@ ln -s -f ../../../../%{_lib}/libNX_Xinerama.so.1 %{buildroot}%{_libdir}/nx/X11/X
 
 %files devel
 %defattr(-,root,root)
-%{_libdir}/libNX_Xcomposite.so
 %{_libdir}/libNX_Xinerama.so
 %{_libdir}/libNX_Xtst.so
 %{_includedir}/nx-X11/X10.h
 %dir %{_includedir}/nx-X11/extensions
 %{_includedir}/nx-X11/extensions/XTest.h
-%{_includedir}/nx-X11/extensions/Xcomposite.h
 %{_includedir}/nx-X11/extensions/Xevie.h
 %{_includedir}/nx-X11/extensions/Xinerama.h
 %{_includedir}/nx-X11/extensions/lbxbuf.h
-- 
cgit v1.2.3