

PLEASE READ THIS DOCUMENT IN ITS ENTIRETY BEFORE USING THIS SOFTWARE.
--------------------------------------------------------------------


LICENSE
=======

See the license (license.html) for use and redistribution terms. You
are allowed to use Kiwi in commercial products provided that:

a) You include in your software disclaimer, About box, splash screen,
or some other visible location, the appropriate credits that the
application uses the Kiwi library. Alternatively, you can have your
application display the Kiwi about box (KiwiUtils.getKiwiAboutFrame()).

b) You bundle the source code for Kiwi AND the LGPL license with your
software distribution, regardless of whether your software is
distributed in binary or source form. This does not mean that your
software must be distributed under the same license as Kiwi; you
should have a separate license that covers your commercial product.

c) You reference Kiwi only through API calls, not by actually copying
Kiwi source code into your program or merging Kiwi source with
proprietary source.

d) If you modify or enhance Kiwi to work better with your product,
then the modified Kiwi is considered a "derivative work" and a
derivative work of any program or library that is copylefted with the
GNU license must in turn inherit that license. You will be obligated
to distribute the source code for the modified Kiwi library, and
distribute it under the terms of the LGPL license. "Modify or enhance"
means actually change the Kiwi source code; it does not mean
enhancement by extending the Kiwi classes through inheritance
mechanisms. Anyone who receives your commercial product should be able
to recompile the modified Kiwi library from the provided source, if he
or she so desires, and use that patched library with your program.

PRICE
=====

Kiwi is `free' in the sense that the source code is provided at no
charge and that you are not obligated to pay anything to use
it. However, please keep in mind that working on Kiwi takes time and
resources (hardware, electricity, etc.) and all of that costs
money. So if you benefit from Kiwi and can afford to send a
contribution to subsidize this and my other (and future) open-source
development efforts, please do so.

USAGE
=====

To use the library, simply put 'kiwi.jar' in your classpath; you can
install it wherever you see fit.

There is now a little bit of native code (using JNI API) in Kiwi; this 
is because of an API deficiency in Java 1.1 and 1.2 that makes it
impossible to set the working directory for a subprocess (or for the
current process, for that matter). This problem makes it impossible to 
write a fully-functional program launcher. Since the Kiwi demo
application, Springboard, *is* a program launcher, I had to find a
workaround. The nativelib/ subdirectory contains the source for the
native code, and precompiled shared objects for some platforms. If
you'd like to contribute a port, please get in touch with me. If you
need to, you can compile the shared library from source. In any case,
the resulting library must be named libkiwi_jniext.so or
kiwi_jniext.dll (for Windoze NT/95), and has to be in your library
path. In UNIX this means the directory in which it is installed must
be listed in LD_LIBRARY_PATH.

I'm very much for 100% Pure Java so I will eliminate all of this JNI
code once Sun fixes the API deficiency. Therefore I suggest you
*don't* write any code that references anything in the kiwi.jniext
package. And *please* vote for bug # 4156278 on the Bug Parade at the
Java Developer's Connection (http://www.javasoft.com/jdc). This
particular API deficiency has caused problems for many developers,
most notably for people writing program launchers, IDEs, and
interpreter shells.

CONTENTS
========

The docs/ subdirectory contains the documentation tree, in javadoc 1.2
format.

The kiwi/ subdirectory is the root of the source tree. This tree is
what used to be distributed as a 'sources.jar' archive. The source files
include CVS history.

The nativelib/ subdirectory contains the native portion of the
code. See above for more info.

The Makefile only works under UNIX systems.

CHANGES
=======

If you have changes for Kiwi, please send them as a `diff' file, or at
the very least, in a form that makes it easy for me to tell what
changed. And please explain in detail what the changes are, what they
do, and why they were made.

INTERNATIONALIZATION
====================

See the file 'I18N' for information about internationalization.

FEEDBACK
========

Please submit any feedback to mesmerism@home.com. I'm especially
interested in just hearing from you if you've had a positive
experience with Kiwi.


EXAMPLES
========

See the examples/ subdirectory. The aren't that many right now. Please
send contributions if you have them.
