Upgrade-Doku: Hinweis auf benötigtes Perl-Modul IPC::Run
[kivitendo-erp.git] / doc / UPGRADE
index 945e9d9..dff984d 100644 (file)
-Wichtige Hinweise zum Upgrade von älteren Versionen
+Wichtige Hinweise zum Upgrade von älteren Versionen
 ===================================================
 
-
 ** BITTE FERTIGEN SIE VOR DEM UPGRADE EIN BACKUP IHRER DATENBANK(EN) AN! **
 
-Upgrade auf v2.4.4
-==================
+Upgrade auf v3.6.x
 
-Mit Version 2.4.4 wurde der Code zur Benutzerauthentifizierung neu
-geschrieben. Die Umstellung erfordert eine manuelle
-Konfiguration. Bestehende Benutzeraccounts können aber von Lx-Office
-automatisch übernommen werden.
+Das manueller Korrigieren der Steuer bei Skontoverbuchungen entfällt seit
+dieser Version, da die Steuerkorrektur automatisch gemacht wird.
 
- Bevor Sie sich das erste mal einloggen
- --------------------------------------
+Ein neues Perl-Modul ist hinzugekommen, Hilfe zum Installieren bietet wie immer
+das Skript 'scripts/installation_check.pl -v'.
 
-Kopieren Sie bitte die Datei lx-erp.conf und ggfs. lx-erp-local.conf
-in das neue Unterverzeichnis config/. Die alte Datei im Lx-Office-
-Stammverzeichnis kann daraufhin gelöscht werdern.
+  * IPC::Run
 
-Als nächstes muss die neue Datenbankauthetifikation konfiguriert werden.
-Diese Einstellungen werden in der Datei "config/authentification.pl"
-gemacht, für die ein kommentiertes Template bereitliegt.
 
-Weitere Informationen zu dieser Datei finden Sie in der Dokumentation
-"doc/INSTALL/index.html" und dort in den Kapiteleln
-"Benutzerauthentifizierung und Administratorpasswort" sowie "Benutzer-
-und Gruppenverwaltung".
+Upgrade auf v3.6.0
 
-Nach der Einrichtung der Datei "config/authentication.pl" muss im
-Webbrowser das Administrationsinterface aufgerufen werden. Nach
-erfolgter Anmeldung werden Sie durch den Upgradeprozess geleitet.
+Der 'neue Auftrags-Controller' ist mittlerweile weder neu noch experimentell und
+die entsprechende Mandantenkonfiguration 'Experimentellen neuen Auftrags-Controller'
+verwenden wird bei diesem Upgrade hart auf 'Ja' gesetzt.
+Die alte, noch aktive Auftragsmaske wird in einer zukünftigen Version von kivitendo entfernt
+werden.
 
-Die weiteren erforderlichen Datenbankupgrades werden erst vorgenommen,
-wenn sich ein Benutzer erfolgreich anmeldet.
+Einige neue Perl-Module sind hinzugekommen, Hilfe zum Installieren bietet wie immer
+das Skript 'scripts/installation_check.pl -v'.
 
+  * Neue Perl Abhängigkeiten:
 
-Upgrade von v2.4.0 und neuer auf v2.4.3
-=======================================
+  * Term::ReadLine::Gnu
+  * Imager::QRCode
+  * Imager
+  * REST::Client
 
-Ein Upgrade von v2.4.0 oder neuer auf v2.4.3 aus zwei Teilen: den
-Dateien (einfaches Entpacken und Kopieren in das
-Installationsverzeichnis genügen) sowie dem Datenbankupgrade.
 
- Neue Variablen in der Datei lx-erp.conf
- ---------------------------------------
 
-Wenn Sie eine eigene Version der Konfigurationsdatei "lx-erp.conf"
-einsetzen und diese nicht mit der Standardkonfigurationsdatei
-überschreiben, so beachten Sie bitte, dass die folgenden neuen
-Variablen hinzugekommen sind und von Ihnen manuell ergänzt werden
-sollten: $html2ps_bin, $ghostscript_bin, $pg_dump_exe und
-$pg_restore_exe. Die Variable '$jscalendar' kann hingegen entfernt
-werden, da sie nicht mehr benötigt wird.
+Upgrade auf v3.5.8
 
-Die Standardwerte für diese Variablen finden Sie in der Datei
-"lx-erp.conf.default".
+Die API für 'Erzeugnis fertigen' wurde geändert:
+Die Einstellung der Mandantenkonfiguration für 'Zum Fertigen wird das Standardlager
+des Bestandteils verwendet, nicht das Ziellager' hat keine Auswirkung mehr.
+Falls dieser Wert auf 'Nein' steht funktioniert das Verfahren wie vorher auch.
+Falls dieser Wert auf 'Ja' steht, muss geprüft werden, ob das Verfahren noch so
+benötigt wird.
+Alternativ kann 'Erzeugnis fertigen' ab dieser Version auch Erzeugnisbestandteile aus
+fremden Lagern (nicht das Ziellager) nehmen. Dies sollte i.d.R. den Prozeß abbilden können.
 
- Neue Abhängigkeiten von Perl-Modulen
- ------------------------------------
+Die Mandantenkonfiguration 'Standard-Auslagern ohne Prüfung auf Bestand' wird bei diesem
+Versionsupgrade hart auf 'Nein' gesetzt und kann vom kivitendo Administrator selbständig
+wieder auf 'Ja' gesetzt werden. Das Verfahren wird aber prinzipiell in einer zukünftigen
+Version von kivitendo nicht mehr unterstützt werden.
 
