Readme
******

The GNUstep Database Library 2 (GDL2) is a set of libraries to map
Objective-C objects to rows of relational database management systems
(RDBMS).  It aims to be compatible with Enterprise Objects Framework
(EOF) as released with WebObjects 4.5 from Apple Inc.  It has been tested
against the following package versions:
- the GNUstep Make Package 2.0.6
- the Base Package 1.16.3
- the GUI/Back Package 1.14.0
- the GORM Package 1.2.6
- the Renaissance SVN Version 27301 (0.10.0 prerelease)

GDL2 consists of the following components:

- EOControl

The fundamental abstraction library which includes many non RDBMS
related extensions such as KeyValueCoding extensions and other
categories.  Most importantly it contains the classes which handle the
coordination of object graphs namely EOEditingContext.

- EOAccess

This library implements the underlying mechanism to retrieve and store
data in RDBMS.  It defines the abstract classes like EOAdaptor which
are subclassed to interface with concrete RDBMS implementations.

- EOInterface

This library implements classes used to synchronize UI components such
as NSTextFields, NSButtons and NSTableViews with the state of objects
which an EOEditingContext contains.

- EOAdaptors

This is a collection of concrete EOAdaptor projects needed to connect
to specific databases.  GDL2 currently supplies Adaptors for
the PostgreSQL and SQLite databases.

   - PostgreSQL: we aim to support PostgreSQL 8.1 and higher API.
   - SQLite: Compatible with SQLite version 3.x

- DBModeler

GDL2 will offers a UI application to create and maintain .eomodel(d)
files.  This is the first release of a preliminary version.

- EOModeler

This framework is which is used by DBModeler can used to write bundles
for DBModeler to interface with the application.

- GDL2Palette
Both Gorm and InterfaceBuilder can be used to create nib files which
contain display groups an EOEditingContext.  The palette provides those
applications with the necessary code to hook up UI components with
the model objects.

- Examples/Trading
 
The Trading framework, provides an example model, and some routines to
create a database from the model, and populate the database with data,
while not an example itself it is indented for use by example applications 
using GDL2 alone, EOInterface or GSWeb, and for higher level tests.

- Using GDL2 in other Projects

Typically you would want to use EOControl and EOAccess for tools and
EOInterface additionally for applications.  

Tools:
ADDITIONAL_NATIVE_LIBS += EOControl EOAccess

Applications:
ADDITIONAL_NATIVE_LIBS += EOControl EOAccess EOInterface

GDL2 based Palettes / DBModeler Bundles:
ADDITIONAL_NATIVE_LIBS += EOControl EOAccess EOInterface EOModeler


======================
*** Important Note ***
======================

This release is meant for developers who can help test and contribute
the current code or are willing to test the interface.  It is not
ready for general purpose production code.  Having said that, it
should be mentioned that GDL2 is being used in production environments
and has been much tested in those contexts.

Expect the current interface to change especially with respect to
functions and methods not documented in EOF 4.5.  Even the library
names themselves may change.

See the TODO file for parts that still need implementains or testing.

If you identify something that you need, please let us know at
<discuss-gnustep@gnu.org> or even better get copyright assignment for
the FSF and post a patch.

Initial reading
===============

   The file `NEWS' has the library's feature history.
   The file `INSTALL' gives instructions for installing the library.
   The file `TODO' lists components which are not fully implemented.

License
=======

   The GNUstep libraries are covered under the GNU Lesser Public
License.  This means you can use these libraries in any program (even
non-free programs).  If you distribute the libraries along with your
program, you must make the improvements you have made to the libraries
available to those you distribute to.  You should read the COPYING.LIB
file for more information.

   GNUstep tools, test programs, and other files are covered under the
GNU General Public License.  This means if you distribute derivative works
of these programs you must distribute them in compliance with the
GPL.  You should read the COPYING file for more information.

How can you help?
=================

   * Give us feedback!  Tell us what you like; tell us what you think
     could be better.

     Please log bug reports on the GNUstep project page
     <http://savannah.gnu.org/support/?group=gnustep> or send bug
     reports to <bug-gnustep@gnu.org>.


     Happy hacking!

Additional Notes
================

if you installed PostgreSQL in /usr/local/pgsql (which is the default
if you install from source) you need to do that:

./configure --with-pgsql-include=/usr/local/pgsql/include --with-pgsql-library=/usr/local/pgsql/lib

before building

