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 comp.window.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

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?

An accurate list is in the INSTALL file in the LessTif distribution. Here's a short list, with version numbers stripped for brevity :

Send mail to the LessTif mailing list at lesstif@hungry.com if you want to add to the list or if your favourite platform isn't mentioned.

2.1 Is there a pre-built library available for My Platform?

Yes, 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.

The Debian Linux system comes with a pre-compiled version of LessTif.

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 some platforms. They include Linux, FreeBSD, HP-UX, SunOS, Solaris, ... .

We have had reports that this is still a problem on BSD/OS and the CygWin 32 environment. In both cases, this probably just needs work. Most of the work may actually be in libtool. Contact Gordon Matzigkeit if you're interested in details about the platforms supported by libtool.

2.4 Can I build a Static Library?

Yes you can on all tested platforms.

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 Error: PANIC: no realize procedure specified for this widget.

We've seen this happen when the order or shared libraries was incorrect. The link order should be :

-lXm -lXt -lX11

2.9 Applications don't work

A number of things can happen if the library order isn't right. Reports include "XXX works on Solaris 2.5 (I assume with Motif), but not on Linux."

The link order should be :

-lXm -lXt -lX11

The following messages have been reported :

Warning:
    Name: label
    Class: XmLabel
    XmRepTypeValidValue: missing type.

X Error of failed request:  BadPixmap (invalid Pixmap parameter)
  Major opcode of failed request:  55 (X_CreateGC)
  Resource id in failed request:  0x1c00005
  Serial number of failed request:  23
  Current serial number in output stream:  33

2.10 Version 0.82 says it's 0.81

There's a couple of places in which the LessTif version number is actually in the contents of some of the files.

If you don't automate updating this version number automatically, you can be damned sure to forget updating it before making a release.

This is what happened to us with the 0.82 release; it still says it's a 0.81 version (actually in some places it says it's 0.81 alpha).

We fixed this in several places in January 1998, meaning that the 0.83 and subsequent releases will be correct in identifying themselves.

You can update a 0.82 release so it behaves better by manually editing the files. It's in include/Motif-1.2/Xm/Xm.h, include/Motif-2.0/Xm/Xm.h, configure.cmd (OS/2 build script).

2.11 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: LessTif Development Progress

3.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 !

3.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

3.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.

3.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.50). 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.

3.4 What currently runs ?

Mosaic-2.7, nedit-4.0.2, GIMP, ...

Look at the web site for a more accurate and timely list.

3.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.

The _Xm functions are implemented in the Internal Functions section of the LessTif Documentation project.

Many of the _Xm functions are exposed in OSF/Motif® 2.0 where they changed names into Xme*.

TOPIC: LessTif Development Progress

4.0 My application doesn't build. What do I do ?

If your application doesn't build, this could have several causes. 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.

If the names you see have the Xt prefix, you need to add -lXt to your link command.
If the names you see have the Xmu prefix, you need to add -lXmu to your link command.
If the names you see have the Xm prefix, you need to add -lXm to your link command.
If the names you see have the Mrm prefix, you need to add -lMrm to your link command.

The order in which you should specify these options is -L/usr/lesstif/lib -L/usr/X11R6/lib -lMrm -lXm -lXt -lXmu -lX11. All of these libraries aren't always necessary, but in some cases, more libraries may be required.

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.

4.1 My app fails to build. Symbol MrmXXX is undefined.

You probably forgot to add -lMrm to your link command.

Please send comments, questions, ... to the mailing list.


[LessTif Home Page] [Release Notes] [FAQ] [Getting LessTif] [Current Version] [LessTif Version History]
[Apps running with LessTif] [Reporting Bugs] [Platforms] [Core Developers]
[Documentation] [Tutorials, documentation, interesting links] [Mailing Lists] [Release Policy]