aboutsummaryrefslogtreecommitdiff
path: root/nx-X11
diff options
context:
space:
mode:
authorMike Gabriel <mike.gabriel@das-netzwerkteam.de>2015-05-05 10:24:24 +0200
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2015-12-30 00:05:53 +0100
commit2d776b14fddc5ec70c97aa82672f3a7c9caef6a3 (patch)
treebce0e94255ec55f75f79a8b11e851494d6e363f6 /nx-X11
parente4763fb4879ce8782e50c784ed9e7d8c5a1b7322 (diff)
downloadnx-libs-2d776b14fddc5ec70c97aa82672f3a7c9caef6a3.tar.gz
nx-libs-2d776b14fddc5ec70c97aa82672f3a7c9caef6a3.tar.bz2
nx-libs-2d776b14fddc5ec70c97aa82672f3a7c9caef6a3.zip
library clean-up: Don't build libNX_Xinerama anymore. Use system's libXinerama shared library. (Fixes ArcticaProject/nx-libs#49).
This commit goes along with a patch from Ulrich Sibiller who managed to move the Xinerama awareness for NX sessions into the Xserver code. This makes Xinerama support for NX in libNX_Xinerama.so obsolete. Fixes ArcticaProject/nx-libs#49
Diffstat (limited to 'nx-X11')
-rw-r--r--nx-X11/config/cf/X11.tmpl37
-rw-r--r--nx-X11/include/extensions/Imakefile4
-rw-r--r--nx-X11/lib/Imakefile4
-rw-r--r--nx-X11/lib/Xinerama/Imakefile30
-rw-r--r--nx-X11/lib/Xinerama/Xinerama-def.cpp14
-rw-r--r--nx-X11/lib/Xinerama/Xinerama.c361
-rw-r--r--nx-X11/programs/Xserver/Imakefile2
-rw-r--r--nx-X11/programs/Xserver/hw/nxagent/Screen.c4
8 files changed, 7 insertions, 449 deletions
diff --git a/nx-X11/config/cf/X11.tmpl b/nx-X11/config/cf/X11.tmpl
index af466b47f..3e7423040 100644
--- a/nx-X11/config/cf/X11.tmpl
+++ b/nx-X11/config/cf/X11.tmpl
@@ -226,9 +226,6 @@ XORGRELSTRING = XorgManVersionString
#ifndef BuildXinerama
#define BuildXinerama NO
#endif
-#ifndef BuildXineramaLibrary
-#define BuildXineramaLibrary (BuildXinerama)
-#endif
#ifndef BuildXCSecurity
#define BuildXCSecurity YES
#endif
@@ -1321,30 +1318,6 @@ ProjectUnsharedLibReferences(XONLY,NX_X11,$(XLIBSRC),XBuildLibDir)
XLIBONLY = $(XONLYLIB)
LINTXONLYLIB = $(LINTXONLY)
-#if BuildXineramaLibrary
-#ifndef SharedLibXinerama
-#define SharedLibXinerama HasSharedLibraries
-#endif
-#ifndef NormalLibXinerama
-#define NormalLibXinerama (!SharedLibXinerama || ForceNormalLib)
-#endif
-#ifndef DebugLibXinerama
-#define DebugLibXinerama NO
-#endif
-#ifndef ProfileLibXinerama
-#define ProfileLibXinerama NO
-#endif
-#else
-#undef SharedLibXinerama
-#define SharedLibXinerama NO
-#undef NormalLibXinerama
-#define NormalLibXinerama NO
-#undef DebugLibXinerama
-#define DebugLibXinerama NO
-#undef ProfileLibXinerama
-#define ProfileLibXinerama NO
-#endif
-
#if BuildRenderLibrary
#ifndef SharedLibXrender
#define SharedLibXrender HasSharedLibraries
@@ -1395,16 +1368,6 @@ LINTEXTENSIONLIB = $(LINTEXTENSION)
XLIB = $(EXTENSIONLIB) $(XONLYLIB)
LINTXLIB = $(LINTXONLYLIB)
- XINERAMALIBSRC = $(LIBSRC)/Xinerama
-#if SharedLibXinerama
-#ifndef SharedXineramaRev
-#define SharedXineramaRev 1.0
-#endif
-SharedLibReferences(XINERAMA,NX_Xinerama,$(XINERAMALIBSRC),SOXINERAMAREV,SharedXineramaRev)
-#else
-ProjectUnsharedLibReferences(XINERAMA,NX_Xinerama,$(XINERAMALIBSRC),XBuildLibDir)
-#endif
-
XRENDERLIBSRC = $(LIBSRC)/Xrender
#if SharedLibXrender
#ifndef SharedXrenderRev
diff --git a/nx-X11/include/extensions/Imakefile b/nx-X11/include/extensions/Imakefile
index 33e854058..eb7763535 100644
--- a/nx-X11/include/extensions/Imakefile
+++ b/nx-X11/include/extensions/Imakefile
@@ -35,8 +35,8 @@ XVMCHEADERS = XvMC.h XvMClib.h XvMCproto.h vldXvMC.h
#if BuildFontCache
FONTCACHEHEADERS = fontcache.h fontcacheP.h fontcachstr.h
#endif
-#if BuildXinerama || BuildXineramaLibrary
-XINERAMAHEADERS = Xinerama.h panoramiXext.h panoramiXproto.h
+#if BuildXinerama
+XINERAMAHEADERS = panoramiXext.h panoramiXproto.h
#endif
#if BuildRandR
RANDRHEADERS = randr.h randrproto.h
diff --git a/nx-X11/lib/Imakefile b/nx-X11/lib/Imakefile
index b97ef6b22..dbe4e4280 100644
--- a/nx-X11/lib/Imakefile
+++ b/nx-X11/lib/Imakefile
@@ -15,10 +15,6 @@ NULL =
XKBLIBDIR = xkbfile
#endif
-#if BuildXineramaLibrary
-XINERAMADIR=Xinerama
-#endif
-
#if BuildRenderLibrary
RENDERLIBDIR = Xrender
#endif
diff --git a/nx-X11/lib/Xinerama/Imakefile b/nx-X11/lib/Xinerama/Imakefile
deleted file mode 100644
index 910f98da6..000000000
--- a/nx-X11/lib/Xinerama/Imakefile
+++ /dev/null
@@ -1,30 +0,0 @@
-XCOMM $XFree86: xc/lib/Xinerama/Imakefile,v 1.4 2002/10/16 00:37:31 dawes Exp $
-
-#define DoNormalLib NormalLibXinerama
-#define DoSharedLib SharedLibXinerama
-#define DoDebugLib DebugLibXinerama
-#define DoProfileLib ProfileLibXinerama
-#define LibName NX_Xinerama
-#define SoRev SOXINERAMAREV
-#define LibHeaders NO
-
-#include <Threads.tmpl>
-
-#ifdef SharedXineramaReqs
-REQUIREDLIBS = SharedXineramaReqs
-#endif
-
-#if Malloc0ReturnsNull
-ALLOC_DEFINES = -DMALLOC_0_RETURNS_NULL
-#endif
-
- DEFINES = $(ALLOC_DEFINES)
- SRCS = Xinerama.c
- OBJS = Xinerama.o
- LINTLIBS = $(LINTXLIB)
-
-#define IncludeSharedObjectInNormalLib
-
-#include <Library.tmpl>
-
-DependTarget()
diff --git a/nx-X11/lib/Xinerama/Xinerama-def.cpp b/nx-X11/lib/Xinerama/Xinerama-def.cpp
deleted file mode 100644
index 01449d15b..000000000
--- a/nx-X11/lib/Xinerama/Xinerama-def.cpp
+++ /dev/null
@@ -1,14 +0,0 @@
-LIBRARY Xinerama
-VERSION LIBRARY_VERSION
-EXPORTS
- XPanoramiXAllocInfo
- XPanoramiXGetScreenCount
- XPanoramiXGetScreenSize
- XPanoramiXGetState
- XPanoramiXQueryExtension
- XPanoramiXQueryVersion
- XineramaIsActive
- XineramaQueryExtension
- XineramaQueryScreens
- XineramaQueryVersion
-/* $XFree86$ */
diff --git a/nx-X11/lib/Xinerama/Xinerama.c b/nx-X11/lib/Xinerama/Xinerama.c
deleted file mode 100644
index 0256336be..000000000
--- a/nx-X11/lib/Xinerama/Xinerama.c
+++ /dev/null
@@ -1,361 +0,0 @@
-/* $Xorg: XPanoramiX.c,v 1.4 2000/08/17 19:45:51 cpqbld Exp $ */
-/*****************************************************************
-Copyright (c) 1991, 1997 Digital Equipment Corporation, Maynard, Massachusetts.
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to deal
-in the Software without restriction, including without limitation the rights
-to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
-copies of the Software.
-
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
-DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING,
-BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL DAMAGES, OR OTHER LIABILITY,
-WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
-IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-
-Except as contained in this notice, the name of Digital Equipment Corporation
-shall not be used in advertising or otherwise to promote the sale, use or other
-dealings in this Software without prior written authorization from Digital
-Equipment Corporation.
-******************************************************************/
-/* $XFree86: xc/lib/Xinerama/Xinerama.c,v 1.2 2001/07/23 17:20:28 dawes Exp $ */
-
-#define NEED_EVENTS
-#define NEED_REPLIES
-#include <nx-X11/Xlibint.h>
-#include <nx-X11/Xutil.h>
-#include <nx-X11/extensions/Xext.h>
-#include <nx-X11/extensions/extutil.h>
-#include <nx-X11/extensions/panoramiXext.h>
-#include <nx-X11/extensions/panoramiXproto.h>
-#include <nx-X11/extensions/Xinerama.h>
-#include <stdio.h>
-
-static XExtensionInfo _panoramiX_ext_info_data;
-static XExtensionInfo *panoramiX_ext_info = &_panoramiX_ext_info_data;
-static /* const */ char *panoramiX_extension_name = PANORAMIX_PROTOCOL_NAME;
-
-#define PanoramiXCheckExtension(dpy,i,val) \
- XextCheckExtension (dpy, i, panoramiX_extension_name, val)
-#define PanoramiXSimpleCheckExtension(dpy,i) \
- XextSimpleCheckExtension (dpy, i, panoramiX_extension_name)
-
-static int close_display();
-static /* const */ XExtensionHooks panoramiX_extension_hooks = {
- NULL, /* create_gc */
- NULL, /* copy_gc */
- NULL, /* flush_gc */
- NULL, /* free_gc */
- NULL, /* create_font */
- NULL, /* free_font */
- close_display, /* close_display */
- NULL, /* wire_to_event */
- NULL, /* event_to_wire */
- NULL, /* error */
- NULL, /* error_string */
-};
-
-static XEXT_GENERATE_FIND_DISPLAY (find_display, panoramiX_ext_info,
- panoramiX_extension_name,
- &panoramiX_extension_hooks,
- 0, NULL)
-
-static XEXT_GENERATE_CLOSE_DISPLAY (close_display, panoramiX_ext_info)
-
-
-
-/****************************************************************************
- * *
- * PanoramiX public interfaces *
- * *
- ****************************************************************************/
-
-Bool XPanoramiXQueryExtension (
- Display *dpy,
- int *event_basep,
- int *error_basep
-)
-{
- XExtDisplayInfo *info = find_display (dpy);
-
- if (XextHasExtension(info)) {
- *event_basep = info->codes->first_event;
- *error_basep = info->codes->first_error;
- return True;
- } else {
- return False;
- }
-}
-
-
-Status XPanoramiXQueryVersion(
- Display *dpy,
- int *major_versionp,
- int *minor_versionp
-)
-{
- XExtDisplayInfo *info = find_display (dpy);
- xPanoramiXQueryVersionReply rep;
- register xPanoramiXQueryVersionReq *req;
-
- PanoramiXCheckExtension (dpy, info, 0);
-
- LockDisplay (dpy);
- GetReq (PanoramiXQueryVersion, req);
- req->reqType = info->codes->major_opcode;
- req->panoramiXReqType = X_PanoramiXQueryVersion;
- req->clientMajor = PANORAMIX_MAJOR_VERSION;
- req->clientMinor = PANORAMIX_MINOR_VERSION;
- if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) {
- UnlockDisplay (dpy);
- SyncHandle ();
- return 0;
- }
- *major_versionp = rep.majorVersion;
- *minor_versionp = rep.minorVersion;
- UnlockDisplay (dpy);
- SyncHandle ();
- return 1;
-}
-
-XPanoramiXInfo *XPanoramiXAllocInfo(void)
-{
- return (XPanoramiXInfo *) Xmalloc (sizeof (XPanoramiXInfo));
-}
-
-Status XPanoramiXGetState (
- Display *dpy,
- Drawable drawable,
- XPanoramiXInfo *panoramiX_info
-)
-{
- XExtDisplayInfo *info = find_display (dpy);
- xPanoramiXGetStateReply rep;
- register xPanoramiXGetStateReq *req;
-
- PanoramiXCheckExtension (dpy, info, 0);
-
- LockDisplay (dpy);
- GetReq (PanoramiXGetState, req);
- req->reqType = info->codes->major_opcode;
- req->panoramiXReqType = X_PanoramiXGetState;
- req->window = drawable;
- if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) {
- UnlockDisplay (dpy);
- SyncHandle ();
- return 0;
- }
- UnlockDisplay (dpy);
- SyncHandle ();
- panoramiX_info->window = rep.window;
- panoramiX_info->State = rep.state;
- return 1;
-}
-
-Status XPanoramiXGetScreenCount (
- Display *dpy,
- Drawable drawable,
- XPanoramiXInfo *panoramiX_info
-)
-{
- XExtDisplayInfo *info = find_display (dpy);
- xPanoramiXGetScreenCountReply rep;
- register xPanoramiXGetScreenCountReq *req;
-
- PanoramiXCheckExtension (dpy, info, 0);
-
- LockDisplay (dpy);
- GetReq (PanoramiXGetScreenCount, req);
- req->reqType = info->codes->major_opcode;
- req->panoramiXReqType = X_PanoramiXGetScreenCount;
- req->window = drawable;
- if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) {
- UnlockDisplay (dpy);
- SyncHandle ();
- return 0;
- }
- UnlockDisplay (dpy);
- SyncHandle ();
- panoramiX_info->window = rep.window;
- panoramiX_info->ScreenCount = rep.ScreenCount;
- return 1;
-}
-
-Status XPanoramiXGetScreenSize (
- Display *dpy,
- Drawable drawable,
- int screen_num,
- XPanoramiXInfo *panoramiX_info
-)
-{
- XExtDisplayInfo *info = find_display (dpy);
- xPanoramiXGetScreenSizeReply rep;
- register xPanoramiXGetScreenSizeReq *req;
-
- PanoramiXCheckExtension (dpy, info, 0);
-
- LockDisplay (dpy);
- GetReq (PanoramiXGetScreenSize, req);
- req->reqType = info->codes->major_opcode;
- req->panoramiXReqType = X_PanoramiXGetScreenSize;
- req->window = drawable;
- req->screen = screen_num; /* need to define */
- if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) {
- UnlockDisplay (dpy);
- SyncHandle ();
- return 0;
- }
- UnlockDisplay (dpy);
- SyncHandle ();
- panoramiX_info->window = rep.window;
- panoramiX_info->screen = rep.screen;
- panoramiX_info->width = rep.width;
- panoramiX_info->height = rep.height;
- return 1;
-}
-
-/*******************************************************************\
- Alternate interface to make up for shortcomings in the original,
- namely, the omission of the screen origin. The new interface is
- in the "Xinerama" namespace instead of "PanoramiX".
-\*******************************************************************/
-
-Bool XineramaQueryExtension (
- Display *dpy,
- int *event_base,
- int *error_base
-)
-{
- return XPanoramiXQueryExtension(dpy, event_base, error_base);
-}
-
-Status XineramaQueryVersion(
- Display *dpy,
- int *major,
- int *minor
-)
-{
- return XPanoramiXQueryVersion(dpy, major, minor);
-}
-
-Bool XineramaIsActive(Display *dpy)
-{
- xXineramaIsActiveReply rep;
- xXineramaIsActiveReq *req;
- XExtDisplayInfo *info = find_display (dpy);
-
-
- FILE* fptr;
- if((fptr=fopen(getenv("NX_XINERAMA_CONF"),"r"))!=NULL) {
- fclose (fptr);
- return True;
- }
- else {
- return False;
- }
-
- if(!XextHasExtension(info))
- return False; /* server doesn't even have the extension */
-
- LockDisplay (dpy);
- GetReq (XineramaIsActive, req);
- req->reqType = info->codes->major_opcode;
- req->panoramiXReqType = X_XineramaIsActive;
- if (!_XReply (dpy, (xReply *) &rep, 0, xTrue)) {
- UnlockDisplay (dpy);
- SyncHandle ();
- return False;
- }
- UnlockDisplay (dpy);
- SyncHandle ();
- return rep.state;
-}
-
-
-XineramaScreenInfo *
-XineramaQueryScreens(
- Display *dpy,
- int *number
-)
-{
- XExtDisplayInfo *info = find_display (dpy);
- xXineramaQueryScreensReply rep;
- xXineramaQueryScreensReq *req;
- XineramaScreenInfo *scrnInfo = NULL;
-
- int i;
- int x,y,w,h;
- FILE* fptr;
- if((fptr=fopen(getenv("NX_XINERAMA_CONF"),"r"))==NULL) {
- PanoramiXCheckExtension (dpy, info, 0);
- LockDisplay (dpy);
- GetReq (XineramaQueryScreens, req);
- req->reqType = info->codes->major_opcode;
- req->panoramiXReqType = X_XineramaQueryScreens;
- if (!_XReply (dpy, (xReply *) &rep, 0, xFalse)) {
- UnlockDisplay (dpy);
- SyncHandle ();
- return NULL;
- }
- if(rep.number) {
- if((scrnInfo = Xmalloc(sizeof(XineramaScreenInfo) * rep.number))) {
- xXineramaScreenInfo scratch;
- int i;
-
- for(i = 0; i < rep.number; i++) {
- _XRead(dpy, (char*)(&scratch), sz_XineramaScreenInfo);
- scrnInfo[i].screen_number = i;
- scrnInfo[i].x_org = scratch.x_org;
- scrnInfo[i].y_org = scratch.y_org;
- scrnInfo[i].width = scratch.width;
- scrnInfo[i].height = scratch.height;
- }
-
- *number = rep.number;
- } else {
- _XEatData(dpy, rep.length << 2);
- }
- }
-
- UnlockDisplay (dpy);
- SyncHandle ();
-
- } else {
-
- i=0;
- while(!feof(fptr)) {
- w=h=0;
- fscanf(fptr,"%d %d %d %d",&x,&y,&w,&h);
- if(w&&h)
- i++;
- }
- rewind(fptr);
- *number=i;
- if((scrnInfo = Xmalloc(sizeof(XineramaScreenInfo) * i))) {
- i=0;
- while(!feof(fptr)){
- w=h=0;
- fscanf(fptr,"%d %d %d %d",&x,&y,&w,&h);
- if(w&&h){
- scrnInfo[i].screen_number=i;
- scrnInfo[i].x_org=x;
- scrnInfo[i].y_org=y;
- scrnInfo[i].width=w;
- scrnInfo[i].height=h;
- i++;
- }
- }
- }
- fclose(fptr);
- }
-
- return scrnInfo;
-}
-
-
-
diff --git a/nx-X11/programs/Xserver/Imakefile b/nx-X11/programs/Xserver/Imakefile
index 309d5d98f..d034c2672 100644
--- a/nx-X11/programs/Xserver/Imakefile
+++ b/nx-X11/programs/Xserver/Imakefile
@@ -413,7 +413,7 @@ NXAGENTNXLIBS = -L ../../../nxcomp -L ../../../nxcompext \
#else
NXAGENTNXLIBS = -L ../../../nxcomp -L ../../../nxcompext -L ../../../nxcompshad \
-lXcomp -lXcompext -lXcompshad -lNX_Xrender -lNX_X11 -lNX_Xext -lXfixes -lXfont \
- -L../../../nx-X11/exports/lib -lXtst -lXrandr -lXcomposite -lNX_Xinerama -lXdmcp \
+ -L../../../nx-X11/exports/lib -lXtst -lXrandr -lXcomposite -lXinerama -lXdmcp \
`pkg-config --libs libxml-2.0`
#endif
diff --git a/nx-X11/programs/Xserver/hw/nxagent/Screen.c b/nx-X11/programs/Xserver/hw/nxagent/Screen.c
index 491a92c2f..2f70334d4 100644
--- a/nx-X11/programs/Xserver/hw/nxagent/Screen.c
+++ b/nx-X11/programs/Xserver/hw/nxagent/Screen.c
@@ -79,6 +79,10 @@ is" without express or implied warranty.
#include "X11/include/Xrandr_nxagent.h"
+#include <nx-X11/Xlib.h>
+#include "X11/include/Xinerama_nxagent.h"
+
+
#define GC XlibGC
#define Font XlibFont
#define KeySym XlibKeySym