<para>Debian</para>
<itemizedlist>
<listitem>
- <para>6.0 "Squeeze" (hier muss allerdings das Modul FCGI in der Version >= 0.72 compiled werden)</para>
+ <para>6.0 "Squeeze" (hier muss allerdings das Modul FCGI in der Version >= 0.72 compiled werden, und <literal>Rose::DB::Object</literal> ist zu alt)</para>
</listitem>
<listitem>
<para>7.0 "Wheezy"</para>
</listitem>
<listitem>
- <para>openSUSE 12.1 und 12.2</para>
+ <para>openSUSE 12.2 und 12.3</para>
</listitem>
<listitem>
<listitem><para><literal>Rose::DB</literal></para></listitem>
- <listitem><para><literal>Rose::DB::Object</literal></para></listitem>
+ <listitem><para><literal>Rose::DB::Object</literal> Version 0.788 oder neuer</para></listitem>
<listitem><para><literal>Template</literal></para></listitem>
<listitem><para><literal>YAML</literal></para></listitem>
</itemizedlist>
+ <para>Seit v3.0.0 sind die folgenden Pakete hinzugekommen: <literal>File::Copy::Recursive</literal>.</para>
+
<para>Seit v2.7.0 sind die folgenden Pakete hinzugekommen: <literal>Email::MIME</literal>, <literal>Net::SMTP::SSL</literal>,
<literal>Net::SSLGlue</literal>.</para>
port = 5432
db = kivitendo_auth
user = postgres
-password =
-
-[system]
-dbcharset = UTF-8</programlisting>
+password =</programlisting>
<para>Nutzt man wiederkehrende Rechnungen, kann man unter
<varname>[periodic_invoices]</varname> den Login eines Benutzers
<para>PostgreSQL muss auf verschiedene Weisen angepasst werden.</para>
<sect2 id="Zeichensätze-die-Verwendung-von-UTF-8">
- <title>Zeichensätze/die Verwendung von UTF-8</title>
+ <title>Zeichensätze/die Verwendung von Unicode/UTF-8</title>
- <para>Bei aktuellen Serverinstallationen braucht man hier meist nicht
- eingreifen</para>
+ <para>kivitendo setzt zwingend voraus, dass die Datenbank Unicode/UTF-8 als Encoding einsetzt. Bei aktuellen Serverinstallationen
+ braucht man hier meist nicht einzugreifen.</para>
- <para>Dieses kann überprüft werden: ist das Encoding der Datenbank
- “template1” “UTF8”, so braucht man nichts weiteres diesbezüglich
- unternehmen. Zum Testen:
+ <para>Das Encoding des Datenbankservers kann überprüft werden. Ist das Encoding der Datenbank "template1" "Unicode" bzw. "UTF-8", so
+ braucht man nichts weiteres diesbezüglich unternehmen. Zum Testen:</para>
<programlisting>su postgres
echo '\l' | psql
exit </programlisting>
- Andernfalls ist es notwendig, einen neuen Datenbankcluster mit
- UTF-8-Encoding anzulegen und diesen zu verwenden. Unter Debian und
+ <para>Andernfalls ist es notwendig, einen neuen Datenbankcluster mit
+ Unicode-Encoding anzulegen und diesen zu verwenden. Unter Debian und
Ubuntu kann dies z.B. für PostgreSQL 8.2 mit dem folgenden Befehl
getan werden:</para>
<para>Unter anderen Distributionen gibt es ähnliche Methoden.</para>
- <para>Wurde PostgreSQL nicht mit UTF-8 als Encoding initialisiert und
- ist ein Neuanlegen eines weiteren Clusters nicht möglich, so kann
- kivitendo mit ISO-8859-15 als Encoding betrieben werden.</para>
-
<para>Das Encoding einer Datenbank kann in <command>psql</command> mit
<literal>\l</literal> geprüft werden.</para>
</sect2>
<para>Zuerst muss eine Datenbank angelegt werden. Verwenden Sie für
den Datenbankzugriff den vorhin angelegten Benutzer (in unseren
Beispielen ist dies ‘<literal>kivitendo</literal>’).</para>
-
- <para>Wenn Sie für die kivitendo-Installation nicht Unicode (UTF-8) sondern den europäischen Schriftsatz ISO-8859-15 benutzen
- wollen, so müssen Sie vor dem Anlegen der Datenbank in der Datei <filename>config/kivitendo.conf</filename> die Variable
- <literal>dbcharset</literal> im Abschnitt <literal>system</literal> auf den Wert ‘<literal>ISO-8859-15</literal>’ setzen.</para>
-
- <para>Bitte beachten Sie, dass alle Datenbanken den selben Zeichensatz
- verwenden müssen, da diese Einstellungen momentan global in kivitendo
- vorgenommen wird und nicht nach Datenbank unterschieden werden kann.
- Auch die Authentifizierungsdatenbank muss mit diesem Zeichensatz
- angelegt worden sein.</para>
</sect2>
<sect2 id="Gruppen-anlegen">
<literal>print_templates</literal> auf ‘<literal>1</literal>’ stehen.
Dieses ist die Standardeinstellung.</para>
- <para>Weiterhin muss in der Datei
- <filename>config/kivitendo.conf</filename> die Variable
- <literal>dbcharset</literal> im Abschnitt <literal>system</literal> auf
- die Zeichenkodierung gesetzt werden, die auch bei der Speicherung der
- Daten in der Datenbank verwendet wird. Diese ist in den meisten Fällen
- "UTF-8".</para>
-
<para>Während die Erzeugung von reinen OpenDocument-Dateien keinerlei
weitere Software benötigt, wird zur Umwandlung dieser Dateien in PDF
OpenOffice.org benötigt. Soll dieses Feature genutzt werden, so muss
<para>Mit FastCGI ist die neuste Version auf 0,26 Sekunden selbst in
den kritischen Pfaden, unter 0,15 sonst.</para>
</sect2>
-
- <sect2 id="devel.fcgi.known-issues">
- <title>Bekannte Probleme</title>
-
- <sect3 id="devel.fcgi.known-issues.encoding">
- <title>Encoding Awareness</title>
-
- <para>UTF-8 kodierte Installationen sind sehr anfällig gegen
- fehlerhfate Encodings unter FCGI. latin9 Installationen behandeln
- falsch kodierte Zeichen eher unwissend, und geben sie einfach
- weiter. UTF-8 verweigert bei fehlerhaften Programmpfaden kurzerhand
- das Ausliefern. Es wird noch daran gearbeitet, alle Fehler da zu
- beseitigen.</para>
- </sect3>
- </sect2>
</sect1>
<sect1 id="db-upgrade-files" xreflabel="Datenbank-Upgradedateien">
xreflabel="Einführung in die Datenbank-Upgradedateien">
<title>Einführung</title>
- <para>Der alte Mechanismus für SQL-Upgradescripte, der auf einer
- Versionsnummer beruht und dann in sql/Pg-upgrade nach einem Script für
- diese Versionsnummer sucht, schränkt sehr ein, z.B. was die parallele
- Entwicklung im stable- und unstable-Baum betrifft.</para>
-
- <para>Dieser Mechanismus wurde für kivitendo 2.4.1 deutlich erweitert.
- Es werden weiterhin alle Scripte aus sql/Pg-upgrade ausgeführt.
- Zusätzlich gibt es aber ein zweites Verzeichnis, sql/Pg-upgrade2. In
- diesem Verzeichnis muss pro Datenbankupgrade eine Datei existieren,
- die neben den eigentlich auszuführenden SQL- oder Perl-Befehlen einige
- Kontrollinformationen enthält.</para>
-
- <para>Neu sind die Kontrollinformationen, die Abhängigkeiten und
- Prioritäten definieren können werden, sodass Datenbankscripte zwar in
- einer sicheren Reihenfolge ausgeführt werden (z.B. darf ein "ALTER
- TABLE" erst ausgeführt werden, wenn die Tabelle mit "CREATE TABLE"
- angelegt wurde), diese Reihenfolge aber so flexibel ist, dass man
- keine Versionsnummern mehr braucht.</para>
-
- <para>kivitendo merkt sich dabei, welches der Upgradescripte in
- sql/Pg-upgrade2 bereits durchgeführt wurde und führt diese nicht
- erneut aus. Dazu dient die Tabelle "schema_info", die bei der
- Anmeldung automatisch angelegt wird.</para>
+ <para>Datenbankupgrades werden über einzelne Upgrade-Scripte gesteuert, die sich im Verzeichnis <filename>sql/Pg-upgrade2</filename>
+ befinden. In diesem Verzeichnis muss pro Datenbankupgrade eine Datei existieren, die neben den eigentlich auszuführenden SQL- oder
+ Perl-Befehlen einige Kontrollinformationen enthält.</para>
+
+ <para>Kontrollinformationen definieren Abhängigkeiten und Prioritäten, sodass Datenbankscripte zwar in einer sicheren Reihenfolge
+ ausgeführt werden (z.B. darf ein <literal>ALTER TABLE</literal> erst ausgeführt werden, wenn die Tabelle mit <literal>CREATE
+ TABLE</literal> angelegt wurde), diese Reihenfolge aber so flexibel ist, dass man keine Versionsnummern braucht.</para>
+
+ <para>kivitendo merkt sich dabei, welches der Upgradescripte in <filename>sql/Pg-upgrade2</filename> bereits durchgeführt wurde und
+ führt diese nicht erneut aus. Dazu dient die Tabelle "<literal>schema_info</literal>", die bei der Anmeldung automatisch angelegt
+ wird.</para>
</sect2>
<sect2 id="db-upgrade-files.format"
point.</para>
</sect2>
+ <sect2 id="translations-languages.character-set"
+ xreflabel="Character set">
+ <title>Character set</title>
+
+ <para>All files included in a language pack must use UTF-8 as their encoding.</para>
+ </sect2>
+
<sect2 id="translations-languages.file-structure"
xreflabel="File structure">
<title>File structure</title>
</listitem>
</varlistentry>
- <varlistentry>
- <term>charset</term>
-
- <listitem>
- <para>This file should be present.</para>
-
- <para>The <filename>charset</filename> file describes which
- charset a language package is written in and applies to all
- other language files in the package. It is possible to write
- some language packages without an explicit charset, but it is
- still strongly recommended. You'll never know in what
- environment your language package will be used, and neither
- UTF-8 nor Latin1 are guaranteed.</para>
-
- <para>The whole content of this file is a string that can be
- recognized as a valid charset encoding. Example:</para>
-
- <programlisting>UTF-8</programlisting>
- </listitem>
- </varlistentry>
-
<varlistentry>
<term>all</term>
Perl-Distribution und kann für frühere Versionen aus dem <ulink url="http://www.cpan.org">CPAN</ulink> bezogen
werden.</para></listitem>
</itemizedlist>
+
+ <para>Weitere Voraussetzung ist, dass die Testsuite ihre eigene Datenbank anlegen kann, um Produktivdaten nicht zu gefährden. Dazu
+ müssen in der Konfigurationsdatei im Abschnit <literal>testing/database</literal> Datenbankverbindungsparameter angegeben
+ werden. Der hier angegebene Benutzer muss weiterhin das Recht haben, Datenbanken anzulegen und zu löschen.</para>
</sect2>
<sect2 id="devel.testsuite.execution">
</title>
<para>Es gibt mehrere Möglichkeiten zum Ausführen der Tests: entweder, man lässt alle Tests auf einmal ausführen, oder man führt
- gezielt einzelne Scripte aus. Für beide Fälle gibt es das Helferscript <filename>t/test.sh</filename>.</para>
+ gezielt einzelne Scripte aus. Für beide Fälle gibt es das Helferscript <filename>t/test.pl</filename>.</para>
- <para>Will man die komplette Test-Suite ausführen, so muss man einfach nur <filename>t/test.sh</filename> ohne weitere Parameter aus
+ <para>Will man die komplette Test-Suite ausführen, so muss man einfach nur <filename>t/test.pl</filename> ohne weitere Parameter aus
dem kivitendo-Basisverzeichnis heraus ausführen.</para>
- <para>Um einzelne Test-Scripte auszuführen, übergibt man deren Namen an <filename>t/test.sh</filename>. Beispielsweise:</para>
+ <para>Um einzelne Test-Scripte auszuführen, übergibt man deren Namen an <filename>t/test.pl</filename>. Beispielsweise:</para>
- <programlisting>t/test.sh t/form/format_amount.t t/background_job/known_jobs.t</programlisting>
+ <programlisting>t/test.pl t/form/format_amount.t t/background_job/known_jobs.t</programlisting>
</sect2>