Newsgroups: comp.windows.x
Path: utzoo!utgpu!watserv1!watdragon!watsol.waterloo.edu!tbray
From: tbray@watsol.waterloo.edu (Tim Bray)
Subject: Alternative location for X11R4 - be careful!
Message-ID: <1991Feb23.215852.15898@watdragon.waterloo.edu>
Sender: daemon@watdragon.waterloo.edu (Owner of Many System Processes)
Organization: University of Waterloo
References: <32602@sequoia.execu.com>
Date: Sat, 23 Feb 1991 21:58:52 GMT
Lines: 28

Just ran across a nasty side-effect of putting X in a funny location.  X
provides a facility for the creation of private keysyms.  For example, 
Motif 1.1 takes advantage of this to create a bunch of "OSF" keysyms. These
are resolved by looking them up in .../lib/XKeysymDB.

Fine and good.  The trouble is, the pathname string gets compiled into
Xlib.  So code that depends on this, for example any Motif 1.1 application,
if it is built on a system where X lives in /somewhere/else/X11/..., will
not use OSF keysyms properly unless the people who want to run it create
/somewhere/else/lib/XKeysymDB or whatever.  And conversely, people who
want to have their X in /somewhere/else... had better have /usr/lib/X11
around too, or they will have a mirror-image of this problem.

Hmmm, here's the output of 

cd ...source.../lib/X
egrep '\/usr' *.[ch]

XConnDis.c:#define X_UNIX_PATH "/usr/spool/sockets/X11/"
XErrDes.c:#define ERRORDB "/usr/lib/X11/XErrorDB"
XStrKeysym.c:#define KEYSYMDB "/usr/lib/X11/XKeysymDB"
Xstreams.c:static char	*XNETDB = "/usr/X/lib/Xconnections";
Xstreams.h:#define XNETSPECDIR	"/usr/X/lib/net"
Xstreams.h:#define XROOTDIR	"/usr/X"

Any other bombs lurking here?

Cheers, Tim Bray, Open Text Systems