-Bitte beachten Sie auch die Liste der benötigten Perl-Module am Anfang
-der Datei "doc/INSTALL". Seit Version 2.4.0 sind die folgenden Module
-neu hinzugekommen:
 
-- Achive::Zip
-- IO::Wrap (aus dem Paket "IO::Stringy")
-- Template
-- Text::CSV_XS
-- Text::Iconv
-- Time::HiRes
-- YAML
+Upgrade auf v3.5.7
+  * Neue Perl Abhängigkeiten:
 
-Nach Möglichkeit sollten auch die aktuellen Versionen der
-Datenbankpakete "DBI" und "DBD::Pg" installiert werden.
+  * Math::Round
+  * Try::Tiny
 
- Datenbankupgrade
- ----------------
 
-Das Datenbankupgrade wird automatisch gestartet, wenn sich der erste
-Benutzer nach dem Upgrade der Dateien an Lx-Office anmeldet.
+Upgrade auf v3.5.6.1
 
-** BITTE FERTIGEN SIE VOR DEM UPGRADE EIN BACKUP IHRER DATENBANK(EN) AN! **
+Die Abwärtskompatibilität zur Lagermengen-Berechnung in Lieferscheinen wurde
+aufgehoben. Wer nicht mit Workflows arbeitet (nicht empfohlen) muss diese
+explizit in der Mandantenkonfiguration wieder aktivieren.
 
 
-Upgrade von v2.4.0 auf 2.4.1 sowie von 2.4.1 auf 2.4.2
-======================================================
+Upgrade auf v3.5.6
 
-Ein Upgrade von v2.4.0 auf v2.4.1 oder von v2.4.1 auf v2.4.2 besteht
-aus zwei Teilen: den Dateien (einfaches Entpacken und Kopieren in das
-Installationsverzeichnis genügen) sowie dem Datenbankupgrade.
+In dieser Version sind die Mehrwertsteueranpassungen für den SKR03 und SKR04
+ab 1.7.2020 vorhanden. Wer diese Anpassungen schon manuell eingestellt hat, sollte
+die Upgrade-Skripte deaktivieren.
+Dies betrifft diese drei Skripte "sql/Pg-upgrade2/konjunkturpaket_2020*", sowie
+ferner das Entfernen der Release-Abhängigkeiten dieser Skripte:
 
-Bitte beachten Sie auch die Liste der benötigten Perl-Module am Anfang
-der Datei "doc/INSTALL". Besonders nach einem Upgrade auf 2.4.2 muss
-sichergestellt werden, dass das Modul "YAML" installiert ist.
+Folgende zwei Sed-Kommandos erledigen das:
 
-Das Datenbankupgrade wird automatisch gestartet, wenn sich der erste
-Benutzer nach dem Upgrade der Dateien an Lx-Office anmeldet.
+ sed -i 's/ignore: 0/ignore: 1/g' sql/Pg-upgrade2/konjunkturpaket_2020*
+ sed -i 's/\bkonjunktur[^ ]*//g' sql/Pg-upgrade2/release_3_5_*
 
-** BITTE FERTIGEN SIE VOR DEM UPGRADE EIN BACKUP IHRER DATENBANK(EN) AN! **
 
-Anders als beim Upgrade auf 2.4.0 handelt es bei den Datenbankupgrades
-auf 2.4.1 und 2.4.2 nur um automatisch ablaufende Scripte, die keine
-Benutzereingaben erfordern.
+Alternativ sollten die Datenbank-Upgrade-Skripte gegen einen Testdatenbestand ausgeführt werden
+und der kivitendo-Dienstleister Ihres Vertrauens griffbereit sein.
 
+Weitere Änderungen:
 
-Upgrade von v2.2.0 bis 2.2.2 auf 2.4.0
-======================================
+Für den MT940-Import erwartet kivitendo aqbanking ab Version 6.
 
-Ein direktes Upgrade von den unmodifizierten Versionen 2.2.0, 2.2.1
-und 2.2.2 auf 2.4.0 ist möglich. Ein solches Upgrade besteht aus zwei
-Teilen: den Dateien (einfaches Entpacken und Kopieren in das
-Installationsverzeichnis genügen) sowie dem Datenbankupgrade.
+Für die Erzeugung von ZUGFeRD 2.0 fähigen PDFs wird ein aktuelles TexLive ab Version 2018 benötigt.
+Details hierzu auch in der Dokumentation (HTML oder Dokumentation.pdf).
 
-Bitte beachten Sie auch die Liste der benötigten Perl-Module am Anfang
-der Datei "doc/INSTALL".
+Bitte wie immer vor dem Anmelden an der Weboberfläche 'scripts/installation_check.pl -v' ausführen.
 
-Das Datenbankupgrade wird automatisch gestartet, wenn sich der erste
-Benutzer nach dem Upgrade der Dateien an Lx-Office anmeldet.
+Es sollten mindestens zwei Perl-Module "CAM::PDF" und "XML::LibXML" dort erscheinen, falls noch nicht installiert.
 
