GNUton v0.1
===========

the GNUton project is an attempt to reimplement the programmer-visible
components of Apple's NewtonOS, enabling existing applications to be
run unaltered on new devices.

this is a very early alpha version.  it is not yet functional in any
way.  it will not run any packages.


if you're a programmer, interested in assisting with the development
of the GNUton project, please have a look at the code and contact me
if you'd like to help in any way.


GNUton is made available under the GPL.  see the LICENCE file for
details.


Installing
----------

just unpack the tar file somewhere convenient.  there's no building
required for GNUton itself, but you must have the following things
installed:

- TCL version 8.x or later
- Tk version 8.x or later
- Berkeley DB 1.85 (or later.  versions 2.0.0 or later must be built
  with 1.8x compatibility)
- Python 1.5 (or better, 1.6 or 2.0)
  - must be configured with Tkinter
  - on Linux, be aware that unless your X libraries are built with
    threads enabled, Tkinter won't work.  try importing Tkinter into an
    interpreter session.
  - bsddb module must be available (it's part of the standard
    distribution, but not compiled by default.  Debian has a package
    for it, but i'm not sure about RedHat)

i had some trouble getting Tkinter to work with Python 1.5 on Linux --
it was not finding the shared libraries it needed.  relinking it with
the libraries explicitly listed on the linker command line worked for
me.


Running
-------

this isn't very sexy yet.  maybe next time ...

1. make sure your PYTHONPATH includes the gnuton/lib directory
2. make sure your LD_LIBRARY_PATH includes the directory containing
   the TCL/Tk shared libraries
3. try importing Tkinter in the python interpreter

    > python
    Python 1.5.1 (#2, May 30 1998, 15:56:52)  [GCC 2.7.2.1] on linux2
    Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam
    >>> import Tkinter
    >>>

ok -- now you're ready to run

  $ cd <whatever your gnuton directory is>
  $ cd lib
  $ python GnutOS/DeskPad.py test.gnt


you should see something like

  DeskPad v0.1 (1.6)
  Copyright (C) 1998, David Arnold.
  
  Loading GnutOS ... configuration from test.gnt
  
  GnutOS v0.1
  Copyright (C) 1998, David Arnold.
  
  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation; either version 2 of the License, or (at
  your option) any later version.
  
  This program is distributed in the hope that it will be useful, but
  WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
  General Public License for more details.
  
  You should have received a copy of the GNU General Public License
  along with this program; if not, write to the Free Software
  Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
  
  Booting ...


if you don't then you'll have to figure out what the python exceptions
mean.  probably one or other of the things above aren't setup
correctly.

after that, you'll get the main window on the screen, and various
other debugging messages from GnutOS.


alternatively, and perhaps more useful at the moment, try

  $ cd <wherever your gnuton directory is>
  $ cd lib
  $ export PYTHONPATH=`pwd`
  $ python GnutOS/Package.py ../test/newt-test.pkg

you should see a description of the package contents (decoded from the
package directory), followed by a very ugly dump of the objects
comprising the package itself.

if you can find a package which makes this break, i'd like to hear
about it.

good luck!


So What Now?
------------

i'm working on 
- Stores
- View system
- interpreter

in that order over the next few weeks/months.  i hope to get a very
simple package running fairly soon.  i'm particularly keen to have
other people look into handwriting recognition, re-writing all the
system protos, etc.  anyone interested?


d@pobox.com
<http://gnuton.sourceforge.net/>
$Id$
