
                                  LessTif FAQ
                                       
About this FAQ

   This article contains the answers to some Frequently Asked Questions
   (FAQ) often seen in the LessTif mailing list and posted to the
   newsgroup comp.windows.x.motif. It is posted to help reduce volume in
   the LessTif mailing list and to provide hard-to-find information of
   general interest.
   
   Please redistribute this article!
   
Contents

     * TOPIC: LessTif General Information
          + 1.0 What is LessTif ?
          + 1.1 Where can I get LessTif ?
          + 1.2 Who is developing LessTif ?
               o 1.2.1 Who is developing What ?
          + 1.3 Can I use LessTif in my applications ?
          + 1.4 Will LessTif be Motif1.2 Compliant?
          + 1.5 Will LessTif be Motif2.0 Compliant?
          + 1.6 What about CDE?
          + 1.7 Is there a LessTif newsgroup?
          + 1.8 Is there a LessTif mailing list?
          + 1.9 Is there a LessTif mailing list digest?
          + 1.10 Is the LessTif mailing list digest available on FTP or
            WWW?
          + 1.11 What is LessDox?
          + 1.12 How can I obtain LessDox?
     * TOPIC: LessTif Installation
          + 2.0 What Platforms is LessTif on?
          + 2.1 Is there a pre-built library available for My Platform?
          + 2.2 Do I have to have Imake/xmkmf?
          + 2.3 Can I build a Shared Library?
          + 2.4 Can I build a Static Library?
          + 2.5 When I build I get _XmuEditResCheckMessages as an undef
            symbol?
          + 2.6 How do I build the makefiles?
          + 2.7 Why does it say I have X11r5 when I have r6 ?
          + 2.8 The build fails with undefined symbols
     * TOPIC: Running applications with LessTif
          + 3.0 Application fails to start
          + 3.1 Application can't load Shared Libraries
          + 3.2 Application doesn't work as expected
     * TOPIC: LessTif Development Progress
          + 4.0 How complete is LessTif ?
          + 4.1 Is there any Documentation for LessTif ?
          + 4.2 How often is a release made ?
          + 4.3 What if I find a Bug ?
          + 4.4 What currently Works?
          + 4.5 Will Motif _Xm functions be implemented?
          + 4.6 How to submit a bugfix/patch?
     * TOPIC: Compiling Applications With LessTif
          + 5.0 I installed LessTif but I can't compile apps with it.
            Help !
          + 5.1 My application doesn't build. What do I do ?
          + 5.2 This app uses Imake but it won't build right.
     _________________________________________________________________
   
