	     Frequently-noted Problems concerning Xarchie
				   
			   George Ferguson
		      ferguson@cs.rochester.edu

			      23 Apr 1993

The following list includes problems that I have heard about
repeatedly, and which I am tired of hearing about. Sometimes there's a
fix, sometimes not. This list will no doubt continue to grow. I'd be
happy to receive contributions that address any of these issues. I
will, at best, ignore anyone who mails me about them without useful
suggestions.

CONTENTS:
--------
 1. The configure script crashes when it tries to invoke sed.
 2. I don't have xmkmf
    OR I don't have imake
    OR xmkmf didn't work.
 3. I get the following messages from my linker during the final link
    of xarchie:
	ld: Undefined symbol
	   _sin
	   _cos
	   _pow
	   _floor
	   _get_wmShellWidgetClass
	   _get_applicationShellWidgetClass
 4. I get the following message from my linker:
	ld: Undefined symbol 
	   _XtStrings 
 5. The linker complains about -lresolv.
 6. I can't see anything in the Text widgets, but xarchie appears to
    be doing something.
 7. Xarchie built fine, but I always get ``Can't resolve hostname''
    errors when I try to query.
 8. Xarchie built fine, but I never get a reply the server. It always
    times out.
 9. I see some #ifdef's for VMS. Can I run xarchie on VMS and/or
    DecWindows?
10. How can I run xarchie through a firewall?
11. How do I link under Solaris 2.1 and OpenWindows 3.1? (May apply
    to other combinations of Solaris and OW.)
12. Why does Xarchie sometimes crash when I scroll the Help?
13. The list of files in the FileChooser widgets don't seem to get
    displayed properly all the time.
14. The icons don't change like the manpage says they should.
15. I get what seems to be an endless stream of "select failed" messages.

QUESTIONS and ANSWERS:
---------------------
 1. The configure script crashes when it tries to invoke sed. What can
    I do about it?

    The configure script (generated automatically by autoconf from
    config.in and included in the distribution ready-to-run) puts
    together a long sed command to effect the appropriate
    substitutions to create config.h from config.h.in. You should
    probably get a new version of sed, like maybe GNU sed. For
    xarchie, you can to copy config.h.in to config.h and make the
    appropriate definitions for your system.

 2. "I don't have xmkmf" OR "I don't have imake" OR "xmkmf didn't
    work".

    See item (A) in the INSTALL file.

 3. I get the following messages from my linker during the final link
    of xarchie:
	ld: Undefined symbol
	   _sin
	   _cos
	   _pow
	   _floor
	   _get_wmShellWidgetClass
	   _get_applicationShellWidgetClass

    Well, from what I can gather, this is a problem for some flavours
    of OpenWindows. As a quick check would show, xarchie doesn't use
    any of these functions. The first functions can be found by adding
    "-lm" to the LOCAL_LIBRARIES definition in the Imakefile,
    something that should have been looked after by the installation
    of imake/xmkmf. The other functions I have never heard of. Your
    one hope is that some people have reported that the resulting
    "xarchie" file is still executable despite the errors. Try it and
    see.

    >From: Harald Tveit Alvestrand <harald.t.alvestrand@delab.sintef.no>
    >
    >It turns out that the problem occurs with X11R4 on SunOS 4.1.2 and
    >later. SUN "fixed a bug" in the linker that made it conform to the
    >documentation (AARRGGHH), which, as a side effect, wrecked linking
    >to X11R4. 
    >
    > There are only 2 solutions that I know of:
    > - Upgrade to X11R5 libraries, which don't have the problem
    > - Add the following line to the Imakefile:
    >     LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS) -Bstatic

    Your mileage may vary. I suggest doing this if only if necessary
    (that is, if your executable isn't executable).

 3. I get the following message from my linker:
	ld: Undefined symbol 
	   _XtStrings 

    XtStrings is an array used in <X11/StringDefs.h>. It was introduced
    in R5 to allow internationalization of the resource names by
    storing, eg, the name XtNstring (that is, the C constant)
    as
	#define XtNstring ((char*)&XtStrings[733])
    rather than
	#define XtNstring "string"
    The choice is controlled by a cpp constant XTSTRINGDEFINES used in
    the above-mentioned header file.

    I would say that whoever installed your X botched it, since they
    apparently didn't define XTSTRINGDEFINES, but also didn't arrange
    for the string array itself to get compiled into the library.
    You could try recompiling with -DXTSTRINGDEFINES added to DEFINES
    in the Imakefile.

 5. The linker complains about -lresolv.

    From the INSTALL file:
    >One fairly common problem is that configure will decide that you
    >need to link with -lresolv and define NEED_LRESOLV in config.h.
    >This happens when the test program resolv.c either doesn't compile
    >or compiles but doesn't work properly. Normally, this means that
    >your system requires linking with libresolv.a to force DNS
    >nameserver lookups. If you don't have /usr/lib/libresolv.a (or some
    >local variant), or if resolv.c compiles and runs properly, you
    >shouldn't define NEED_LRESOLV.

 6. I can't see anything in the Text widgets, but xarchie appears to
    be doing something.

    This seems to be a problem with SGI systems. I believe that the
    problem was/is that the "fixed" font used in version 1.3 as a
    presumably well-chosen default wasn't in fact well-chosen. In fact,
    it seemed to be 0 points, or something equally small.

    As of version 2.0, it is easier to change the fonts used by xarchie
    without editing all the definitions in the Xarchie.ad file. The two
    resources "xarchieFont" and "xarchieBoldFont" are defined near the
    top of that file, and the resource converter for fontnames has been
    modified to convert a request for font "xarchieFont", for example,
    into the corrresponding font. That is, a level of indirection was
    introduced so you'd only have to change one resource entry to
    affect all fonts in the application. The default was also chosen to
    be something that will hopefully exist and be readable on all
    systems. I hope to never hear about this again.

 7. Xarchie built fine, but I always get ``Can't resolve hostname''
    errors when I try to query.

    This means that your C library doesn't use DNS hostname lookup by
    default. You should have uncommented the definition of RESOLV_LIB
    in the Imakefile. See the file INSTALL for details. You can further
    test this by compiling the file "resolv.c" and running it. If you
    get an error, then you need -lresolv.

 8. Xarchie built fine, but I never get a reply from the server. It
    always times out.

    The Prospero protocol that underlies xarchie requires that UDP
    traffic be enabled on your system. If you get nothing but timeouts
    from dirsend, then either the server is just too heavily loaded or
    UDP traffic is disabled. To test the latter hypothesis, compile
    "udp.c" and follow the directions at the top of the file. If UDP
    traffic is in fact disabled, talk to to your syadmins. Otherwise,
    if you're *sure* it isn't just a loaded server, report the
    situation in detail.

 9. I see some #ifdef's for VMS. Can I run xarchie on VMS and/or
    DecWindows?

    No. The #ifdef's are in parts of the code shared with the
    standalone archie client written by Brendan Kehoe, which does,
    apparently, run under VMS.

