[comp.windows.x] What is /usr/X/lib/Xconnections ???

hm1@unhd.unh.edu (Heng Ma) (05/08/91)

We have a system, which is EXLMBX 486/AT. It running under 
System V, release 4.

I have just installed X11.R4 on the system (it didn't run X11 before).
When I try to run some clients (like xclock, maze...), I got the message
as following:

Xlib/_XMakeStreamsConnection: unable to open connection file /usr/X/lib/Xconnections
Error: Cant't Open display

I checked other systems DEC3100, Apollo_3500... and they don't have this file
opened when they run any of the client that come with X11.R4. What can I do 
about it. 

Any help will appreciate.

please e_mail hm1@unhd.unh.edu

Expires: 
References: <9104302312.AA10378@frozen.Franz.COM>
Sender: 
Followup-To: 
Distribution: 
Organization: University of New Hampshire
Keywords: 

randy@erik.UUCP (Randy Brown) (05/11/91)

hm1@unhd.unh.edu writes:
> We have a system, which is EXLMBX 486/AT. It running under 
> System V, release 4.

Lucky you.

> I have just installed X11.R4 on the system (it didn't run X11 before).
> When I try to run some clients (like xclock, maze...), I got the message
> as following:

I'm guessing you built this yourself from the MIT distribution.  A little more
detail on your environment would be useful next time.

Did you build the nameserver used by Streams connections (by adding att-nameserver
to the SUBDIRS in mit/util/Imakefile)?  If you haven't yet poked around in this 
directory, do. Do you have /usr/X/lib/xdaemon and 
/usr/X/lib/net/{your network names here}/nameserver? Is xdaemon running?  And so 
on.  Most of these things are not needed on SVR4, since the multi-network 
nameserver capability is built in, but the X11R4 tape was targeted at SVR3.2.

> Xlib/_XMakeStreamsConnection: unable to open connection file /usr/X/lib/Xconnections
> Error: Cant't Open display

Let's take a simple case.  Suppose your machine is connected to only one network
with connection-oriented facilities, say TCP/IP over Ethernet.  Suppose the 
streams clone device for the t_open to access this net is /dev/tcp.  Then
/usr/X/lib/Xconnections is just

* * tcp

and that's it.  But add an X.25 virtual circuit network and an OSI TP0 over 
token ring, with clone devices x25vc and tp0token.  Say display tokyo:0 is on
host japan on the X.25 net and mfg:0 is on host mfg7 on the token ring.
Everything else is still on the original net. Then /usr/X/lib/Xconnections 
looks like

tokyo:0		japan	x25vc
lathe:0		mfg7	tp0token
*		*	tcp

At least, that's the theory.  I'd love to have a multiply connected machine
to try it out on.  AT&T has offered (given their business success, I hesitate
to say shipped) machines with both 10Mbps and 1Mbps networks attached (Ethernet
and Starlan).  Host naming, addressing, etc. differed, but all could act as
servers to clients on the multiply-connected machine (that's the claim, 
anyway...)  using a single Xlib, etc.

> I checked other systems DEC3100, Apollo_3500... and they don't have this file
> opened when they run any of the client that come with X11.R4. What can I do 
> about it. 

If you don't need multiple-net access, can't figure out the Streams-oriented
stuff, and aren't interested in networking, you might try setting up a new
.cf file that uses sockets instead of Streams.  But I don't know how many 
header files switched locations and contents in the move from what the MIT
distribution expects to what SVR4 provides.

If you want to be thorough, and like networking, dope out how to replace 
the MIT tape's nameserver stuff with the facilities of SVR4; but you'll
still need something like Xconnections to relate display names to hosts
and networks.  (The non-Streams convention that host:0 is a display on host
accessed through tpc/ip and host::0 is on host on decnet could be extended
to other networks until it gets ridiculous, if you prefer to put the load 
on the user instead of on the system administrator.)

Note that you can use an Xlib using TLI to connect to a server using
Internet domain sockets on the same machine or another; the protocol
is the same, only the programmer's interface changes.  Potential
difficulty comes up only when server and client are on the same machine;
you can always fall back to the ip loopback connection, but you can't 
connect an Xlib using Streams pseudo-tty's (MIT X11R4 tape) to one using
Unix domain sockets or Streams pipes or ...  for local transport.

Enjoy.

tony@mcrsys.UUCP (Tony Becker) (05/11/91)

From article <1991May8.141630.8494@unhd.unh.edu>, by hm1@unhd.unh.edu (Heng Ma):
> We have a system, which is EXLMBX 486/AT. It running under 
> System V, release 4.
> 
> Xlib/_XMakeStreamsConnection: unable to open connection file /usr/X/lib/Xconnections
> Error: Cant't Open display

Quite simply, the client doesn't know who to talk to.

try:

DISPLAY=unix:0;export DISPLAY
or
DISPLAY=local:0;export DISPLAY
or
DISPLAY={YOURSYSTEMNAME}:0;export DISPLAY

failing that you must configure your system to allow the server to run.

/dev/X must exist (0755 permissions)
/etc/services must have xserver0 at port 6000 ( It should come this way)
kernel (/etc/conf/cf.d/stune) needs higher streams limits.

failing that you're in for some reading... 8-)

-- 
tony ,....

randy@erik.UUCP (Randy Brown) (05/14/91)

> tokyo:0		japan	x25vc
> lathe:0		mfg7	tp0token
> *		*	tcp

Sorry... I don't think the :0's belong here. ... rb