aboutsummaryrefslogtreecommitdiff
path: root/nx-X11
diff options
context:
space:
mode:
Diffstat (limited to 'nx-X11')
-rw-r--r--nx-X11/CHANGELOG14
-rw-r--r--nx-X11/CHANGELOG.NX.original14
-rw-r--r--nx-X11/CHANGELOG~1020
-rw-r--r--nx-X11/lib/X11/XlibInt.c13
-rw-r--r--nx-X11/lib/X11/XlibInt.c.NX.original13
-rw-r--r--nx-X11/programs/Xserver/xkb/ddxLoad.c8
-rw-r--r--nx-X11/programs/Xserver/xkb/ddxLoad.c.NX.original8
7 files changed, 1082 insertions, 8 deletions
diff --git a/nx-X11/CHANGELOG b/nx-X11/CHANGELOG
index 60104c69e..f576284e1 100644
--- a/nx-X11/CHANGELOG
+++ b/nx-X11/CHANGELOG
@@ -1,5 +1,19 @@
ChangeLog:
+nx-X11-3.3.0-3
+
+- Fixed the search path for the XKB base directory.
+
+nx-X11-3.3.0-2
+
+- Fixed TR10F02116. The X11 agent could enter an indefinite wait state
+ if connection to X display is broken and libX11 output buffer is not
+ empty.
+
+nx-X11-3.3.0-1
+
+- Opened the 3.3.0 branch based on nx-X11-3.2.0-2.
+
nx-X11-3.2.0-2
- Imported patch fixing issues from X.Org security advisory, June
diff --git a/nx-X11/CHANGELOG.NX.original b/nx-X11/CHANGELOG.NX.original
index 60104c69e..f576284e1 100644
--- a/nx-X11/CHANGELOG.NX.original
+++ b/nx-X11/CHANGELOG.NX.original
@@ -1,5 +1,19 @@
ChangeLog:
+nx-X11-3.3.0-3
+
+- Fixed the search path for the XKB base directory.
+
+nx-X11-3.3.0-2
+
+- Fixed TR10F02116. The X11 agent could enter an indefinite wait state
+ if connection to X display is broken and libX11 output buffer is not
+ empty.
+
+nx-X11-3.3.0-1
+
+- Opened the 3.3.0 branch based on nx-X11-3.2.0-2.
+
nx-X11-3.2.0-2
- Imported patch fixing issues from X.Org security advisory, June
diff --git a/nx-X11/CHANGELOG~ b/nx-X11/CHANGELOG~
new file mode 100644
index 000000000..754ee0702
--- /dev/null
+++ b/nx-X11/CHANGELOG~
@@ -0,0 +1,1020 @@
+ChangeLog:
+
+nx-X11-3.3.0-2
+
+- Fixed TR10F02116. The X11 agent could enter an indefinite wait state
+ if connection to X display is broken and libX11 output buffer is not
+ empty.
+
+nx-X11-3.3.0-1
+
+- Opened the 3.3.0 branch based on nx-X11-3.2.0-2.
+
+nx-X11-3.2.0-2
+
+- Imported patch fixing issues from X.Org security advisory, June
+ 11th, 2008: Multiple vulnerabilities in X server extensions. CVE
+ IDs: CVE-2008-1377, CVE-2008-1379, CVE-2008-2360, CVE-2008-2361,
+ CVE-2008-2362.
+
+nx-X11-3.2.0-1
+
+- Opened the 3.2.0 branch based on nx-X11-3.1.0-6.
+
+nx-X11-3.1.0-6
+
+- Modified Xserver Imakefile to link the Xfixes library.
+
+nx-X11-3.1.0-5
+
+- Disabled the terminate action, just in case the TerminateServer
+ symbol is binded to a non default key sequence.
+
+nx-X11-3.1.0-4
+
+- Imported patch fixing issues from X.Org security advisory, January
+ 17th, 2008: Multiple vulnerabilities in the X server. CVE IDs:
+ CVE-2007-5760 CVE-2007-5958 CVE-2007-6427 CVE-2007-6428
+ CVE-2007-6429 CVE-2008-0006.
+
+nx-X11-3.1.0-3
+
+- Moved a variable definition placed in _mesa_make_current().
+
+nx-X11-3.1.0-2
+
+- Fixed TR10E01924. A crash could occur in _mesa_make_current().
+
+- Initialized after_ret variable in _XcmsGetProperty().
+
+nx-X11-3.1.0-1
+
+- Opened the 3.1.0 branch based on nx-X11-3.0.0-37.
+
+nx-X11-3.0.0-37
+
+- Changed the Xserver Imakefile to link against Xcomposite on the
+ Cygwin platform too.
+
+nx-X11-3.0.0-36
+
+- Fixed TR07E01806. Modified host.def to build GLX code with symbol
+ __GLX_ALIGN64 defined on Solaris platform.
+
+nx-X11-3.0.0-35
+
+- Flush explicitly the NX link before entering the select() in the
+ WaitForReadable() and WaitForWritable() routines.
+
+nx-X11-3.0.0-34
+
+- Changed the agent Imakefile to link to the Xcomposite library.
+
+nx-X11-3.0.0-33
+
+- Fix the NX_TRANS_WAKEUP stuff in WaitForSomething() to not over-
+ ride a valid timeout.
+
+- Check if the requesting client is gone in the XFixes functions
+ sending the cursor events.
+
+nx-X11-3.0.0-32
+
+- Define DDXOSVERRORF and DDXOSFATALERROR symbols on Sun.
+
+- Changed the copyright attribution from Medialogic to NoMachine.
+
+nx-X11-3.0.0-31
+
+- Make SmartScheduleStopTimer() visible outside Xserver/os/utils.c
+ so that it can be called by the agent. Export the declaration in
+ dixstruct.h.
+
+nx-X11-3.0.0-30
+
+- The OsVendorVErrorFFatal flag is set to 1 if the function pointed
+ by OsVendorVErrorFProc is called due to a fatal error.
+
+- Give the possibility to the agent to redirect the standard error
+ during a Popen() or a System() by setting the OsVendorStartRedir-
+ ectErrorFProc and OsVendorEndRedirectErrorFProc function pointers.
+
+nx-X11-3.0.0-29
+
+- Changed the default message printed on a fatal server error. The
+ new message is:
+
+ Error: Aborting session with 'Error text...'.
+
+- Hacked LogVWrite() to force all fatal error messages to have an
+ uppercase initial. Also remove the trailing newline and the full-
+ stop, if present.
+
+nx-X11-3.0.0-28
+
+- Corrected the typos in the ChangeLog.
+
+nx-X11-3.0.0-27
+
+- Fixed the cleanup of the X_RenderCompositeText16 padding bytes.
+
+- More code cleanup in the NX changes to the Xrender library.
+
+- Changed host.def to build the freetype and fontconfig libraries
+ if the agent server is also built. Freetype is built as a shared
+ library: this avoids the link error on 64 bit platforms.
+
+nx-X11-3.0.0-26
+
+- Applied the following security patches, from the X.Org security
+ advisory, April 3rd, 2007 "Multiple vulnerability in X server,
+ libXfont and libX11":
+
+ xorg-xserver-1.2.0-xcmisc.diff
+ xorg-libXfont-1.2.7-bdf-fontdir.diff
+ xorg-libX11-1.1.1-xinitimage.diff
+
+nx-X11-3.0.0-25
+
+- Added the missing *.X.original file for ChkIfEv.c and Xlib.h.
+
+nx-X11-3.0.0-24
+
+- Changed Xrender to clean up the padding bytes in XRenderComposite-
+ Text functions.
+
+- Added function XRenderCleanGlyphs() cleaning the padding bytes in
+ the data section of RenderAddGlyphs requests.
+
+nx-X11-3.0.0-23
+
+- Removed the additional parameter from the call to NXTransFlush()
+ in _XReply().
+
+- Call NXTransExit() on AbortServer() (called by FatalError()) to
+ give the proxy a chance to shut down the NX transport.
+
+nx-X11-3.0.0-22
+
+- Moved the replacement of XCheckIfEvent() ChkIfEv.c with the name
+ XCheckIfEventNoFlush().
+
+nx-X11-3.0.0-21
+
+- Set BUFSIZE to 8192 bytes. While the output buffer size can be
+ configured by setting the XLIBBUFFERSIZE in the environment (see
+ OpenDis.c), this constant is still used when reading from the
+ socket.
+
+nx-X11-3.0.0-20
+
+- If set, the handler pointed by _NXDisplayWriteFunction is called
+ after that more data is written to the display connection.
+
+nx-X11-3.0.0-19
+
+- Added a RejectWellKnownSockets() stub to make possible to compile
+ the agent when the NX transport is disabled.
+
+- Added more useful logs to _XWaitForWritable().
+
+nx-X11-3.0.0-18
+
+- Changed Imakefile of X11 and Xserver in order to build nxcompshad
+ just before the NX agent server.
+
+- Changed Imakefile in Xserver to add NXdamage.o to NXAGENTOBJS.
+
+nx-X11-3.0.0-17
+
+- Changed host.def in order to build Xdamage and Xrandr libraries.
+
+- Changed host.def in order not to build NXWin.
+
+nx-X11-3.0.0-16
+
+- Changed host.def in order to build Xtst as a shared library.
+
+nx-X11-3.0.0-15
+
+- Changes to comply with nxcompshad library.
+
+- Changed configuration to statically build Xtst library.
+
+- Restored parser directory under Xserver/hw/xfree86.
+
+nx-X11-3.0.0-14
+
+- Changed the LICENSE file to state that the software is only made
+ available under the version 2 of the GPL.
+
+- Added file COPYING.
+
+- In nx-X11/programs and nx-X11/programs/Xserver/hw/xfree86, removed
+ files and directories not needed to build servers.
+
+nx-X11-3.0.0-13
+
+- Changes aimed to link servers with static versions of Xdmcp and Xau
+ libraries.
+
+nx-X11-3.0.0-12
+
+- Added references to implented FR in the ChangeLog.
+
+- Removed nx-X11/fonts and nx-X11/doc directories. They are not needed
+ for building the NX components.
+
+nx-X11-3.0.0-11
+
+- Updated the copyright notices to year 2007.
+
+nx-X11-3.0.0-10
+
+- Applied the following security patches:
+
+ x11r6.9.0-cidfonts.diff
+ x11r6.9.0-dbe-render.diff
+ x11r6.9.0-geteuid.diff
+ x11r6.9.0-mitri.diff
+ x11r6.9.0-setuid.diff
+
+nx-X11-3.0.0-9
+
+- Merged the NX changes to X11 with the X11R6.9.0 version of X.org.
+
+nx-X11-3.0.0-8
+
+- Changes to build Xshadow library when building X11.
+
+- Changes to Xserver Imakefile to link Xshadow library.
+
+- Changes to host.def in order to build on old distributions.
+
+nx-X11-3.0.0-7
+
+- Imported changes up to nx-X11-2.1.0-2
+
+- Fixed TR08D01485. Updated rgb file paths validation in order to
+ support Ubuntu distribution.
+
+- Added Xtst to libraries to be linked by nxagent.
+
+- Changed Xpm Imakefile to build a shared library on Solaris.
+
+- Fixed build error on Solaris in xtrans.
+
+- Changed host.def not to build Xnest server.
+
+- Changed Xserver Imakefile to link nxaccess library.
+
+nx-X11-3.0.0-6
+
+- Added the path of nxaccess library to the server link command.
+
+nx-X11-3.0.0-5
+
+- Implemented FR10C01079 and FR10C01080. The merge of NX changes to
+ the X.org code is complete.
+
+- Merged changes in config/cf. The NX-*.def files have been dismissed.
+ Main platform dependent configurations have been moved to host.def.
+
+- Removed *.reference files from config/cf.
+
+- Fixed compilation for Cygwin platform.
+
+nx-X11-3.0.0-4
+
+- Imported all changes up to nx-X11-2.0.0-32.
+
+- Cleaned up lib/zlib directory.
+
+- Added missing file programs/Xserver/os/utils.c.NX.original.
+
+- Updated the copyright notice to year 2006.
+
+- The pointer to the display buffer is reset after an I/O error.
+ This prevents leaving the buffer in an inconsistent state if the
+ error occurs inside _XFlush().
+
+- Removed the modifications to the Xrender library. The cleanup of
+ the padding bytes is now performed by the NX transport.
+
+- NX uses the updated ZLIB from its build tree, so Imake.tmpl will
+ now assume that the platform as ZLIB unless otherwise stated.
+
+- The path of the SecurityPolicy file is searched and validated at
+ runtime.
+
+- Added the _X11TransSocketProxyConnInfo() function to Xtranssock.c
+ It returns the pointer to the XtransConnInfo private, if it is a
+ valid _NXProxyConnInfo structure.
+
+- The above function is used by OpenDis.c to detect if the NX trans-
+ port was requested on the display and avoid spurious error messa-
+ ges in the case of a connection failure.
+
+- Added NXmiwindow.o to the NXAGENTOBJS in the Xserver's Imakefile
+ and imported NXmiwindow.c in nxagent. This allows us to check the
+ pointer to the pOldClip region in miSetShape() before going on
+ freeing it.
+
+- The path of the XKB base directory and of the xkbcomp comand is
+ validated at runtime.
+
+- Also added a check to verify the validity of the rgb file path.
+
+- Added NXresource.o to NXAGENTOBJS in the Imakefile of nxagent. We
+ need this to a assign a resource to the pixmaps and other server
+ objects which need to be enumerated at reconnection. Some objects,
+ being created by the X server and not by the clients, don't pass
+ through the resource assignment process operated by the dix. To
+ ensure that all objects get a resource, we add a resource at the
+ time the object is created and temporarily assign the resource to
+ the server client. If the dix later assigns the resource to a va-
+ lid client, the resource is removed from the server client's list.
+
+- The display block handler registered by the client is called in
+ WaitForReadable() and WaitForWritable() before every select(),
+ not only upon entering the function. The reason is that more
+ data can be possibly produced for the NX link by the proxy it-
+ self and, when setting the flush policy to deferred, the client
+ may not have the chance of flushing the NX link.
+
+- Fixed a bug in XkbUseExtension() that caused Xlib to query the
+ presence of the XKEYBOARD extension multiple times. This partial-
+ ly implents the FR01D01275. The complete implementation required
+ modifications to the X11 agent, implemented in nxagent-2.0.0-33.
+
+- Updated to comply with the new NXTransFlush() interface.
+
+- Both nxwin and nxagent now read the X authority file by using an
+ fopen() instead of the system command 'cat'.
+
+- Removed NXmiwindow.o from the NXAGENTOBJ list. The agent will now
+ use the original miwindow.c.
+
+- Added some additional logs in Xtranssock.c to follow the creation
+ and removal of the X server's Unix listener.
+
+- Avoided the sleep of 5 seconds forced by Xtransutil.c if the dir-
+ ectory where the Unix listener is created is not owned by root.
+ This sleep is not executed on Cygwin (where the X socket can be
+ hardly owned by root) but may delay the startup of the agent if
+ the user chose a different NX_TEMP directory. Furthermore, it is
+ unclear what real benefits such sleeps are intended to bring to
+ the security of the X server. This can be controlled by defining
+ the NX_TRANS_SLEEP directive in Xserver/os/Imakefile.
+
+- Added NXmiexpose.o to the NXAGENTOBJ.
+
+- Ensured that _X11TransSocketCloseConnInfo() now initiates the NX
+ shutdown by calling NXTransClose().
+
+- Corrected a misplaced #else that made SocketUNIXConnect() skip a
+ block if the connection was not to the NX transport.
+
+- Updated to comply with the new NX function prototypes introduced
+ in nxcomp-2.0.0-31.
+
+- Moved the most important Xtranssock.c modifications into separate
+ functions.
+
+- Ensured that the modifications enabling the internal connections
+ to the proxy are compiled only when the TRANS_CLIENT directive is
+ defined.
+
+- Solved a bug that prevented the X11 socket to be deleted at the X
+ server shutdown. This needs further tests.
+
+- Added nxcompext to the link of nxagent, now that the dependency
+ of libX11 from nxcompext is removed.
+
+- Improved the Xtranssock routines to never loop through the array
+ of connection info.
+
+- Added a congestion flag to the connection info structure and a
+ function querying the transport and reporting if a change in the
+ congestion state has occurred. The code is currently not enabled,
+ because instead of polling the transport, we let the proxy notify
+ the changes in congestion state by using the callback. The code
+ can be used in future to extend the library, for example, by add-
+ ing some counters tracking the bandwidth usage of the socket con-
+ nection, so that we can make the congestion notifications work
+ even with a plain X11 connection.
+
+- Profiled the routines in XlibInt.c to reduce the number of calls
+ to the error predicate function provided by the client.
+
+- Fixed the nxcompext build problem that caused make World to fail.
+
+- Added a 'CONF' target to the X11 and Xext Imakefiles so that the
+ configure script is not run if the config.status exists.
+
+- Added the _NXDisplayBlockHandler hook. The function is called by
+ Xlib before blocking. The parameter says if Xlib is going to wait
+ for more input or because it needs to write to the display socket.
+ The client can use the hook to perform any internal operation that
+ may require some time to complete. The user, though, should not
+ try to read or write to the display inside the callback routine.
+
+- Removed the outdated NX_TRANS_PROCESS, NX_TRANS_THREAD and NX_TR-
+ ANS_INCLUDE defines.
+
+- Reverted the lib/Xext Imakefile to the original XF86 version and
+ moved the build of the nxcompext library among the libX11 depend-
+ encies.
+
+- Corrected the lib/X11 Imakefile so that a new build of nxcomp and
+ nxcompext is not attempted if the libraries are up-to-date.
+
+- Removed the unused display buffer and image cleanup functions.
+
+- Reverted the PutImage.c file to the original XF86 version.
+
+- Added the _NXDisplayErrorPredicate function in XlibInt.c. It is
+ actually a pointer to a function called whenever Xlib is going to
+ perform a network operation. If the function returns true, the
+ call will be aborted and Xlib will return the control to the ap-
+ plication. It is up to the application to set the XlibDisplayIO-
+ Error flag after the _NXDisplayErrorPredicate returns true. The
+ function can be used to activate additional checks, besides the
+ normal failures detected by Xlib on the display socket. For exam-
+ ple, the application can set the funciton to verify if an inter-
+ rupt was received or if any other event occurred mandating the
+ end of the session.
+
+- Modified XIfEvent(), XMaskEvent() and XPeekIfEvent() to check the
+ _NXDisplayErrorPredicate function and return immediately if the
+ function returns true.
+
+- Modified _XWaitForReadable() to never enter the loop if the dis-
+ play is broken.
+
+- Corrected a make problem on Windows that caused the nxcomp and
+ nxcompext libraries to be referred with the wrong name, with the
+ result that a new configure and make was attempted at each build
+ attempt.
+
+- Merged all the changes to os, Xext, xkb, dix.
+
+- Changed host.def to build only the agent server.
+
+- Merged the changes to Xtranssock.c
+
+nx-X11-3.0.0-3
+
+- Merged the changes to lib/X11. Restored original PutImage.c and
+ ClDisplay.c files.
+
+nx-X11-3.0.0-2
+
+- Created a directory named 'reference' to keep files that are chan-
+ ged during the development of nx-X11 since the 1.5.0-16 to 2.0.0-32
+ version. These files will be removed as long as the differences are
+ merged to the 3.0.0 version. When all differences are merged, this
+ directory will be removed.
+
+nx-X11-3.0.0-1
+
+- Opened the 3.0.0 branch based on the nx-X11-2.0.0-9. The 3.0.0
+ branch will now support the migration toward the X.org tree. Due
+ to time concerns, the 2.0.0 branch is going to be based on the
+ same nx-X11 as the 1.5.0.
+
+nx-X11-2.0.0-9
+
+- Modified the agent link arguments to explicitly include the NX
+ libraries.
+
+- Disabled the Xinerama extension to avoid further clashes with
+ the redefinition of GC in Xlib.
+
+- Added os/libos.a at the end of the agent link.
+
+nx-X11-2.0.0-8
+
+- Moved the declarations of _NXEnable* and related structures from
+ Xlibint.h to NXlibint.h.
+
+- Added provision for building the agent. This can be controlled by
+ setting NXAgentServer to YES in host.def.
+
+- Setting the NXUpgradeAgentServer variable to YES in the host.def
+ file will make the agent assume that it is being built in the new
+ environment. This variable is normally unset when building in the
+ 1.5.0 tree.
+
+nx-X11-2.0.0-7
+
+- Fixed a problem on AMD64 due to the size of the area pointed by
+ the argument of _X11TransBytesReadable(). BytesReadable_t is long,
+ at least on Linux, while the ioctl() requires a pointer to an int.
+ The original _X11TransBytesReadable() function simply calls the
+ ioctl() by passing the pointer that is provided. NXTransReadable(),
+ instead, was correctly returning the value assuming a pointer to
+ a long, but this crashes some applications, among them xterm. Now
+ NXTransReadable() follows the same schema of the ioctl() call and
+ stores the result assuming a pointer to an int.
+
+- Removed the outdated NX_TRANS_PROCESS and NX_TRANS_THREAD code.
+
+nx-X11-2.0.0-6
+
+- Made xterm work with the NX transport. This required small changes
+ to the Xt toolkit's and the xterm's files to let them use the NX
+ aware select(). This is useful to test the NX transport until the
+ nxagent server is integrated.
+
+- When the transport is gone _X11TransSocketBytesReadable() returns
+ EPIPE. This makes the client become aware of the closure of the
+ connection.
+
+- Added a call to NXTransDestroy() in XCloseDisplay().
+
+- The exit() function in XlibInt.c causes a call to NXTransExit().
+
+- Merged changes to dix/pixmap.c, xkb/xkbDflts.h, mi/Imakefile.
+
+- Removed unneeded changes and files containing patches already in
+ the latest X.org distribution: dix/dispatch.c, fb/fbcompose.c, fb/
+ fbgc.c, xkb/ddxList.c, font/fontfile/dirfile.c, font/fontfile/
+ encparse.c, font/fontfile/fontfile.c, font/FreeType/fttools.c,
+ Xrender/FillRect.c, Xrender/Picture.c.
+
+nx-X11-2.0.0-5
+
+- Changes to the lib/X11/Imakefile to cleanly build the tree. This
+ is obtained by creating a link to the Xcomp library in exports/lib
+ without having to modify the programs' Imakefiles.
+
+- Finished merging the NX changes in the lib/X11 files.
+
+- Merged the CHANGELOG with the one from the 1.5.0 tree.
+
+nx-X11-2.0.0-4
+
+- Merged the NX changes in most Xtrans and lib/X11 files.
+
+nx-X11-2.0.0-3
+
+- Temporarily disabled the use of the MMX extensions in the Xserver's
+ fb code to successfully compile with GCC 4.
+
+nx-X11-2.0.0-2
+
+- Imported the *.NX.reference and *.XF86.reference files that will
+ be needed for the merge. These files are the *.original from the
+ 1.5.0 tree. They will be removed as long as the merge advances.
+
+nx-X11-2.0.0-1
+
+- Created the 2.0.0 branch based on X.org the 6.8.99.16 snapshot.
+
+nx-X11-1.5.0-16
+
+- Added the missing *.XF86.original and *.NX.original files.
+
+nx-X11-1.5.0-15
+
+- Made the nxagent server use select() instead of poll() on Solaris
+ so that it can leverage the new NX transport.
+
+- Moved the NXTransFlush() call to _XReply().
+
+nx-X11-1.5.0-14
+
+- Added the 'synchronous' parameter in the _XWaitForReadable() call
+ to NXTransFlush().
+
+nx-X11-1.5.0-13
+
+- Removed the log entry in XlibInt.c on calling the NXTransFlush().
+
+nx-X11-1.5.0-12
+
+- Changed XlibInt.c and utils.c to call NXTransExit().
+
+nx-X11-1.5.0-11
+
+- Changed XlibInt.c to comply with the new NXTransFlush() interfa-
+ ce introduced in nxcomp-1.5.0-42.
+
+- Cosmetic changes to messages printed for debug.
+
+nx-X11-1.5.0-10
+
+- Ensured that all calls to _XIOError() are followed by a return.
+
+- Put exiting the client program in the case of an I/O error under
+ the control of the _NXContinueOnDisplayError flag. If set, the
+ I/O error routine will simply return, leaving to the application
+ the responsibility of checking the state of the XlibDisplayIOEr-
+ ror flag.
+
+- Added some checks whenever a read or write is performed on the X
+ connection, so that we can exit the I/O loop if the X channel is
+ gone. It is likely that more work will be needed when trying to
+ support XTHREADS enabled connections. This should not be a pro-
+ blem for now, as the default is still to quit the application un-
+ less the _NXContinueOnDisplayError flag is explicitly set.
+
+nx-X11-1.5.0-9
+
+- Removed the references to the cygipc library in NXWin. Now use the
+ cygserver daemon to provide the MIT-SHM extension.
+
+- Fixed an error in the UseCygIPC definition.
+
+- Changed the cygwin.cf file to avoid redefinition of the BuildGlxExt,
+ XWinServer and BuildGlxExt symbols.
+
+nx-X11-1.5.0-8
+
+- Added provision for deferred writes in the NX transport. When en-
+ tering _XWaitForReadable() we must ensure that data is flushed to
+ the proxy link.
+
+- Added the UseCygIPC define to NX-Cygwin.def.
+
+- Updated the NoMachine copyright notice on the modified files.
+
+nx-X11-1.5.0-7
+
+- Added the GLX extension in NX-Sun.def.
+
+- Added some more logs in WaitFor.c.
+
+nx-X11-1.5.0-6
+
+- Modified Xlibint.h and XlibInt.c to remove the _NXFlushSize para-
+ meter. New agents run the NX transport in-process, so we don't get
+ any benefit from increasing the display buffer size.
+
+- Modified NX-Darwin.def to not build the NXDarwin server. Since the
+ 1.4.0 version the NXDarwin server is unsupported and the NX client
+ for the Mac requires that the Apple X server is installed.
+
+- Changed NX-Linux.def to avoid the warning due to "SharedLibGLw"
+ being not defined.
+
+nx-X11-1.5.0-5
+
+- Modified the Xserver Imakefile to link nxagent with FbPostFbLibs
+ and avoid including mfb/libmfb.a.
+
+- Added the GLX extension in NX-Linux.def. This provides unaccelera-
+ ted support in nxagent, with GLX operations translated into core X
+ protocol primitives.
+
+- Fixed x-X11/programs/Xserver/GL/dri/Imakefile to look in ../../hw/
+ /xfree86/os-support/bus for includes.
+
+nx-X11-1.5.0-4
+
+- Avoid calling NXTransSelect() if the transport is gone, so that we
+ don't have to wait until the timeout.
+
+- Added the "-fno-strict-aliasing" option to linux.cf when compiling
+ with a GCC version >= 4. In the words of Stefan Dirsch: "The opt-
+ ion, which is default since gcc 3.1, can result in wrong code when
+ the gcc warnings related to it are ignored. And as there are seve-
+ ral warnings in X11 related to it, it has been disabled for X11
+ from the beginning. This didn't change for gcc4, so it still needs
+ to be used."
+
+- Added more logs in XlibInt.c and utils.c. A warning is printed if
+ the SmartScheduler is initialized.
+
+nx-X11-1.5.0-3
+
+- Started integration of nxcomp with the X libraries. The Xtrans
+ code creates an internal connection to the nxcomp library instead
+ of a child proxy process.
+
+- Changed Xpoll.h and XlibInt.c to replace the standard Select
+ with a version giving NX a chance to check its own descriptors.
+
+- Implemented the NXTransReadVector() and the NXTransWriteVector()
+ functions to replace READV() and WRITEV().
+
+- Implemented memory-to-memory communication with the NX proxy by
+ making use of the NXTransAgent() interface.
+
+nx-X11-1.5.0-2
+
+- We think that the way LoadAuthorization() is working is wrong.
+ It doesn't reset the list of stored authorizations before reading
+ the new cookies. Our take is that if a new auth file is to be
+ read, the only cookies that are to be accepted are those that are
+ in the new file, not those in the file -plus- those that have
+ been in the file in the past. Furthermore, if the list can't be
+ read or it is empty, it should assume that it ignores which co-
+ okies are valid and thus it should disable any access. Your mile-
+ age can vary. A less draconian approach could be to leave the old
+ cookies if the file can't be read and remove them only if the
+ file is empty.
+
+ Adding the cookies without removing the old values for the same
+ protocol has an important implication. If an user shares the co-
+ okie with somebody and later wants to revoke the access to the
+ display, changing the cookie will not work. This is especially
+ important with NX. For security reasons, after reconnecting the
+ session to a different display, it is advisable to generate a
+ new set of cookies, but doing that it is useless with the current
+ code, as the old cookies are going to be still accepted. On the
+ same topic, consider that once an user has got access to the X
+ server, he/she can freely enable host authentication from any
+ host, so the safe behaviour should be to reset the host based
+ authenthication at least at reconnection, and keep as valid only
+ the cookies that are actually in the file. This behaviour would
+ surely break many applications, among them a SSH connection run
+ inside a NX session, as ssh -X reads the cookie for the display
+ only at session startup and does not read the cookies again
+ when the auth file is changed.
+
+ Another bug (or feature, depending on how you want to consider
+ it) is that if the authority file contains entries for different
+ displays (as it is the norm when the authority file is the default
+ .Xauthority in the user's home), the X server will match -any- of
+ the cookies, even cookies that are not for its own display. This
+ means that you have to be careful when passing an authority file
+ to nxagent and maybe keep separate files for letting nxagent find
+ the cookie to be used to connect to the remote display and for
+ letting it find what cookies to accept. If the file is the same,
+ clients will be able to connect to nxagent with both the cookies.
+ This bug obviously affects any X server, also the real X server
+ running on the workstation, so it is common to see nxagent being
+ able to connect to the X server even if no cookie matches the
+ real display.
+
+- Added a check in lib/Xau/AuRead.c to prevent the fread() call to
+ be interrupted by SIGCHLD while reading the auth file. Due to the
+ way the old code worked, this could lead to the server enabling
+ local host access to the display. This problem had been identified
+ in the past. We just found that all the code dealing with reading
+ the auth file was affected. The code calls sigprocmask() to block
+ the signal (though it leaves some other calls unprotected) but the
+ SIGCHLD was not included in the set.
+
+- Added SIGCHLD to the set of signals that are blocked when reading
+ the authorization file.
+
+- As I was at it, I changed the path to the SecurityPolicy file. A
+ few Linux ditributors ship the file in $LIBDIR/xserver, a few only
+ in /etc/X11/xserver, most others in both places. It seems that
+ those who ship in $LIBDIR/xserver do also in /etc/X11 but the op-
+ posite is not true, so I switched to /etc/X11.
+
+nx-X11-1.5.0-1
+
+- Opened the 1.5.0 branch.
+
+nx-X11-1.4.1-2
+
+- Set parameter UseCygIPC on cygwin conf file in order to force the
+ build of MIT-SHM estension.
+
+- Removed some spurius object file.
+
+nx-X11-1.4.1-1
+
+- Opened the 1.4.1 branch.
+
+nx-X11-1.4.0-8
+
+- Changed DefaultFontPath and DefaultRGBDatabase in
+ NX-Cygwin.def.
+
+nx-X11-1.4.0-7
+
+- Imported dispatch in nxdarwin package, in order to let
+ nxdarwin being able to detect new client connection.
+
+- Changed the Xpm Imakefile to make also .a static library
+ on Solaris. To link nxviewer and nxdestkop staticaly.
+
+nx-X11-1.4.0-6
+
+- XInput extension enabled on MacOSX.
+
+- Added some missing backup files of the original XFree86
+ package.
+
+nx-X11-1.4.0-5
+
+- Changed the mi Imakefile in order to let xfree86 servers use
+ the normal mi extension initialization for the XInput exten-
+ sion.
+
+- XInput extension enabled on Solaris.
+
+nx-X11-1.4.0-4
+
+- Removed the RejectWellKnownSocket for the cygwin and
+ MacOSX environments that doesn't use the Xtransport library.
+
+nx-X11-1.4.0-3
+
+- Changed the implementation of the reject method in the
+ Xtransport library, now close any new incoming connection
+ immediately without reading or writing to it.
+
+nx-X11-1.4.0-2
+
+- Implemented a reject method in the Xtransport library,
+ this function accept and close every connection attempt,
+ on the specified listening socket.
+
+- Added the new function RejectWellKnownSocket to the os
+ connection code.
+ This function use the new transport reject function on
+ all listening socket.
+
+nx-X11-1.4.0-1
+
+- Opened the 1.4.0 branch.
+
+- Removed forgotten nxagent-1.3.2-20 directory.
+
+nx-X11-1.3.2-9
+
+- Prevents NX Darwin server going through the reset. On Darwin
+ we found that the it is not possible to get the correct key-
+ board layout unless it is set on the local machine, before
+ the NX session is started, by using xmodmap. As we set the
+ keyboard locally, we must prevent the X server to reset, or
+ we would loose any local configuration.
+
+nx-X11-1.3.2-8
+
+- Removed action associated to keysym XK_Terminate_Server. This
+ could cause agent to be terminated when pressing shift + back-
+ space if using the default US keyboard mapping.
+
+- Disabled the remaining debug logs in lib/X11/PutImage.c
+
+nx-X11-1.3.2-7
+
+- Fixed the wrong programs/Xserver/Imakefile in 1.3.2-6 package.
+
+nx-X11-1.3.2-6
+
+- Changed the define from NX_CLEAN_IN_PLACE to NX_CLEAN_INPLACE.
+ Definition of symbol is now placed in the Imakefile.
+
+- The new _NXEnableCleanInplace Xlib variable does control which
+ algorithm is used to clean the images. Setting NX_IMAGEINPLACE
+ in the environment will activate the in-place cleanup.
+
+- The default value of _NXEnableCleanInplace is -1. Leaving it to
+ a value <= 0 disables use of CleanInplace.
+
+nx-X11-1.3.2-5
+
+- Patch in config/cf/sun.cf. Fix for libfontconfig compilation
+ during gmake Everything on Solaris.
+
+- Patch in lib/X11/Imakefile. Fix for nxcomp compilation during
+ gmake World on Solaris.
+
+nx-X11-1.3.2-4
+
+- Image cleanup is now performed by using NXCleanInPlaceImage from
+ nxcompext. This function saves a buffer copy by cleaning the
+ padding bytes in the same buffer provided by the caller. Note that
+ to prevent memory violations in the case the image was allocated
+ in a static buffer, the function will temporarily redefine the
+ SIGSEGV handler. The former handler is restored before returning
+ to the caller. This can potentially affect some multithreaded
+ clients. Is to be decided if the function is safe enough to be
+ included in the production release.
+
+nx-X11-1.3.2-3
+
+- More debug logs in programs/Xserver/xkb/ddxLoad.c.
+
+nx-X11-1.3.2-2
+
+- Added NXmiwindow.o to NXAGENTOBJS in programs/Xserver/Imakefile.
+ File was not linked into the resulting nxagent. This solves the
+ problem of missing repaints in CDE and other Xt applications.
+
+nx-X11-1.3.2-1
+
+- Added some debug logs in programs/Xserver/xkb/ddxLoad.c. Function
+ XkbDDXCompileKeymapByNames is called by OpenOffice to read the
+ keyboard configuration whenever a drop-down menu is accessed. It
+ seem to always fail with the following error:
+
+ The XKEYBOARD keymap compiler (xkbcomp) reports:
+ > Error: Can't find file "unknown" for geometry include
+ > Exiting
+ > Abandoning geometry file "default"
+
+- Opened the 1.3.2 development branch.
+
+nx-X11-1.3.1-12
+
+- Fixed a problem in xkb/ddxLoad.c on Solaris where Pclose was
+ always returning an error code despite the fact that command
+ was executed properly.
+
+nx-X11-1.3.1-11
+
+- Changed default GCC flags from '-O2 -fno-strength-reduce' to
+ -O3. No platform where NX is targeted is currently using a
+ GCC 2.x affected by the -fno-strength-reduce bug. Note also
+ that nxcomp is already compiled with -O3 since 1.1.1, so it
+ can be considered safe.
+
+nx-X11-1.3.1-10
+
+- Imported an updated fbcompose.c file from XFree86-4.3.99.902.
+ This fixes "uninitialized value" problems reported by Valgrind.
+
+- Fixed further buffer overflows by updating the following file
+ with recent versions coming from the XFree86-4.3.99.902 tree.
+
+ nx-X11/lib/font/fontfile/dirfile.c
+ nx-X11/lib/font/fontfile/encparse.c
+ nx-X11/lib/font/fontfile/fontfile.c
+
+- Fixed a possible buffer overflow in lib/font/FreeType/fttools.c.
+ Verified that the change is already in the XFree86 4.4.0 CVS.
+
+nx-X11-1.3.1-9
+
+- Fixed Xserver/Imakefile which was still referencing NXpixmap.o.
+
+nx-X11-1.3.1-8
+
+- Imported an updated fbgc.c from XFree86-4.3.99.902. This fixes
+ some minor problems reported by Valgrind.
+
+- A major problem was reported by Valgrind about reading after
+ the block allocated in fbCreatePixmap from AllocatePixmap. The
+ file pixmap.c has been modified so that 4 bytes are added to
+ the pixmap buffer at any new allocation. This quick hack should
+ solve the problem for both nxagent and the NXWin server. Further
+ investigation is planned for the next release.
+
+- Fixed Xtranssock.c to compile on Solaris where struct sigaction
+ doesn't have the sa_restorer member.
+
+nx-X11-1.3.1-5
+
+- Renamed the NX-sun.def configuration file to NX-Sun.def.
+
+- Renamed the non-standard NX_iPAQ_XServer and NX_Zaurus_XServer
+ symbols to NXiPAQXServer and NXZaurusXServer.
+
+- Added the missing sun.cf.XF86.original file in config/cf.
+
+- Added the missing empty file host.def.XF86.original in the
+ same directory.
+
+- Added initialization of sa.sa_mask when setting sigaction()
+ for SIGCHLD. The problem was reported by Valgrind running
+ nxagent.
+
+- Removed an unused block of code from WaitFor.c. The code had
+ been commented out in previous versions.
+
+- Removed the non-standard colon at the end of version in this
+ CHANGELOG.
+
+- Removed the spurious spaces in this CHANGELOG.
+
+nx-X11-1.3.1-4
+
+- Added a little workaround to the top Imakefile intended to
+ hide the makedepend warnings about non portable whitespaces
+ in sources.
+
+nx-X11-1.3.1-3
+
+- Fixed compilation problem with nxagent-1.3.1-13.
+
+nx-X11-1.3.1-2
+
+- Changes in NX-sun.def configuration file for Solaris to allow
+ compilation of the XKB extension.
+
+nx-X11-1.3.1-1
+
+- Opened the 1.3.1 development branch.
+
+nx-X11-1.3.0-6
+
+- Original output buffer size in stock XFree86 is 2048. We try
+ to reduce context switches and help stream compression by
+ increasing the maximum size of the buffer 8192. _NXFlushSize
+ determines when the display buffer is actually flushed. It is
+ set by default to 4096 but agents should set it to 0 if they
+ want to disable early flush.
+
+- Added the _NXLostSequenceFunction function pointer to let NX
+ agents suppress the error message and modify the default Xlib
+ behaviour when out-of-order sequence numbers are received.
diff --git a/nx-X11/lib/X11/XlibInt.c b/nx-X11/lib/X11/XlibInt.c
index d440d663d..9a8ac4b73 100644
--- a/nx-X11/lib/X11/XlibInt.c
+++ b/nx-X11/lib/X11/XlibInt.c
@@ -1840,7 +1840,20 @@ _XSend (
int congestion;
#endif
+#ifdef AGENT_SERVER
+ if (!size || (dpy->flags & XlibDisplayIOError))
+ {
+ if (dpy->flags & XlibDisplayIOError)
+ {
+ dpy->bufptr = dpy->buffer;
+ dpy->last_req = (char *)&_dummy_request;
+ }
+
+ return;
+ }
+#else
if (!size || (dpy->flags & XlibDisplayIOError)) return;
+#endif
dbufsize = dpy->bufptr - dpy->buffer;
#ifdef XTHREADS
dpy->flags |= XlibDisplayWriting;
diff --git a/nx-X11/lib/X11/XlibInt.c.NX.original b/nx-X11/lib/X11/XlibInt.c.NX.original
index d440d663d..9a8ac4b73 100644
--- a/nx-X11/lib/X11/XlibInt.c.NX.original
+++ b/nx-X11/lib/X11/XlibInt.c.NX.original
@@ -1840,7 +1840,20 @@ _XSend (
int congestion;
#endif
+#ifdef AGENT_SERVER
+ if (!size || (dpy->flags & XlibDisplayIOError))
+ {
+ if (dpy->flags & XlibDisplayIOError)
+ {
+ dpy->bufptr = dpy->buffer;
+ dpy->last_req = (char *)&_dummy_request;
+ }
+
+ return;
+ }
+#else
if (!size || (dpy->flags & XlibDisplayIOError)) return;
+#endif
dbufsize = dpy->bufptr - dpy->buffer;
#ifdef XTHREADS
dpy->flags |= XlibDisplayWriting;
diff --git a/nx-X11/programs/Xserver/xkb/ddxLoad.c b/nx-X11/programs/Xserver/xkb/ddxLoad.c
index 8def401e8..8e35ab82a 100644
--- a/nx-X11/programs/Xserver/xkb/ddxLoad.c
+++ b/nx-X11/programs/Xserver/xkb/ddxLoad.c
@@ -559,7 +559,7 @@ char *cmd = NULL,file[PATH_MAX],xkm_output_dir[PATH_MAX],*map,*outFile;
#ifndef __UNIXOS2__
#ifdef NXAGENT_SERVER
- char *xkbbasedir = _NXGetXkbCompPath(XkbBaseDirectory);
+ char *xkbbasedir = _NXGetXkbBasePath(XkbBaseDirectory);
char *xkbbindir = _NXGetXkbCompPath(XkbBinDirectory);
#else
char *xkbbasedir = XkbBaseDirectory;
@@ -569,7 +569,7 @@ char *cmd = NULL,file[PATH_MAX],xkm_output_dir[PATH_MAX],*map,*outFile;
#else
/* relocate the basedir and replace the slashes with backslashes */
#ifdef NXAGENT_SERVER
- char *xkbbasedir = (char*)__XOS2RedirRoot(_NXGetXkbCompPath(XkbBaseDirectory));
+ char *xkbbasedir = (char*)__XOS2RedirRoot(_NXGetXkbBasePath(XkbBaseDirectory));
char *xkbbindir = (char*)__XOS2RedirRoot(_NXGetXkbCompPath(XkbBinDirectory));
#else
char *xkbbasedir = (char*)__XOS2RedirRoot(XkbBaseDirectory);
@@ -675,7 +675,7 @@ char tmpname[PATH_MAX];
#endif
#ifndef __UNIXOS2__
#ifdef NXAGENT_SERVER
- char *xkbbasedir = _NXGetXkbCompPath(XkbBaseDirectory);
+ char *xkbbasedir = _NXGetXkbBasePath(XkbBaseDirectory);
char *xkbbindir = _NXGetXkbCompPath(XkbBinDirectory);
#else
char *xkbbasedir = XkbBaseDirectory;
@@ -684,7 +684,7 @@ char tmpname[PATH_MAX];
#else
int i;
#ifdef NXAGENT_SERVER
- char *xkbbasedir = (char*)__XOS2RedirRoot(_NXGetXkbCompPath(XkbBaseDirectory));
+ char *xkbbasedir = (char*)__XOS2RedirRoot(_NXGetXkbBasePath(XkbBaseDirectory));
char *xkbbindir = (char*)__XOS2RedirRoot(_NXGetXkbCompPath(XkbBinDirectory));
#else
char *xkbbasedir = (char*)__XOS2RedirRoot(XkbBaseDirectory);
diff --git a/nx-X11/programs/Xserver/xkb/ddxLoad.c.NX.original b/nx-X11/programs/Xserver/xkb/ddxLoad.c.NX.original
index 8def401e8..8e35ab82a 100644
--- a/nx-X11/programs/Xserver/xkb/ddxLoad.c.NX.original
+++ b/nx-X11/programs/Xserver/xkb/ddxLoad.c.NX.original
@@ -559,7 +559,7 @@ char *cmd = NULL,file[PATH_MAX],xkm_output_dir[PATH_MAX],*map,*outFile;
#ifndef __UNIXOS2__
#ifdef NXAGENT_SERVER
- char *xkbbasedir = _NXGetXkbCompPath(XkbBaseDirectory);
+ char *xkbbasedir = _NXGetXkbBasePath(XkbBaseDirectory);
char *xkbbindir = _NXGetXkbCompPath(XkbBinDirectory);
#else
char *xkbbasedir = XkbBaseDirectory;
@@ -569,7 +569,7 @@ char *cmd = NULL,file[PATH_MAX],xkm_output_dir[PATH_MAX],*map,*outFile;
#else
/* relocate the basedir and replace the slashes with backslashes */
#ifdef NXAGENT_SERVER
- char *xkbbasedir = (char*)__XOS2RedirRoot(_NXGetXkbCompPath(XkbBaseDirectory));
+ char *xkbbasedir = (char*)__XOS2RedirRoot(_NXGetXkbBasePath(XkbBaseDirectory));
char *xkbbindir = (char*)__XOS2RedirRoot(_NXGetXkbCompPath(XkbBinDirectory));
#else
char *xkbbasedir = (char*)__XOS2RedirRoot(XkbBaseDirectory);
@@ -675,7 +675,7 @@ char tmpname[PATH_MAX];
#endif
#ifndef __UNIXOS2__
#ifdef NXAGENT_SERVER
- char *xkbbasedir = _NXGetXkbCompPath(XkbBaseDirectory);
+ char *xkbbasedir = _NXGetXkbBasePath(XkbBaseDirectory);
char *xkbbindir = _NXGetXkbCompPath(XkbBinDirectory);
#else
char *xkbbasedir = XkbBaseDirectory;
@@ -684,7 +684,7 @@ char tmpname[PATH_MAX];
#else
int i;
#ifdef NXAGENT_SERVER
- char *xkbbasedir = (char*)__XOS2RedirRoot(_NXGetXkbCompPath(XkbBaseDirectory));
+ char *xkbbasedir = (char*)__XOS2RedirRoot(_NXGetXkbBasePath(XkbBaseDirectory));
char *xkbbindir = (char*)__XOS2RedirRoot(_NXGetXkbCompPath(XkbBinDirectory));
#else
char *xkbbasedir = (char*)__XOS2RedirRoot(XkbBaseDirectory);