aboutsummaryrefslogtreecommitdiff
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
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
-rw-r--r--Makefile8
-rw-r--r--debian/control46
-rw-r--r--debian/libnx-xinerama-dev.install.in3
-rw-r--r--debian/libnx-xinerama1.install.in1
-rw-r--r--debian/libnx-xinerama1.symbols11
-rw-r--r--debian/nx-x11-common.install1
-rw-r--r--debian/nx-x11proto-xinerama-dev.install.in1
-rwxr-xr-xdebian/nxagent.postinst.in57
-rwxr-xr-xdebian/nxagent.prerm53
-rwxr-xr-xdebian/rules5
-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
-rw-r--r--nx-libs.spec45
19 files changed, 25 insertions, 662 deletions
diff --git a/Makefile b/Makefile
index 2b5b4946a..14f6e4266 100644
--- a/Makefile
+++ b/Makefile
@@ -154,14 +154,6 @@ install-full:
"$$(string_rep "$$dirname" nx-X11/.build-exports/include "$(DESTDIR)$(INCLUDEDIR)/")"/ || true; \
done; \
- # Provide means for Xinerama support in NX/X2Go sessions. This
- # This also requires three post-install symlinks created by libnx-xinerama1:
- # $(DESTDIR)$(NXLIBDIR)/X11/Xinerama/libNX_X11.so.6 -> /usr/<libdir>/libX11.so.6
- # $(DESTDIR)$(NXLIBDIR)/X11/Xinerama/libNX_Xext.so.6 -> /usr/<libdir>/libXext.so.6
- # $(DESTDIR)$(NXLIBDIR)/X11/Xinerama/libXinerama.so.1 -> /usr/<libdir>/libNX_Xinerama.so.1
- # Only create the owned directory here for nx-x11-common.
- $(INSTALL_DIR) $(DESTDIR)$(NXLIBDIR)/X11/Xinerama
-
$(INSTALL_DIR) $(DESTDIR)/$(ETCDIR_NX)
$(INSTALL_DIR) $(DESTDIR)/$(ETCDIR_X2GO)
$(INSTALL_FILE) etc/keystrokes.cfg $(DESTDIR)/$(ETCDIR_NX)/
diff --git a/debian/control b/debian/control
index 946dd4b2a..94aa64014 100644
--- a/debian/control
+++ b/debian/control
@@ -22,12 +22,11 @@ Build-Depends:
libxrandr-dev,
libxfixes-dev,
libxtst-dev,
+ libxinerama-dev,
autoconf,
pkg-config,
x11proto-core-dev,
expat,
-Build-Conflicts:
- x11proto-xinerama-dev,
Standards-Version: 3.9.6
Homepage: http://code.x2go.org/gitweb?p=nx-libs.git;a=summary
Vcs-Git: git://code.x2go.org/nx-libs.git
@@ -548,21 +547,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 Xinerama extension library
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_Xinerama provides an X Window System client interface to the XINERAMA
- extension to the X protocol.
+ This package removes the obsoleted libNX_Xinerama.so.1 library.
+ Xinerama support in NX has been moved into nxagent whereas X-Clients
+ can now use the libXinerama library shipped with X.Org.
.
- The Xinerama (also known as panoramiX) extension allows for multiple screens
- attached to a single display to be treated as belonging together, and to give
- desktop applications a better idea of the monitor layout.
+ This package can be safely removed.
Package: libnx-xinerama-dev
Provides: libnx-xinerama1-dev
@@ -570,24 +565,16 @@ Section: libdevel
Architecture: any
Multi-Arch: same
Depends:
- libnx-xinerama1 (= ${binary:Version}),
- nx-x11proto-xinerama-dev (= ${binary:Version}),
${misc:Depends},
-Breaks: nxlibs (<= 3.5.1),
- libnx-x11-dev (<< 2:3.5.0.29-0x2go2~),
Description: nx-X11 Xinerama extension library (development headers)
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_Xinerama provides an X Window System client interface to the XINERAMA
- extension to the X protocol.
+ This package removes the obsoleted headers for the libNX_Xinerama.so.1
+ library.
.
- The Xinerama (also known as panoramiX) extension allows for multiple screens
- attached to a single display to be treated as belonging together, and to give
- desktop applications a better idea of the monitor layout.
- .
- This package contains the development headers for this library.
+ This package can be safely removed.
Package: nx-x11proto-xinerama-dev
Section: libdevel
@@ -595,16 +582,15 @@ Architecture: any
Multi-Arch: same
Depends:
${misc:Depends},
-Breaks: nxlibs (<= 3.5.1),
- libnx-x11-dev (<< 2:3.5.0.29-0x2go2~),
Description: nx-X11 Xinerama extension wire protocol
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.
.
- This package provides development headers describing the wire protocol
- for the XINERAMA extension, used to use and manage a multiple-screen
- display.
+ This package removes the obsoleted headers for the libNX_Xinerama.so.1
+ library.
+ .
+ This package can be safely removed.
Package: libnx-xinerama1-dbg
Architecture: any
@@ -624,12 +610,10 @@ Description: nx-X11 Xinerama extension library (debug package)
libNX_Xinerama provides an X Window System client interface to the XINERAMA
extension to the X protocol.
.
- The Xinerama (also known as panoramiX) extension allows for multiple
- screens attached to a single display to be treated as belonging
- together, and to give desktop applications a better idea of the monitor
- layout.
+ This package removes the obsoleted debug symbols for the libNX_Xinerama.so.1
+ library.
.
- This package contains debug symbols for this library.
+ This package can be safely removed.
Package: libnx-xpm4
Architecture: any
diff --git a/debian/libnx-xinerama-dev.install.in b/debian/libnx-xinerama-dev.install.in
deleted file mode 100644
index 59c0456aa..000000000
--- a/debian/libnx-xinerama-dev.install.in
+++ /dev/null
@@ -1,3 +0,0 @@
-usr/lib/*/libNX_Xinerama.so
-usr/include/*/nx-X11/extensions/Xinerama.h
-usr/include/*/nx-X11/extensions/panoramiXext.h
diff --git a/debian/libnx-xinerama1.install.in b/debian/libnx-xinerama1.install.in
deleted file mode 100644
index d53de9c4f..000000000
--- a/debian/libnx-xinerama1.install.in
+++ /dev/null
@@ -1 +0,0 @@
-usr/lib/*/libNX_Xinerama.so.*
diff --git a/debian/libnx-xinerama1.symbols b/debian/libnx-xinerama1.symbols
deleted file mode 100644
index f8f73a3fd..000000000
--- a/debian/libnx-xinerama1.symbols
+++ /dev/null
@@ -1,11 +0,0 @@
-libNX_Xinerama.so.1 libnx-xinerama1 #MINVER#
- XPanoramiXAllocInfo@Base 3.5.0.29
- XPanoramiXGetScreenCount@Base 3.5.0.29
- XPanoramiXGetScreenSize@Base 3.5.0.29
- XPanoramiXGetState@Base 3.5.0.29
- XPanoramiXQueryExtension@Base 3.5.0.29
- XPanoramiXQueryVersion@Base 3.5.0.29
- XineramaIsActive@Base 3.5.0.29
- XineramaQueryExtension@Base 3.5.0.29
- XineramaQueryScreens@Base 3.5.0.29
- XineramaQueryVersion@Base 3.5.0.29
diff --git a/debian/nx-x11-common.install b/debian/nx-x11-common.install
index 1131e7291..b6fc46613 100644
--- a/debian/nx-x11-common.install
+++ b/debian/nx-x11-common.install
@@ -1,2 +1 @@
usr/share/nx/SecurityPolicy
-usr/lib/nx/X11/
diff --git a/debian/nx-x11proto-xinerama-dev.install.in b/debian/nx-x11proto-xinerama-dev.install.in
deleted file mode 100644
index dca06ddee..000000000
--- a/debian/nx-x11proto-xinerama-dev.install.in
+++ /dev/null
@@ -1 +0,0 @@
-usr/include/*/nx-X11/extensions/panoramiXproto.h \ No newline at end of file
diff --git a/debian/nxagent.postinst.in b/debian/nxagent.postinst.in
deleted file mode 100755
index 95879b943..000000000
--- a/debian/nxagent.postinst.in
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/bin/sh
-# postinst script for nxagent
-#
-# see: dh_installdeb(1)
-
-set -e
-
-# summary of how this script can be called:
-# * <postinst> `configure' <most-recently-configured-version>
-# * <old-postinst> `abort-upgrade' <new version>
-# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
-# <new-version>
-# * <postinst> `abort-remove'
-# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
-# <failed-install-package> <version> `removing'
-# <conflicting-package> <version>
-# for details, see http://www.debian.org/doc/debian-policy/ or
-# the debian-policy package
-
-
-case "$1" in
- configure)
- ### FIXME: this is a work-around while we have not implemented
- ### multiarch support into the Debian source package of
- ### nx-libs.
-
- libdir=/usr/lib/#DEB_BUILD_MULTIARCH#
-
- mkdir -p /usr/lib/nx/X11/Xinerama/
- # Already existent files are not removed.
- # Users will need to explicitly remove them and (re-) configure this package.
- if test -e $libdir/libX11.so.6; then
- ln -sf $libdir/libX11.so.6 /usr/lib/nx/X11/Xinerama/libNX_X11.so.6
- fi
- if test -e $libdir/libXext.so.6; then
- ln -sf $libdir/libXext.so.6 /usr/lib/nx/X11/Xinerama/libNX_Xext.so.6
- fi
- if test -e $libdir/libNX_Xinerama.so.1; then
- ln -sf $libdir/libNX_Xinerama.so.1 /usr/lib/nx/X11/Xinerama/libXinerama.so.1
- fi
- ;;
-
- abort-upgrade|abort-remove|abort-deconfigure)
- ;;
-
- *)
- echo "postinst called with unknown argument \`$1'" >&2
- exit 1
- ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
diff --git a/debian/nxagent.prerm b/debian/nxagent.prerm
deleted file mode 100755
index 019284a16..000000000
--- a/debian/nxagent.prerm
+++ /dev/null
@@ -1,53 +0,0 @@
-#!/bin/sh
-# prerm script for nxagent
-#
-# see: dh_installdeb(1)
-# summary of how this script can be called:
-# * <prerm> `remove'
-# * <old-prerm> `upgrade' <new-version>
-# * <new-prerm> `failed-upgrade' <old-version>
-# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
-# * <deconfigured's-prerm> `deconfigure' `in-favour'
-# <package-being-installed> <version> `removing'
-# <conflicting-package> <version>
-# for details, see http://www.debian.org/doc/debian-policy/ or
-# the debian-policy package
-
-set -e
-
-
-
-case "$1" in
- remove)
- if test -d /usr/lib/nx/X11/Xinerama; then
- if test -e /usr/lib/nx/X11/Xinerama/libNX_X11.so.6; then
- rm -f /usr/lib/nx/X11/Xinerama/libNX_X11.so.6
- fi
-
- if test -e /usr/lib/nx/X11/Xinerama/libNX_Xext.so.6; then
- rm -f /usr/lib/nx/X11/Xinerama/libNX_Xext.so.6
- fi
-
- if test -e /usr/lib/nx/X11/Xinerama/libXinerama.so.1; then
- rm -f /usr/lib/nx/X11/Xinerama/libXinerama.so.1
- fi
-
- rmdir --ignore-fail-on-non-empty /usr/lib/nx/X11/Xinerama
-
- fi
- ;;
- deconfigure|upgrade|failed-upgrade)
- :
- ;;
- *)
- echo "prerm called with unknown argument \`$1'" >&2
- exit 1
- ;;
-esac
-
-# dh_installdeb will replace this with shell code automatically
-# generated by other debhelper scripts.
-
-#DEBHELPER#
-
-exit 0
diff --git a/debian/rules b/debian/rules
index 729a2c6f4..c90bb6451 100755
--- a/debian/rules
+++ b/debian/rules
@@ -20,7 +20,6 @@ override_dh_auto_clean:
override_dh_clean:
rm -f nx*/configure
. ./replace.sh; set -x; ls debian/*.install.in | while read file; do rm -f $$(string_rep $$file .install.in .install); done
- rm -f debian/nxagent.postinst
rm -fR .preserve/
dh_clean
@@ -72,16 +71,12 @@ override_dh_auto_install:
override_dh_auto_build:
- # let's prep the nxagent.postinst script with the value of the build systems's DEB_BUILD_MULTIARCH variable
- sed debian/nxagent.postinst.in -e 's/#DEB_BUILD_MULTIARCH#/$(DEB_BUILD_MULTIARCH)/' > debian/nxagent.postinst
-
LOCAL_LDFLAGS="$(LDFLAGS)" SHLIBGLOBALSFLAGS="$(LDFLAGS)" SHLIBDIR="$(LIBDIR)" PREFIX=/usr dh_auto_build --parallel
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-xext6 --dbg-package=libnx-xext6-dbg
- dh_strip -plibnx-xinerama1 --dbg-package=libnx-xinerama1-dbg
dh_strip -plibnx-xrender1 --dbg-package=libnx-xrender1-dbg
dh_strip -plibxcomp3 --dbg-package=libxcomp3-dbg
dh_strip -plibxcompshad3 --dbg-package=libxcompshad3-dbg
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
diff --git a/nx-libs.spec b/nx-libs.spec
index 22094c2a5..01341a4ca 100644
--- a/nx-libs.spec
+++ b/nx-libs.spec
@@ -39,6 +39,7 @@ BuildRequires: pkgconfig(xcomposite)
BuildRequires: pkgconfig(xrandr)
BuildRequires: pkgconfig(xfixes)
BuildRequires: pkgconfig(xtst)
+BuildRequires: pkgconfig(xinerama)
%else
BuildRequires: libexpat-devel
BuildRequires: libpng-devel
@@ -53,6 +54,7 @@ BuildRequires: xorg-x11-libXcomposite-devel
BuildRequires: xorg-x11-libXrandr-devel
BuildRequires: xorg-x11-libXfixes-devel
BuildRequires: xorg-x11-libXtst-devel
+BuildRequires: xorg-x11-libXinerama-devel
%endif
BuildRequires: xorg-x11-util-devel
%endif
@@ -67,6 +69,7 @@ BuildRequires: libXcomposite-devel
BuildRequires: libXrandr-devel
BuildRequires: libXfixes-devel
BuildRequires: libXtst-devel
+BuildRequires: libXinerama-devel
%endif
# For imake
@@ -84,20 +87,6 @@ Provides: nx = %{version}-%{release}
Obsoletes: nx%{?_isa} < 3.5.0-19
Provides: nx%{?_isa} = %{version}-%{release}
-# for Xinerama in NX to work:
-%if 0%{?suse_version}
-%if 0%{?suse_version} < 1140
-Requires: xorg-x11-libX11%{?_isa}
-Requires: xorg-x11-libXext%{?_isa}
-%else
-Requires: libX11-6%{?_isa}
-Requires: libXext6%{?_isa}
-%endif
-%else
-Requires: libX11%{?_isa}
-Requires: libXext%{?_isa}
-%endif
-
%if 0%{?el5}
# For compatibility with EPEL5
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
@@ -244,22 +233,6 @@ The NX_Xext library contains a handful of X11 extensions:
- X11 Double-Buffering, Multi-Buffering, and Stereo extension (Xmbuf)
-%package -n libNX_Xinerama1
-Group: System Environment/Libraries
-Summary: Xinerama extension to the NX Protocol
-Requires: %{name}%{?_isa} >= 3.5.0.29
-Obsoletes: libNX_Xinerama
-
-%description -n libNX_Xinerama1
-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.
-
-Xinerama is an extension to the X Window System which enables
-multi-headed X applications and window managers to use two or more
-physical displays as one large virtual display.
-
-
%package -n libNX_Xrender-devel
Group: Development/Libraries
Summary: Development files for the NX Render Extension library
@@ -553,11 +526,6 @@ rm -r %{buildroot}%{_includedir}/nx-X11/extensions/XK*.h
rm -r %{buildroot}%{_includedir}/nx-X11/extensions/*Xv*.h
rm -r %{buildroot}%{_includedir}/nx-X11/Xtrans
-# Needed for Xinerama support
-ln -s -f ../../../../%{_lib}/libX11.so.6 %{buildroot}%{_libdir}/nx/X11/Xinerama/libNX_X11.so.6
-ln -s -f ../../../../%{_lib}/libXext.so.6 %{buildroot}%{_libdir}/nx/X11/Xinerama/libNX_Xext.so.6
-ln -s -f ../../../../%{_lib}/libNX_Xinerama.so.1 %{buildroot}%{_libdir}/nx/X11/Xinerama/libXinerama.so.1
-
%if 0%{?fdupes:1}
%fdupes %buildroot/%_prefix
%endif
@@ -566,7 +534,6 @@ ln -s -f ../../../../%{_lib}/libNX_Xinerama.so.1 %{buildroot}%{_libdir}/nx/X11/X
%post -n libNX_X11-6 -p /sbin/ldconfig
%post -n libNX_Xau6 -p /sbin/ldconfig
%post -n libNX_Xext6 -p /sbin/ldconfig
-%post -n libNX_Xinerama1 -p /sbin/ldconfig
%post -n libNX_Xrender1 -p /sbin/ldconfig
%post -n libXcomp3 -p /sbin/ldconfig
%post -n libXcompext3 -p /sbin/ldconfig
@@ -575,7 +542,6 @@ ln -s -f ../../../../%{_lib}/libNX_Xinerama.so.1 %{buildroot}%{_libdir}/nx/X11/X
%postun -n libNX_X11-6 -p /sbin/ldconfig
%postun -n libNX_Xau6 -p /sbin/ldconfig
%postun -n libNX_Xext6 -p /sbin/ldconfig
-%postun -n libNX_Xinerama1 -p /sbin/ldconfig
%postun -n libNX_Xrender1 -p /sbin/ldconfig
%postun -n libXcomp3 -p /sbin/ldconfig
%postun -n libXcompext3 -p /sbin/ldconfig
@@ -654,10 +620,6 @@ ln -s -f ../../../../%{_lib}/libNX_Xinerama.so.1 %{buildroot}%{_libdir}/nx/X11/X
%defattr(-,root,root)
%{_libdir}/libNX_Xext.so.6*
-%files -n libNX_Xinerama1
-%defattr(-,root,root)
-%{_libdir}/libNX_Xinerama.so.1*
-
%files -n libNX_Xrender-devel
%defattr(-,root,root)
%{_libdir}/libNX_Xrender.so
@@ -722,7 +684,6 @@ ln -s -f ../../../../%{_lib}/libNX_Xinerama.so.1 %{buildroot}%{_libdir}/nx/X11/X
%files devel
%defattr(-,root,root)
-%{_libdir}/libNX_Xinerama.so
%{_includedir}/nx-X11/X10.h
%dir %{_includedir}/nx-X11/extensions
%{_includedir}/nx-X11/extensions/Xevie.h