TOPIC: LessTif General Information

  1.0 What is LessTif
  
   LessTif is a clone of the Motif® toolkit. Currently LessTif is
   partially implemented with most of the API in place. Saying this a lot
   of the internal functionality is still missing.
   
   Compatibility can have several degrees, the ultimate one being binary
   compatibility. This is the one we're aiming for. This can be tested
   even today on most platforms on which shared libraries are supported :
   if you also have Motif® shared libraries, you can choose which library
   to use by setting an environment variable such as LD_LIBRARY_PATH
   prior to executing an application.
   
   The primary objectives have been to develop the widget code of the
   LessTif Toolkit. Intermittently, the window manager (mwm) and the
   combination of UIL compiler and libMrm are being worked on.
   
   Volunteers to advance one or more parts of LessTif development, or for
   writing documentation without an OSF, X/Open or The Open Group
   copyright on it, are always welcome.
   
  1.1 Where can I get LessTif
  
   You can get it over the Internet at several locations. They're listed
   on our web site at http://www.lesstif.org, which is one of the places
   to get it.
   
   The same web pages can point you to quite a few CD-ROM manufacturers
   which put a version of LessTif on some of their products. Many free
   Unix (RedHat, Debian, SuSE, Walnut Creek FreeBSD, ...) are among them.
   
  1.2 Who is developing LessTif?
  
   The hungry programmers and a few Internet based individuals. Look for
   an up to date list in the AUTHORS file in the LessTif distribution.
   
  1.2.1 Who is developing What?
  
   Keeping a list of developers for each widget is not really possible
   mainly because the we're not fanatic about ownership of a widget. We
   do keep in touch enough to know who's messing with what so we don't
   overlap too much.
   
   The current focus of the core developers can be found on the web
   pages. Even that is hardly up to date :-)
   
  1.3 Can I use LessTif in my applications?
  
   The odds of your application running fairly well with LessTif are
   pretty good.
   
   You should be able to compile and run your code, how well it works is
   another matter... If it doesn't, then we're very interested in hearing
   about what doesn't work and why (we can't fix bugs that we don't know
   about), and we're even more interested in a fix.
   
   If your favourite application does work, please tell us so we add it
   to the list of apps known to work.
   
  1.4 Will LessTif be Motif1.2 Compliant?
  
   Yes this is the first major step.
   
   The core developers have had arguments in the past about shooting for
   something more ambitious than 1.2, but never decided on starting the
   effort until they felt 1.2 compatibility was close.
   
   In early 1997 however, someone asked whether submissions for 2.0 or
   CDE widgets would be accepted.
   
   Of course !
   
   Therefore, we expanded the source directory tree to make it easy to
   add new stuff, and to build several versions of the library (and the
   corresponding tools). So if anybody has a widget, or an application,
   to offer which can advance us in the 2.0 or CDE areas, please E-mail
   us.
   
   Somewhere along 1997 we actually started building 2.0 compliant
   widgets. More of them are needed though.
   
  1.5 Will LessTif be Motif2.0 Compliant?
  
   Yes, even though we're convinced that this will still take a long
   time. Some of the new features in 2.0 are not exactly easy stuff !
   
   Having some of the widgets implemented can make us get away with a lot
   of stuff : some applications just need one of the new widgets. If
   applications use some of the flashy new features such as renderings,
   ...
   
   See also in question 1.4.
   
  1.6 What about CDE?
  
   We've made room for CDE compatible widgets and applications, and we
   should probably talk to the people in the eXode project, who are
   working on this. Look up their stuff at
   http://www.simplicity.net/exode.
   
   We did talk to them.
   
   They basically don't want to use too much of the 2.* stuff (some of it
   is rather buggy in OSF releases); also they really want the core of
   eXode to run on top of LessTif.
   
  1.7 Is there a LessTif newsgroup?
  
   No.
   Regularly, questions about LessTif (or about any free Motif®) clone
   are asked in comp.windows.x or comp.windows.x.motif .
   
  1.8 Is there a LessTif mailing list?
  
   Yes there is. How to get on it is described in the web pages.
   
  1.9 Is there a LessTif mailing list digest?
  
   Yes. How to get on it is described in the web pages.
   
  1.10 Is the LessTif mailing list digest available on FTP or WWW?
  
   No, sorry.
   
  1.11 What is LessDox?
  
   LessDox is the shortened version of the LessTif Documentation Project.
   any previous reference to LDP is now dropped because of the conflict
   with the Linux Documentation Project.
   
  1.12 How can I obtain LessDox?
  
   Currently you can obtain LessDox from the LessTif URL.
   http://www.lesstif.org
   
   Nothing has happened to LessDox in a long time, we would love some
   people to write free documentation describing the LessTif widget set.
     _________________________________________________________________
   
