Subject: 9libs-0.3, wily, sam test distributions

From: "Mark H. Wilkinson" <[email-masked]>
Date: Fri, 5 Feb 1999 15:04:45 -0500

We (myself and Bengt Kleberg) have been doing some work on adding a more
modern build system to the Plan 9 tools which are available. The result
is a distribution called 9libs which includes the graphics library libXg,
the text frame library libframe and a fledgling accumulation of other
Plan 9 work-a-like functions called libplan9c. I've also reworked the
build system for wily to work with 9libs, and Bengt Kleberg
<[email-masked]> has done the same for sam.

The overall aim of the 9libs distribution is to allow libXg and
libframe to be distributed separately from the programs which rely on
it, and hopefully to make it easier to build a number of different
programs which all use libXg and libframe. We also aim to bring the
build system up to date with modern Unix systems so that it will
build out of the box on more systems. Given that many people use
more than one out of sam, wily, 9term, 9wm and so on, this should make
building the basic tools of your windowing environment simpler.

We're making a test distribution available to try and thrash out any
remaining portability problems on machine types we haven't been able
to lay our hands on. If all goes well we intend to do a 9libs-1.0
release pretty soon.

The distributions are available from the following URLs:
ftp://ftp.cs.york.ac.uk/pub/mhw/experimental/9libs-0.3.tar.gz
ftp://ftp.cs.york.ac.uk/pub/mhw/experimental/sam-9libs.tar.gz
ftp://ftp.cs.york.ac.uk/pub/mhw/experimental/wily-9libs.tar.gz

Instructions for building are included in the distribution. If you
can't follow them, let me know how they could be improved. If the build
system doesn't work for you, submit a bug report to me and I'll see
what can be done. I'm on holiday for the next two weeks so you
might not get a reply straight away, but I'll look into any problems
reported.

To get you interested, here's a brief installation synopsis:

	; gzcat 9libs-0.3.tar.gz | tar xf -
	; cd 9libs-0.3
	; gzcat ../sam-9libs.tar.gz | tar xf -
	; gzcat ../wily-9libs.tar.gz | tar xf -
	; ./configure
	; make
	; make install

That will compile and install the libraries, sam and wily.

Good things:

* You can build shared libraries without much trouble.
* You can build binaries for multiple architectures from the same source
  tree without much trouble.
* You will be able to build 9term and co with no extra effort someday
  soon.
* wily gains a more complete implementation of the Font builtin which
  lets you use any font (X or libXg font file) you have on your system.
  The p9fixed resource is gone; use -F <font> instead like you would
  with acme.

Current problems, off the top of my head:

* There's a problem linking the sam executable against shared libraries:
  the build system tries to link it with libXg, libframe and libplan9c
  when only libplan9c is necessary. libXg and libframe contain undefined
  symbols, so the link fails. You can workaround it by editing
  sam-9libs/sam/Makefile and removing libXg and libframe from the
  LIBS variable.
* The implementation of the Plan 9 print() routines in libplan9c is
  incomplete (it doesn't cover floating point). I'm intending to finish
  it soon. It does include string formatting, so you can write Unicode
  aware command line programs and see their output in 9term.
* The build system contains more lines of text than the source code
  that makes up the libraries. Largely a side effect of using autoconf,
  automake and libtool, I'm afraid. Just think of the bonuses which it
  gets you.

Enjoy,

-Mark.

---

From: Scott Schwartz <[email-masked]>
Date: Mon, 8 Feb 1999 19:41:49 -0500

"Mark H. Wilkinson" <[email-masked]> writes:
| * The implementation of the Plan 9 print() routines in libplan9c is
|   incomplete (it doesn't cover floating point). I'm intending to finish
|   it soon. It does include string formatting, so you can write Unicode
|   aware command line programs and see their output in 9term.

The version of print that I submitted to comp.sources.unix a while ago
is fairly complete.  With a little help from David Gay's fp code from
netlib, it prints floating point very nicely.