10. How can I run xarchie through a firewall?

    I don't know. You need to enable UDP traffic, as described above.
    I would suggest contacting some of the Prospero or Xarchie people
    listed elsewhere in the documentation. I include below the
    following message from comp.unix.wizards, in case it's useful:

    >From: wietse@wzv.win.tue.nl (Wietse Venema)
    >Subject: Re: FTP & TELNET Through a fewall
    >Date: 11 Feb 93 21:35:10 GMT
    >
    >The socks (socket call redirection library) comes with an example of an
    >ftp proxy client. Applying the same operation to a telnet client (using
    >freely-available bsd sources) should be relatively easy.
    >socks can be found on s1.gov in /pub/socks.tar.Z. It is described in
    >the proceedigs of the 3rd UNIX Security Symposium last September.

11. How do I link under Solaris 2.1 and OpenWindows 3.1? (May apply
    to other combinations of Solaris and OW.)"

    >From: simon@lia.di.epfl.ch (Simon Leinen)
    >
    >Under SunOS 5.1 with OpenWindows 3.1, one has to manually add
    >"-lsocket" and "-lnsl" to the linker command; I think this is because
    >the OW3.1 config files don't handle SVR4 very well.

    That is, add "-lsocket -lnsl" to the definition of LOCAL_LIBRARIES
    and re-run xmkmf.

12. Why does Xarchie sometimes crash when I scroll the Help?

    I don't know. At least on X11R5p20, a stack trace shows that the
    error is occurring in XtCallCallbacks() called from
    XawPanedAllowResize(). Problem is, I don't see how that can
    happen, since the latter function simply sets a flag. A fix would
    be welcome.

13. The list of files in the FileChooser widgets don't seem to get
    displayed properly all the time.

    This seems like an Xaw bug, but is difficult to repeat in
    isolation. Refreshing the window (eg., iconify/deiconify or
    scrolling up/down) clears it up. Fixes are welcome.

14. The icons don't change the way the manpage says they should.

    Icons are a tricky business, since they involve the application
    and the window manager and whatever "look and feel" they all feel
    like imposing. All I can say is that simply set the XtNiconName
    and XtNiconPixmap resources for the toplevel xarchie shell. I
    trust the Intrinsics to do the right thing with respect to ICCCM
    protocols and the like. Your window manager may not support icons.
    Your version of the Intrinsics may not do the right thing. Too
    bad.

15. I get what seems to be an endless stream of "select failed" messages.

    These messages are coming from the heart of the X11 event dispatch
    loop. What it probably means is that one of the various file
    descriptors registered with the server for asynchronous
    notification (for Prospero or FTP) is no longer valid but hasn't
    been cleared from X's select mask. Unfortunately, the X code
    simply prints a message and loops, which means that select() will
    fail again, etc., ad nauseam.

    Please do not report this problem without the following
    information! You should add a line `#define DEBUG' before the
    `#include "debug.h"' in file ftp.c and then rebuild xarchie.
    Include the resulting trace (from stderr) with your bug report.