-** BITTE FERTIGEN SIE VOR DEM UPGRADE EIN BACKUP IHRER DATENBANK(EN) AN! **
+Diese Version ist ferner mit Postgres Datenbanken ab Version 12 kompatibel, da die Abhängigkeit von oids entfernt wurde.
+
+Sicherheitshinweis:
+
+Für git-Installation sollte geprüft werden ob das Verzeichnis .git/ für den Webserver auslesbar ist.
+Gleiches gilt für alle Installation für den Ordner config/, der die Datei kivitendo.conf beinhaltet.
+Die Standard-Konfiguration des Apache2 Webservers sollte letzteres verhindern, aber wir weisen darauf hin
+dies einmal zu überprüfen.
+
+Ab dieser Version wird eine globale .htaccess ausgeliefert die beide Verzeichnisse mittels rewrite sichert.
+Dafür muss einmalig das Modul rewrite für den Apache, bspw. mit "a2enmode rewrite" aktiviert werden.
+Regeldetails:
+
+<IfModule mod_rewrite.c>
+  RewriteEngine On
+  RewriteRule .*(\.git|config).*$ - [F,NC]
+</IfModule>
+
+Ferner wurde ein Security-Audit der kivitendo Version 3.1 veröffentlicht.
+Hierfür empfehlen wir die Ausarbeitung eines Sicherheitskonzept mit einem kivitendo Partner Eurer Wahl.
+Falls dies nicht möglich sein sollte, weisen wir darauf hin, dass ein SQL-Backup tages- und wochenaktuell
+für einen etwaigen Restore zu Verfügung stehen sollte. Ferner besteht die Gefahr, dass angemeldete
+Benutzer Formfelder mißbrauchen können, Abhilfe schafft hier zum Beispiel der Einsatz von modsecurity unter
+Apache2 (https://doxsec.wordpress.com/2017/06/11/using-modsecurity-web-application-firewall-to-prevent-sql-injection-and-xss-using-blocking-rules/)
+
+Upgrade auf v3.5.4
+
+* Task-Server berücksichtigt Memory-Limit
+
+Falls für fgci-Prozesse ein Memory-Limit in der Konfigurationsdatei eingerichtet
+ist, wird dies nun auch vom Task-Server berücksichtigt. Dieser beendet sich bei
+Überschreitung des Limits. Deshalb muss dafür gesorgt werden, dass der
+Task-Server in diesem Fall neu gestartet wird (z.B. über den systemd-Service).
+Siehe auch aktuelle kivitendo-Dokumentation.
+
+
+Upgrade auf v3.5.3
+
+* Fallback-Module entfernt
+
+Einige Default-Module die als Fallback zu Verfügung standen, werden ab
+dieser Version nicht mehr mit ausgeliefert.
+Bitte vor dem Anmelden an der Weboberfläche 'scripts/installation_check.pl -v' ausführen
+und die entsprechenden Module installieren.
+S.a. weitere Details in der aktuellen kivitendo-Dokumentation.
+
+
+Upgrade auf v3.5.1
+
+* Neue Perlabhängigkeiten
+
+* LWP::Authen::Digest für WebshopApi
+* LWP::UserAgent für WebshopApi
+
+* Zwingende Postgres Erweiterung pg_trgm(Trigram)
+
+  Die Trigramerweiterung bietet eine Ähnlichkeitsuche.
+  Diese verwendet das Shopmodul, wenn installiert, beim Bestellimport
+  um zu entscheiden ob ein Kunde neu angelegt oder als Vorschlag angezeigt wird.
+  Die Erweiterung wird bisher nur beim Ableich der Straße genutzt, da hier oft
+  unterschiedliche Schreibweisen vorhanden sind.
+  z.B Dorfstraße, Dorfstrasse, Dorfstr., Dorf Straße usw..
+  So wird vermieden, dass Kunden eventuell doppelt angelegt werden.
+
+  * Zunächst muss geprüft werden, ob die Erweiterung prinzipiell für postgres
+  vorhanden ist, dafür kann folgendes Select-Statement in template1 genutzt werden:
+
+  # select * from pg_available_extensions where name ='pg_trgm';
+
+  Sollte bei diesem Statement kein Ergebnis kommen, so muss die entsprechende
+  Erweiterung für die eigene Distribution nachinstalliert werden.
+  Bei debian/ubuntu befindet sich diese im Paket postgresql-contrib
+  und kann mit
+
+  $ apt install postgresql-contrib
+
+  installiert werden.
+
+  * Diese Erweiterung wird mit dem SQL-Updatescript sql/Pg-upgrade2/trigram_extension.sql
+  und Datenbank-Super-Benutzer Rechten automatisch installiert.
+  Dazu braucht der DatenbankSuperbenutzer "postgres" ein Passwort
+
+  su - postgres
+  psql
+  \password
+  <Eingabe passwort>
+  \q
+
+  Passwort und Benutzername können jetzt beim Anlegen einer neuen Datenbank bzw.
+  bei Updatescripten, die SuperUserRechte benötigen eingegeben werden.
+
+
+  * Änderungen DATEV-Export Format CSV
+
+  Die Felder Belegfeld2 und Buchungsbeschreibung werden nicht mehr befüllt.
+  Im KNE-Export war im Belegfeld2 die Fälligkeit der Buchung gesetzt und in
+  Buchungsbeschreibung der Kunden- oder Lieferantenname.
+  Bei nicht valider Umsatz-Steuer-Identnummer wird der Export abgelehnt.
+  Da das Feld ein Freitext-Feld und keine Validierung bei der Eingabe hat(te)
+  unternimmt kivitendo keine eigene Normalisierung,  bzw. Konvertierung
+  des Datenfelds.
+
+  Eine Bereinigung der Ust-IDs muss der kivitendo-Admin eigenverantwortlich unternehmen.
+  Hier exemplarisch ein SQL-Schnipsel zum Ersetzen der Leerzeichen in diesem Feld:
+  UPDATE customer SET ustid=REPLACE(ustid, ' ', '') WHERE ustid LIKE '% %';
+
+  Upgrade auf v3.5.0
+  ===========================
+
+  * Neue Perl Abhängigkeiten:
+
+  * File::MimeInfo - für den Dateiupload
+  * Sys::CPU
+  * Thread::Pool::Simple
+
+  * Neue externe Abhängigkeiten:
+
+  * pdfinfo
+
+  * In der Rechte-Tabelle auth.master_rights wurden alle Positionswerte mit 100
+  multipliziert, um Lücken für neue Rechte zu schaffen.
+
+  * In der Tabelle "customer" wurde die Spalte "klass" nach "pricegroup_id"
+  migriert. Bei Kunden ohne Preisgruppe ist der Datenbankwert jetzt NULL statt
+  "0". Falls Kunden per CSV-Import importiert werden muß dieses Feld in der
+  CSV-Datei ebenfalls umbenannt werden.
+
+  * Für das neue Feature Lieferantenbriefe ist die Standardvorlage für Briefe
+  (letter.tex) angepasst worden. Statt letter.customer muss der Adressat jetzt
+  aus letter.custoemr_vendor erzeugt werden.
+
+  * In der Tabelle parts wurde die Boolean-Spalte "assembly" entfernt. Zur
+  Erkennung von Waren/Dienstleistungen/Erzeugnissen gibt es nun in parts eine
+  neue Spalte part_type vom ENUM-Typ, der auf die Werte 'part', 'service',
+  'assembly' und 'assortment' beschränkt ist.
+
+  * In der Tabelle parts wurde die Spalten inventory_accno_id, expense_accno_id
+  und income_accno_id entfernt. Deren Funktionalität wurde schon lange durch
+  Buchungsgruppen ersetzt und für die Erkennung des Artikeltyps gibt es nun die
+  Spalte part_type
+
+  Upgrade auf v3.4.1
+  ==================
+
+  * Neue Druckvariante Gelangensbestätigung für Verkaufs-Aufträge
+
+  Im Standard-Vorlagensatz RB befindet sich als Vorlage die ic_supply.tex
+  als Orientierung für die Anpassung an eigene Vorlagen. Eigene Vorlagen
+  müssen entsprechend um diesen Typ für die 3.4.1 erweitert werden.
+
+  * Druckvorlagen für Briefe
+
+  Die Erzeugung der Druckausgabe für die Brieffunktion wurde auf die
+  Verwendung des Template Toolkits umgestellt. Dazu muss die verwendete
+  Druckvorlage "letter.tex" angepasst werden. Im Standard-Vorlagensatz RB ist
+  das bereits geschehen. Falls keine manuellen Änderungen an der "letter.tex"
+  aus einer vorherigen Version gemacht wurden, reicht es, diese Datei
+  ("templates/print/RB/letter.tex") in das verwendete Vorlagenverzeichnis zu
+  kopieren. Ansonsten kann diese Datei als Beispiel dienen.
+
+
+  Upgrade auf v3.4.0
+  ==================
+
+  * Neue Perl-Modul-Abhängigkeiten:
+
+  * Algorithm::CheckDigits
+  * PBKDF2::Tiny
+
+  Wie immer bitte vor dem ersten Aufrufen einmal die Pakete überprüfen:
+
+  $ scripts/installation_check.pl -ro
+
+  * Der in der Dokumentation beschriebene Mechanismus für die CGI-Anbindung
+  (2.6.1 Grundkonfiguration mittels CGI) wurde geändert. Ein einfacher Alias
+  auf das Programmverzeichnis funktioniert nicht mehr, und es muss immer ein
+  AliasMatch auf einen dispatcher eingerichtet werden. Die Dokumentation wurde
+  aktualisiert. Für Benutzer der empfohlenen FastCGI Anbindung ändert sich
+  nichts.
+
+  * Der Task-Server ist nun mandantenfähig. Für jeden Mandanten, für den
+  der Task-Server laufen soll, muss in der Administrationsoberfläche
+  in der Konfiguration des Mandanten hinterlegt werden, welchen
+  kivitendo-Benutzer der Task-Server nutzen soll. Ist bei einem
+  Mandanten kein Benutzer hinterlegt, so ignoriert der Task-Server
+  diesen Mandanten.
+
+  Im Gegenzug wurden die beiden Konfigurations-Einstellungen »client«
+  und »login« aus dem Abschnitt [task_server] entfernt. Der
+  Task-Server prüft beim Starten allerdings, ob diese Einstellungen
+  noch existieren und verweigert den Start mit einer hilfreichen
+  Fehlermeldung, solange sie noch vorhanden sind.
+
+  * Die Unterstützung unsicherer Passwort-Hashing-Mechanism wurde
+  entfernt. Für BenutzerInnen, die noch alte Mechanismen verwenden,
+  müssen die Passwörter einmalig in der Administrationsoberfläche
+  zurückgesetzt werden.
+
+  Dies betrifft nur Accounts, deren Passwort sich das letzte Mal vor
+  kivitendo 2.7.0 geändert hat.
+
+  Upgrade auf v3.3.0
+  ==================
+
+  * Bei Upgrade von Versionen vor v.3.2.x wie immer erst die dortigen
+  Upgradehinweise beachten.
+
+  * Es gibt keine neuen Perl-Modul-Abhängigkeiten.
+
+  * Die alte ungepflegte Druckvorlagenvariante "Standard" wurde entfernt.
+  Bereits verwendete Druckvorlagen, die darauf aufbauen, funktionieren
+  natürlich weiterhin.
+
+  * Für die Verwendung des MT940 Import Features der Bankerweiterung muß
+  aqbanking installiert werden. Dies wird nur für die Konvertierung vom MT940
+  ins CSV Format benötigt, das Kommandozeilentool "aqbanking-cli" befindet sich
+  z.B. unter Ubuntu im Paket aqbanking-tools.
+
+  Upgrade auf v3.2.0
+  ==================
+
+  * Neue Perl-Modul-Abhängigkeiten:
+
+  * GD
+  * HTML::Restrict
+  * Image::Info
+  * List::UtilsBy
+
+  Wie immer bitte vor dem ersten Aufrufen einmal die Pakete überprüfen:
+
+  $ scripts/installation_check.pl -ro
+
+  Sofern das Upgrade von einer früheren Version als 3.1.0 geschieht auch die
+  Upgradehinweise der Vorversionen beachten.
+
+  * Druckvorlagen auf shipto-Verwendung prüfen
+
+  Hier hat sich das Standardverhalten geändert und ggf. werden shipto* nicht mehr
+  ausgedruckt, hier müssten die Druckvorlagen individuell angepasst werden, s.a.
+  Changelog -> Verkaufsbeleg-Ausdruck.
+
+  Upgrade auf v3.1.0
+  ==================
+
+
+  * BEVOR ein Aufruf im Administrationsbereich erfolgt, muss zwingend der
+  webdav Ordner im Installationspfad vorhanden sein!
+  -  mkdir webdav/
+-  Rechte für webserver setzen ($ chmod www-data webdav/)
+  Dieses "Feature" war in vorhergehenden Versionen optional, wird aber
+  für das Upgrade auf Mandantenfähigkeit vorausgesetzt.
+
+  * Neue Softwarevoraussetzungen: Perl v5.10.1 oder neuer sowie
+  PostgreSQL 8.4 oder neuer werden zwingend vorausgesetzt. Ein Betrieb
+  mit älteren Versionen ist nicht mehr möglich.
+
+  * Neue Perl-Modul-Abhängigkeiten:
+
+  * File::Copy::Recursive
+  * Rose::DB::Object muss v0.788 oder neuer sein (aufgrund eines Bugs
+      in besagtem Modul im Zusammenspiel mit PostgreSQL)
+
+  Wie immer bitte vor dem ersten Aufrufen einmal die Pakete überprüfen:
+
+  $ scripts/installation_check.pl -ro
+
+  * Die Datenbank muss zwingend Unicode als Encoding nutzen. Daher wird
+  auch die Konfigurationsvariable "system.dbcharset" nicht mehr
+  unterstützt.
+
+  * Einführung von Mandanten. Früher war die Konfiguration der
+  Datenbanken für jeden Benutzer getrennt vorzunehmen. Mit diesem
+  Release wurden Mandanten eingeführt: ein Mandant bekommt einen Namen
+  sowie die Datenbankkonfiguration, und Benutzer bekommen
+  Zugriffsrechte auf einen oder mehrere Mandanten.
+
+  Um dieses Update durchzuführen, müssen Sie sich einmal im
+  Administrationsbereich anmelden. Vorher ist kein Login im
+  Benutzerbereich möglich.
+
+  Die neue Struktur bedingt, dass viele Scripte, die bisher zur
+  Konfiguration nur einen Benutzer verlangt haben, jetzt auch einen
+  Mandanten verlangen. Die Konfiguration dieser Scripte ist deshalb
+  manuell anzupassen. Dazu gehören:
+
+  - der Task-Server (config/kivitendo.conf)
+- CSV-Import von der Shell aus (scripts/csv-import-from-shell.sh)
+
+  Die folgenden Scripte sind ebenfalls betroffen, allerdings nur für
+  Entwickler interessant:
+
+  - scripts/dbupgrade2_tool.pl
+  - scripts/rose_auto_create_model.pl
+
+  * Neue Benutzerrechte
+
+  Diese müssen bei vorhandenen Gruppen eventuell nachgepflegt werden. Z.B. bei
+  der Gruppe Vollzugriff
+
+  - Stammdaten -> Kunden und Lieferanten erfassen. Alle Lieferanten bearbeiten.
+  Alle Kunden bearbeiten
+  - Konfiguration -> Verändern der kivitendo-Installationseinstellungen (die
+      meisten Menüpunkte unterhalb von 'System')
+
+  * Die alten ungepflegten Druckvorlagenvarianten French und Service
+  wurden entfernt.
+
+  * Die HTML-Druckvorlagen der Berichte (GuV, Bilanz, SuSa, BWA, UStVA) werden
+  jetzt alle zentral in den Webvorlagen verwaltet, es werden keine
+  benutzerangepasste Versionen der Druckvorlagen im Druckvorlagenverzeichnis
+  mehr unterstützt.
+
+  Upgrade auf v3.0.0
+  ==================
+
+  * Neue Abhängigkeiten
+
+  * Clone 1.16
+  * Email::MIME
+  * FCGI jetzt min Version 0.72
+  * Test::Harness 3.00
+  * IO::Socket::SSL
+  * Net::LDAP
+  * Net::SMTP::SSL
+  * Net::SSLGlue
+
+  Wie immer bitte vor dem ersten Aufrufen einmal die Pakete überprüfen:
+
+  $ scripts/installation_check.pl -ro
+
+  * Neue Entwicklerabhängigkeiten
+
+  * Test::Deep
+  * GD 2.00
+
+  * Diverse umstrittene Features zum nicht standardkonformen Umgang mit gebuchten
+  Rechnungen sind jetzt standardmässig deaktiviert und müssen unter "System" ->
+  "Mandantenkonfiguration" aktiviert werden.
+
+  * Die Übersetzungen "de_DE" und "fr" für die alternative deutsche Version und
+  französische Version respektive wurden entfernt. Es bleiben offiziell
+  unterstützte Übersetzungen in Deutsch ("de") und English ("en").
+
+  * Dieses ist die letzte Version, die Perl-Versionen vor 5.10.1
+  unterstützen wird.  Ab dem nächsten Release werden Sprachkonstrukte
+  verwendet werden, die nicht mehr in 5.8 kompilieren, und Module, die
+  seit v5.10.1 zu den Coremodulen gehören, werden ab dann nicht mehr
+  als explizite Abhängigkeiten gelistet.
+
+
+  Upgrade auf v2.7.0
+  ==================
+
+  * In der Version 2.7.0 wird das XUL Menü entfernt. Alle Benutzer die das XUL
+  Menü noch eingestellt haben, werden beim ersten Einloggen auf ein
+  Kompatibilitätsmenü gesetzt. Das Javascriptmenü wurde entsprechend erweitert
+  um der Funktionalität nahe zu kommen.
+
+  * Das Lizenzenfeature wurde ersatzlos entfernt.
+
+  * In den LaTeX Vorlagen gilt der Befehl "pagebreak" und die dazugehörigen
+  "sumcarriedforward" und "lastpage" als deprecated und werden in einer
+  kommenden Version komplett entfernt. Die Mechanik ist anfällig gegenüber
+  subtilen Formatierungsfehlern bei bestimmten Zahlenformaten und ist
+  grundsätzlich fehlerhaft in den gemachten Annahmen über den verfügbaren Platz
+  auf einer Seite. Die Standardvorlagen sind entsprechend angepasst worden
+  und müssen in der Administration neu angelegt werden.
+
+  * Das Druckvorlagensystem wurde umgestellt, dadurch ist der Name "print" für
+  Druckvorlagen jetzt reserviert. Wenn eine Ihrer Vorlagensätze "print" heisst,
+  benennen Sie ihn um bevor Sie das Update starten.
+
+  * Die Druckvorlagen für USTVA vor 2012 wurden entfernt und das Ausdrucken von
+  USTVA als PDF ist deprecated. Da die Eingabe von Erklärungen als PDF nicht
+  mehr gestattet ist, sollten Archivkopien der USTVA direkt bei Elster bezogen
+  werden, oder auf anderem Wege erstellt werden. Der Prozess dazu wird sich in
+  einer kommenden Version ändern.
+
+  * Die Namen der von LaTeX generierten PDF-Dateien sind jetzt in der
+  eingestellten Dokumentensprache, nicht mehr in der Oberflächensprache des
+  Bearbeiters.
+
+  * Neue Abhängigkeiten
+
+  * JSON
+  * String::ShellQuote
+* Digest::SHA (optional, empfohlen)
+
+  Wie immer bitte vor dem ersten Aufrufen einmal die Pakete überprüfen:
+
+  $ scripts/installation_check.pl -ro
+
+  * CSV-Import wurde neu in Perl implementiert
+
+  Der PHP-Code wurde entfernt. Automatische Skripte, die per Aufruf von
+  lxo-import/partsB.php?cron=1 die Datei parts.csv importiert haben,
+  funktionieren nicht mehr.  Stattdessen kann scripts/csv-import-from-shell.sh
+  benutzt werden. Im Unterschied zur PHP-Version werden unbekannte Warengruppen
+  nicht mehr automatisch angelegt, stattdessen bricht das Skript ab.
+
+  * Rechteverwaltung
+
+  * Das Recht "Kunden und Lieferanten bearbeiten" wurde aufgespalten in zwei
+  einzelne Rechte. Ein Updatescript passt bestehende Gruppenaentsprechend an.
+  * Das Recht "Preise nd Rabatte bearbeiten" wurde neu eingeführt und ist
+  notwendig um in Belegen Preise ändern zu können. Es wird beim Upgrade
+  automatisch allen Benutzern erteilt.
+  * Das Recht "Administration" wurde neu eingeführt, und ist dazu da
+  administrative Tätigkeiten an der Mandantendatenbank aus einm Benutzerlogin
+  heraus durchzuführen. Es ist standardmäßig NICHT vergeben.
+  * Der Vorlageneditor wurde unter das Recht Administration gestellt, war
+  vorher Konfiguration.
+
+
+  Upgrade auf v2.6.3
+  ==================
+
+  1. Mit Version 2.6.3. wurden die beiden Konfigurationsdateien
+  authentication.pl und lx-erp.conf, sowie deren Varianten,
+  abgeschafft. Stattdessen gibt es nun die Datei lx_office.conf, die
+  aber erst neu angelegt werden muß. Als Vorlage dient hierfür die Datei
+  lx_office.conf.default. Die entsprechenden Werte muß man selber neu
+  konfigurieren, dies ist automatisiert zu fehleranfällig.
+
+  Nach dem Upgrade kann man sich so lange nicht anmelden, bis lx_office.conf
+  angelegt und authentication.pl und lx-erp.conf gelöscht oder verschoben wurden.
+
+  Es gibt keine local-Variante der lx_office.conf, arbeitet man mit git sollte
+  man lx_office.conf nicht einchecken.
+
+  Eine etwas ausführlichere Beschreibung findet sich in Kapitel 2.3
+  "Lx-Office-Konfigurationsdatei" in doc/Lx-Office-Dokumentation.pdf
+
+  2. Eine neu hinzugekommene Komponente ist der Task-Server. Hierbei
+  handelt es sich um einen Dämonen, der im Hintergrund läuft, in
+  regelmäßigen Abständen nach abzuarbeitenden Aufgaben sucht und diese
+  zu festgelegten Zeitpunkten abarbeitet (ähnlich wie Cron). Dieser
+  Dämon wird bisher nur für die Erzeugung der wiederkehrenden Rechnungen
+  benutzt, wird aber in Zukunft deutlich mehr Aufgaben übertragen
+  bekommen. Die Einrichtung des Dämonen wird in der
+  Installationsdokumentation im Abschnitt "Der Task-Server" beschrieben.
+
+  3. Mit Version 2.6.3 sind einige Abhängigkeiten von Perl-Modulen
+  hinzugekommen. Bitte führen sie vor dem ersten Aufrufen der einmal
+  den folgenden Befehl im Lx-Office Verzeichnis aus:
+
+  $ scripts/installation_check.pl
+
+  Sollten Module als fehlend markiert sein, folgen Sie bitte den Anweisungen in
+  der Installationsanweisung.
+
+  Zumindest folgende Module sind neu benötigt:
+
+  * Config::Std
+  * Params::Validate
+
+  4. Sollten Sie die FCGI-Version einsetzen, das Apache-Modul
+  "mod_fcgid" (nicht "mod_fastcgi") benutzen und von diesem Modul die
+  Version v2.6.3 oder später installiert haben, so ist außerdem wichtig,
+  seinen Parameter "FcgidMaxRequestLen" deutlich zu erhöhen, weil sich
+  dieser im Release mod_fcgid-Release v2.6.3 deutlich geändert
+  hat. Details dazu finden sich in Kapitel 2.5.2 "Konfiguration für
+  FastCGI/FCGI" in doc/Lx-Office-Dokumentation.pdf
+
+
+  Upgrade auf v2.6.2
+  ==================
+
+  Vor dem Einloggen
+  -----------------
+
+  Mit Version 2.6.2 sind einige Abhängigkeiten von Perl-Modulen hinzugekommen.
+  Bitte führen sie vor dem ersten Aufrufen der einmal den folgenden Befehl im
+  Lx-Office Verzeichnis aus:
+
+  $ scripts/installation_check.pl
+
+  Sollten Module als fehlend markiert sein, folgen Sie bitte den Anweisungen in
+  der Installationsanweisung.
+
+  Zumindest folgende Module sind neu benötigt:
+
+  * Rose::Object, Rose::DB und Rose::DB::Object (die Installation von
+      Rose::DB::Object via CPAN oder den Paketmechanismus Ihrer
+      Distribution sollte für die automatische Installation der anderen
+      zwei Pakete sorgen)
+
+  Neue Gruppenrechte
+  ------------------
+
+  Es wurde ein neues Recht "Druck" eingeführt. Dieses bestimmt, ob die
+  Benutzerin das Menü "Druck" zu Gesicht bekommt oder nicht, unabhängig
+  davon, wie die Rechte für die einzelnen Unterpunkte gesetzt sind.
+
+  Für bereits bestehende Gruppen muss es sofern gewünscht vom
+  Administrator manuell gewährt werden.
+
+
+  Upgrade auf v2.6.1
+  ==================
+
+  Vor dem Einloggen
+  -----------------
+
+  Mit Version 2.6.1 wurden die Listen der benötigten Perl Module überarbeitet.
+  Einige der vorher in den Abhängigkeiten gelisteten Module waren Coremodules
+  (und damit in jeder Perldistribution vorhanden), oder ihrerseits Abhängigkeiten
+  anderer benötigter Module. Durch die Überarbeitung hat sich die Liste deutlich
+  geändert.
+
+  Bitte führen sie vor dem ersten Aufrufen der einmal den folgenden Befehl im
+  Lx-Office Verzeichnis aus:
+
+  $ scripts/installation_check.pl
+
+  Sollten Module als fehlend markiert sein, folgen Sie bitte den Anweisungen in
+  der Installationsanweisung.
+
+  Zumindest folgende Module sind neu benötigt:
+
+  * URI
+  * XML::Writer
+
+  Neue Konfigurationsvariablen
+  ----------------------------
 
-Das Datenbankupgrade enthält zwei interaktive Upgradepfade für neue
-Features in Lx-Office 2.4.0: Einheiten sowie Buchungsgruppen.
-
-
-
-Einführung von Einheiten
-------------------------
-
-In Versionen von Lx-Office vor 2.4.0 konnte der Benutzer bei den
-Stammdaten aber auch in den Einkaufs- und Verkaufsdialogen beliebige
-Texte als "Einheit" angeben. Lx-Office 2.4.0 ändert dies nun. Der
-Administrator kann unter "System -> Einheiten -> Maßeinheiten" die bei
-Waren und Erzeugnissen verwendbaren und bei "System -> Einheiten ->
-Dienstleistungseinheiten" die bei Dienstleistungen verwendbaren
-Einheiten festlegen. Lx-Office 2.4.0 bringt bereits für beide Typen
-einige Standardeinheiten mit.
-
-Einheiten können wiederum auf anderen Einheiten basieren. So ist
-z.B. "kg" als das 1000fache der Einheit "g" definiert. Der Benutzer
-muss beim Anlegen von Artikeln in den Stammdaten eine Einheit aus
-einer Drop-Down-Liste auswählen. In den Einkaufs- und Verkaufsmasken
-werden dann dem Benutzer nur noch diejenigen Einheiten zur Auswahl
-angeboten, die sich in die in den Stammdaten hinterlegte Einheit
-umrechnen lassen. So würden z.B. für eine Ware, deren
-Stammdateneinheit "kg" ist, nur die Einheiten "g", "kg", "t" zur
-Auswahl aufgelistet, nicht aber "Stück" oder "Tag", "Stunde".
-
-Das Datenbankupgrade muss nun alle im System verwendeten Einheiten in
-den Stammdaten sowie in den Einkaufs- und Verkaufsdaten so anpassen,
-dass dort nur noch Einheiten auftreten, die im System verwendet werden
-können. Da dies nur eingeschränkt automatisch möglich ist, werden dem
-Benutzer, der das Datenbankupgrade nach dem Login durchführt, einige
-Masken angezeigt, in denen er neue Einheiten in der Datenbank anlegen
-kann, und in denen er "alte" Einheiten durch "neue" Einheiten ersetzen
-lassen kann.
-
-Zuletzt muss er noch für all die Waren, für die früher gar keine
-Einheit eingetragen wurde, eine Standardeinheit getrennt nach Waren /
-Erzeugnissen und Dienstleistungen festlegen, die statt dessen
-eingesetzt wird.
-
-
-Einführung von Steuerzonen und Buchungsgruppen
-----------------------------------------------
-
-In den Versionen von Lx-Office vor 2.4.0 wurden bei Artikeln und
-Dienstleistungen jeweils ein Konto für Erlöse und ein Konto für den
-Aufwand hinterlegt. Über diese Konten wurde dann auch definiert
-welcher Steuersatz zu berechnen ist. Wollte man einen Artikel mal mit
-und mal ohne Steuer verkaufen (Inland, Ausland), waren hierfür zwei
-Artikel notwendig.
-
-In der Version 2.4.0 können nun bei jedem Artikel für die
-verschiedenen Fälle
-- Inland
-- EU mit UStId
-- EU ohne UStId
-- Außerhalb EU
-verschiedene Erlös- und Aufwandskonten definiert werden. Dadurch
-werden dann auch jeweils die richtigen Steuersätze berechnet.
-
-Damit jetzt nicht bei jedem Artikel mehrere Konten definiert werden
-müssen, werden alle Konten, die zu einer bestimmten Warengruppe
-gehören, in einer Buchungsgruppe zusammengefasst. Diese
-Buchungsgruppen werden zunächst unter "System" definiert und können
-dann den Artikeln und Dienstleistungen zugewiesen werden.
-
-Beim Datenbankupdate werden aus der Datenbank alle Kombinationen von
-Erlös- und Aufwandskonten geholt, die bereits verwendet wurden. Für
-diese Kombinationen müssen im Upgradeprozess Buchungsgruppen angelegt
-werden, indem man den einzelnen Kombinationen einen Namen zuweist. Die
-Konten für nicht Inland sind mit den Standardkonten vorbelegt, können
-aber vor dem Speichern geändert werden.
-
-Diese neu angelegten Buchungsgruppen werden automatisch den
-vorhandenen Artikeln und Dienstleistungen zugewiesen.  Buchungsgruppen
-können genau wie vorher die Kontenzuordnung nachträglich nicht mehr
-geändert werden.
-
-Möchte man in der Buchhaltung eine neue Kombination von Erlös- und
-Aufwandskonten für bestimmte Artikel und Waren verwenden, legt man
-zunächst die entsprechenden konnten (z.B. 8401 und 3401) an und
-erstellt dann eine neue Buchungsgruppe mit diesen Konten.  Die
-Benennung der Buchungsgruppe kann frei erfolgen.
-
-Beim Anlegen einer neuen Waren oder Dienstleistung werden dann durch
-Auswahl dieser Buchungsgruppe automatisch alle Konten auf einen Schlag
-korrekt zugeordnet.
-
-Wird in einer Verkaufs- oder Einkaufsmaske eine andere Steuerzone als
-Inland ausgewählt, werden bei den Artikeln auch automatisch die
-anderen Erlös- und Aufwandskonten der Buchungsgruppe verwendet.
-
-Dokumentenvorlagen, Umbennante Vorlagenvariablen
-------------------------------------------------
-
-Einige Variablen, die in Dokumentenvorlagen verwendet werden, mussten
-aufgrund von Namenskonflikten umbenannt werden. Dazu gehören:
-
-* Adress- und Kontaktinformationen des angemeldeten Mitarbeiters. Die
-  Variablen "company", "address" und "businessnumber" haben alle einen
-  Präfix "employee_" bekommen und heißen nun "employee_company",
-  "employee_address" und "employee_businessnumber".
-
-Zu beachten ist außerdem, dass der Befehl <%include ...%> in
-Dokumentenvorlagen nicht mehr zur Verfügung steht.
+  In der config/lx-erp.conf ist als neue Option $show_best_before hinzugekommen.
+  Die Variable kontrolliert die Anzeige von Mindesthaltbarkeitsdaten. Sie ist
+standardmäßig deaktiviert.