TOPIC: LessTif Installation

  2.0 What Platforms is LessTif on?
  
   A more accurate list is available in an extraneous file. Here's an
   excerpt, with version numbers stripped for brevity :
     * Linux
     * FreeBSD, NetBSD, OpenBSD, BSDi (BSD/OS)
     * Sun (SunOS, Solaris)
     * MkLinux
     * OS/2 (requires XFree86)
     * AIX
     * Digital UNIX
     * HP/UX
     * CygWin 32 (Windows NT, Windows 95 with GNU development
       environment)
       
  2.1 Is there a pre-built library available for My Platform?
  
   Might be, we started doing that as of early March, 1997. The core team
   (and some other brave guys) are providing compiled images. Currently
   we don't have a document describing how to install them, but they're
   there for Linux, FreeBSD, OS/2.
   
   Note we'll only refresh these binary distributions at release time,
   which is about once a month.
   
   The INSTALL file found in the source distribution and on the web
   explains how to install it.
   
   Make sure that you do get a binary version, if that's what you're
   interested in; not the source distribution.
   
   We also have a list of CD-ROMs which include LessTif distributions.
   
  2.2 Do I need to have imake/xmkmf?
  
   No. LessTif used to work with those, but they became more of a problem
   than a solution, so we switched to GNU autoconf, which has the
   additional capability to find out many many things about the target
   platform while auto-configuring itself.
   
   Around December 1997 we also started to work with libtool and
   automake, two more free tools. They should solve the portability
   problems with building shared libraries on multiple platforms for us.
   You'll find this in distributions of LessTif starting with release
   0.85.
   
  2.3 Can I build a Shared Library?
  
   Yes, you can on many platforms. They include Linux, FreeBSD, HP-UX,
   SunOS, Solaris, ... .
   
   We use libtool for keeping the complexities of building and installing
   shared libraries out of LessTif. Therefore, if LessTif doesn't build a
   working shared library on some platform, you may want to check whether
   libtool already supports this platform. Contact the libtool mailing
   list if you're interested in details about the platforms supported by
   libtool. The libtool home page is at
   www.gnu.org/software/libtool/libtool.html.
   
  2.4 Can I build a Static Library?
  
   Even for this we use libtool; but yes, you can on all platforms we can
   think of.
   
  2.5 When I build I get _XmuEditResCheckMessages as an undef symbol?
  
   This shouldn't be the case any more. We've taken EditRes out of Xmu
   and integrated it into LessTif in such a way that we don't get name
   conflicts.
   
   This might produce awkward results in applications that install an
   EditRes handler themselves ...
   
   Somebody probably ought to extend the configuration to allow you to
   conditionally compile out the EditRes support. The problem is nobody's
   complained so far.
   
  2.6 How do I build the makefiles?
  
   LessTif is now using the GNU configure system so all you need to do is
   type
   ./configure
   make

   If you're brave, you might actually add stuff to our tree. In that
   case you probably want to edit configure.in . After that, you need to
   run :
        autoheader
        automake -i
        autoconf
        ./configure
        make

   Autoheader comes with autoconf; automake is a separate utility. You
   don't need to go get libtool; it's included with LessTif.
   
  2.7 Why does it say I need X11r5 or higher when I have r6 ?
  
   Several people have reported build problems; the configure script
   looks for an X distribution and then checks whether it is X11R5 or
   X11R6.
   
   On some systems the configure script stops, saying
configure: error: You must have X11 Revision 5 or higher to compile LessTif

   while the system actually has X11r6.
   
   Apparently this has to do with installations of Linux, in which the
   include files (under /usr/include) often contain symbolic links to the
   source directories (either on disk or on CD-ROM).
   
   In such a situation, if one either removes the CD-ROM, or cleans up
   /usr/src, the effect will be dangling symbolic links under
   /usr/include which confuse our configure script.
   
   The solution is obvious : make sure that your include files don't
   contain symbolic links to nonexistent files.
   
  2.8 The build fails with undefined symbols
  
   We might have screwed up of course.
   
   On the other hand, please make sure that you've built the entire
   distribution with the same configuration.
   
   Not clear ? After running the "configure" command with its options,
   you should ideally run "make clean". Otherwise e.g.
   clients/Motif-1.2/mwm/Makefile may be configured such that it looks
   for stuff that isn't there in lib/Xm/* .
     _________________________________________________________________
   
TOPIC: Running applications with LessTif

  3.0 Application fails to start
  
   Your application fails to start and a sophisticated error message like
   the following is given:
Error: PANIC: no realize procedure specified for this widget.

   or
Error: attempt to add non-widget child "DropSiteManager" to parent
       "xmfoo" which supports only widgets

   We've seen this happen when the order of libraries upon linking was
   incorrect. The correct order is :
