$Revision$
$Name$
$Date$
$Author$
$State$
$Locker$
$Source$
$Header$

Copyright (C) 2004 lyrix community

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., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA

http://www.gnu.org/licenses/gpl.html


lyrix is a PostgreSQL database backend. It provides information on lyrics of songs in sophisticated ways (I suppose it can be as easily used for any lyrics). Especially, it is intended for translations of song texts. Its use is should be like the use of a Wiki.

For front end programmers:
- be aware that lyrix uses UTF8 encoding. You probably need to set the encoding
  of your front end or the encoding mapping accordingly.
- Many tables have comment tables associated with them. lyrix implements a kind
  of threading mechanism. Every comment as insert on the comment table generates
  a new thread. Corrections to a commited comment are _not_ possible. Every update on the respective entry generate a new entry. That also means that if you want to support the threading mechanism with your front end you _must_ implement follow-ups to an existing comment as update to the existing comment.

lyrix is distributed under GPL-2.


Prerequistes
------------

Database: PostgreSQL 7.3.4 (at least that one is tested)
Database owner user: "lyrix_dba"
Database instance: "lyrix" with pg/plsql support
Database reader user: "lyrix_reader"
Database writer user: "lyrix_writer"


Installation
------------

01. Create above mentionned database users; run "database_users.pgsql" as user "postgres" on "template1".
02. Create groups "lyrix_writers" and "lyrix_readers"; run "database_groups.pgsql" as user "postgres" on "template1";
03. Create the database "lyrix" for user "lyrix_dba"; run "database_instance.pgsql" as user "postgres" on "template1";
04. If "template1" has no support for "PL/pgSQL", run "createlang plpgsql lyrix" as unix user of the database process and database user at the same time (probably "postgres")
05. Modify "/<path>/<to>/<your>/<postgresql-server>/pg_hba.conf" such that "lyrix_dba" is allowed to connect from "localhost", "lyrix_reader" and "lyrix_writer" from everywhere, e. g. include lines:
   local   lyrix       lyrix_dba                                                                                     md5
   hostssl lyrix       lyrix_reader                                                  0.0.0.0         0.0.0.0         md5
   hostssl lyrix       lyrix_writer                                                  0.0.0.0         0.0.0.0         md5
06. Reload your PostgeSQL server configuration
07. Install all objects on "lyrix"; run "install_lyrix.pgsql" as user "lyrix_dba" on "lyrix" (password equals user name)
08. Change the passwords of all lyrix-users to your convenience.

$Log$
