Check out the new USENIX Web site.

Porting and Maintaining with X and Motif:
A Retrospective View

Paul Davey

User Interface Technologies Ltd.
17-21 Sturton Street
Cambridge, CB1 2SN, England


In 1989 I accepted a job with IXI Ltd. in Cambridge, England, a small software house specializing in the X Window System. The flagship product, X.desktop, was then moving into its third major version (2.0), the first based on Motif.

Initially IXI was establishing X.desktop, and the concept of desktop software for Unix and X, but as time went the initial issues of rapid portability and flexibility, were replaced by other factors as the company, market and product all grew larger and more complex.

Maturing code, increasing numbers of programmers and staff turnover all played their part in making the management of the ongoing project more and more challenging. When overseeing the porting and maintenance of X.desktop in 1992, I found myself dealing concurrently with three major versions (2.0, 3.0 and 3.5), existing on over 30 platforms (with more than 50 active configurations).

After successfully streamlining the porting and maintenance process I was then asked to organize the Motif toolkit team along similar lines in August 1993. This was subtlety different from the X.desktop work since the code originated externally (from the Open Software Foundation), and had to meet open as opposed to proprietary standards.

Keen competition in the market providing Motif development libraries on Sun meant that high quality and ease of use was highly important. As with X.desktop a rapid response to customer problems was another important factor in keeping customers satisfied.

This talk will examine some of the lessons learned about the development of multi-platform applications and toolkits over the software life cycle of X.desktop. Some additional examples are taken from the work porting and enhancing the Motif toolkit.

Although a premier X application X.desktop code was only partly X based, much of it being either Unix system related or just plain data manipulation. The uses (and abuses) of standard Unix software tools such as yacc, lex and SCCS will be illustrated. The parallel development of a problem and bug tracking systems will be described as it resulted in the customized internal tool in use at the end of 1993.

Download the full text of this paper in ASCII (20,036 bytes) and POSTSCRIPT (40,685 bytes) form.

To Become a USENIX Member, please see our Membership Information.