-lXm -lXt -lX11

   (see also Question 5.1)
   If you built this application please link it again, otherwise notify
   the maintainer.
   
  3.1 Application can't load Shared Libraries
  
   If you get a message like
foo: error in loading shared libraries
libXm.so.1: cannot open shared object file: No such file or directory

   then you did not tell your system where to look for the shared
   libraries you have (hopefully) installed. The INSTALL file describes
   how to this.
   
  3.2 Application doesn't work as expected
  
   If you build the application make sure you followed the instructions
   in section TOPIC: Compiling Applications With LessTif. Also you may
   have discovered a remaining bug or missing feature in LessTif. See
   section 4.3 What if I find a Bug ?
     _________________________________________________________________
   
TOPIC: LessTif Development Progress

  4.0 How complete is LessTif ?
  
   Hard to say really. Depends on how much credit you give us.
   
   Actually most LessTif widgets work somewhat. Many work fairly well.
   Things like traversal and focus handling have been worked on, but
   probably aren't really all that functional yet.
   
   The menu system is quickly losing its child diseases (occasionally
   freezing the X server with grabs). If you're not in a rush when
   working the menus, the odds are low that you'll get in much trouble.
   Also dragging in the menus will get you in trouble faster than
   clicking.
   
   In short, if something does not work quite right, tell us at
   lesstif@hungry.com and we'll try to help you as soon as we possibly
   can. In fact telling us about your problem is the fastest way to get
   your app to work with LessTif. Recommended !
   
  4.1 Is there any documentation for LessTif ?
  
   Yes the LessTif Documentation Project (Lessdox) check out the LessDox
   home page at: http://www.lesstif.org/Lessdox/lesstif.html
   
  4.2 How often is a release made ?
  
   Starting December 1996 we plan to make intermediary releases every
   month or so, and "real" releases every three months or so. The 0.75
   release was made available around December 11, 1996.
   
   In between releases, you can always grab lesstif-current, which is a
   daily snapshot of the CVS tree which is maintained by the core
   developers. Look at the web site for more info.
   
  4.3 What if I find a Bug ?
  
   Bug reports are very welcome, and we'll do our best to get the fixes
   out as quick as possible. Please send them to lesstif@hungry.com, and
   include the distribution that you are using (e.g, release-0.88). This
   last bit is extremely important, since the source is continuously
   being updated.
   
   The web site contains a write-up on how to submit bug fixes or
   reports.
   
  4.4 What currently runs ?
  
   DDD, Mosaic-2.7, NEdit 5.x, GIMP (old versions only), ...
   
   Look at the web site for a more accurate and timely list.
   
  4.5 Will Motif _Xm functions be implemented?
  
   Sure they will. Many of them are implemented already.
   
   This was not easy though. The _Xm* functions seem to be undocumented
   in Motif 1.2 therefore we will make every effort to implement the
   functions as best we can.
   
   One of our sources of information was "Writing Your Own OSF/MOTIF
   Widgets" by McMinds and Whitty, kindly donated to us by Linux
   International.
   
   Many of the _Xm functions are exposed in OSF/Motif® 2.0 where they
   changed names into Xme*.
   
  4.6 How to submit a bugfix/patch?
  
   This topic is covered in an extraneous file (BUG-REPORTING).
     _________________________________________________________________
   
TOPIC: Compiling Applications With LessTif

  5.0 I installed LessTif but I can't compile apps with it. What's wrong ?
  
   This probably has to do with your compiler options. If it's indeed
   that, there are several possibilities.
   
   In the examples we'll give now, we'll be using some installation
   directories that may differ from your installation. Please adjust your
   compilation parameters accordingly, don't try to fix your installation
   so it matches our examples. In our examples, X has been installed in
   /usr/X11R6 and LessTif has been installed in /usr/lesstif.
   
   Compilation of applications is really a two-step process :
    1. compiling all sources
    2. linking them together
       
   The compilation phase needs to know where to find include files. These
   are files that are referenced in the C (or C++) sources of your
   programs as
#include <Xm/Xm.h>

   and you should find them on your system in a couple of directories
   under /usr/lesstif/Motif1.2/include or /usr/lesstif/Motif2.0/include.
   Specifically the file mentioned above should show up as
   /usr/lesstif/Motif1.2/include/Xm/Xm.h or
   /usr/lesstif/Motif2.0/include/Xm/Xm.h .
   
   For your compiler to find these files, it needs to be told where to
   look. Using the examples above, the flag needed would be
   -I/usr/lesstif/include . Note that you need to tell the compiler the
   same thing about the X Window System include files, you need to do
   that by using the -I/usr/X11R6/include flag. So together this gives
  -I/usr/X11R6/include -I/usr/lesstif/include

   The second step, linking all the source files together, requires
   similar flags. The linker needs to know where the libraries are, and
   additionally you need to tell it which libraries to include in the
   link process.
   
   Again, using the example outlined above, we'd need to use the flags
  -L/usr/X11R6/lib -L/usr/lesstif/lib

   for the linker to know where to look, and
  -lMrm -lXm -lXt -lXext -lX11 -lSM -lICE

   to know which libraries to use. Note that the -lMrm library, as well
   as the -lXext library, aren't always needed, so you might get away
   with using flags like
  -L/usr/X11R6/lib -L/usr/lesstif/lib -lXm -lXt -lX11 -lSM -lICE

   Note that the order of the libraries is important on some systems, and
   less important on others. This means that an application writer better
   uses the right order, or his application won't build on some systems.
   
  5.1 My application doesn't build. What do I do ?
  
   If your application doesn't build, this could have several reasons. If
   it fails in the compilation process, you probably have an application
   that's not error-free; or (more likely) one which needs configuration
   for your site, computer platform, etc.
   It would be a good idea to consult the compilation and installation
   guidelines for that application.
   
   If the linking process fails, this probably means you didn't specify
   some library, or the required libraries aren't present on your system.
   Error messages indicating this are a long list of undefined symbols
   most of which have a name with an identical prefix, such as Xm.
   
   In the following we list some prefixes and the related library.
   
   prefix linker command
   Xt -lXt
   Xmu -lXmu
   Sm -lSM
   Ice -lICE
   Xdbe, Xext, XShape -lXext
   Xm -lXm
   Mrm -lMrm
   
   The order in which you should specify these options is
   -L/usr/lesstif/lib -L/usr/X11R6/lib -lMrm -lXm -lXt -lXmu -lXext -lX11
   -lSM -lICE
   Of course not all of these libraries are always necessary, but in some
   cases more libraries may be required (-lsocket is another candidate
   here).
   
   Once more, the compilation and installation guidelines for the
   application probably tell you which libraries to link with.
   
   Finally, please make sure that you have the X development packages
   installed on your system, not only the X user stuff. Forgetting to
   install the development system could result in messages like Xm/Xm.h :
   cannot open file, or -lXt: library not found.
   
  5.2 This app uses Imake but it won't build right.
  
   Imake is a tool which is included in the X Window System
   distributions. It is an extra layer above Makefiles (processed by the
   make program) which attempts to make the build process more system
   independent.
   
   Nowadays more and more applications use GNU autoconf and GNU automake
   for the same purpose.
   
   The imake program process an Imakefile and turns it into a Makefile.
   Often the Imakefile uses some template file that comes with the
   application, to specify additional options.
   
   If you use imake directly to create the Makefile, then this will
   probably not work right, because you need to tell imake to read the
   LessTif configuration files. The mxmkmf program calls imake with the
   right parameters, so just using this should help.
   
   It is also possible that the Imakefile file or some file used by it
   overrides some of LessTif's parameters. Please check whether
   EXTRA_INCLUDES, XMLIB, or XmClientLibs are overruled in these files.
   If they are, then this is probably the cause of the problem.
     _________________________________________________________________
   
   Please send comments, questions, ... to the mailing list.
