replacing old PEAR dependency check with Composer

This commit is contained in:
Ralf Becker 2019-06-17 18:11:40 +02:00
parent f11827a8f3
commit 3c9419ee1a
3 changed files with 103 additions and 148 deletions

View File

@ -196,8 +196,8 @@ $checks = array(
'warning' => lang("The ldap extension is needed, if you use ldap as account or contact storage, authenticate against ldap or active directory. It's not needed for a standard SQL installation."), 'warning' => lang("The ldap extension is needed, if you use ldap as account or contact storage, authenticate against ldap or active directory. It's not needed for a standard SQL installation."),
), ),
'' => array( '' => array(
'func' => 'pear_check', 'func' => 'dependency_check',
'error' => lang('PEAR extensions are required by many eGroupware applications, PEAR itself is the required basis for each extension!'), 'error' => lang('EGroupware requires several dependencies installed via: %1', 'composer install'),
), ),
realpath('..') => array( realpath('..') => array(
'func' => 'permission_check', 'func' => 'permission_check',
@ -290,6 +290,19 @@ foreach($setup_info as $app => $app_data)
//echo "added check $data[func]($name) for $app"; _debug_array($data); //echo "added check $data[func]($name) for $app"; _debug_array($data);
} }
} }
// load required extensions from composer.json too:
$composer = json_decode(file_get_contents(EGW_SERVER_ROOT.'/composer.json'), true);
foreach($composer['require'] as $name => $version)
{
if (substr($name, 0, 4) === 'ext-')// && !isset($checks[substr($name, 4)]))
{
$name = 'ext-hugo';
$checks[substr($name, 4)] = [
'func' => 'extension_check',
'error' => lang('The %1 extension is needed from: %2.', substr($name, 4), 'EGroupware'),
];
}
}
$sorted_checks = array(); $sorted_checks = array();
foreach(array('php_version','php_ini_check','extension_check','pear_check','gd_check','permission_check') as $func) foreach(array('php_version','php_ini_check','extension_check','pear_check','gd_check','permission_check') as $func)
{ {
@ -340,163 +353,74 @@ function composer_check($package)
} }
/** /**
* quering the pear registry to find out which pear packages and versions are installed * Check all dependencies from composer.lock are installed
* *
* @param $channel =null use default or given channel * @param boolean $verbose true: list all packages, false: list only missing packages
* @return array with package-name => version pairs, eg. array('Log' => '1.9.8','PEAR' => '1.4.11')
*/ */
function get_installed_pear_packages($channel=null) function dependency_check($verbose=true)
{ {
$pear_config = ''; // use the system default global $passed_icon, $warning_icon, $error_icon;
// fix for SuSE having the pear.conf only for cli, will fail with open_basedir - no idea what to do then
if (@is_dir('/etc/php5/apache2') && !file_exists('/etc/php5/apache2/pear.conf') && @file_exists('/etc/php5/cli/pear.conf')) if (!file_exists(EGW_SERVER_ROOT.'/vendor') || !file_exists($json=EGW_SERVER_ROOT.'/vendor/composer/installed.json'))
{ {
$pear_config = '/etc/php5/cli/pear.conf'; echo '<div>'.$error_icon.' <span class="setup_error">'.
lang('No dependencies are installed: you need to run "%1" AND either "%2" OR "%3"!',
'cd '.EGW_SERVER_ROOT, './install-cli.php install', 'composer install')."</div>\n";
return;
} }
@include_once 'PEAR/Config.php';
if (!class_exists('PEAR_Config')) return false; $composer_lock = json_decode(file_get_contents(EGW_SERVER_ROOT.'/composer.lock'), true);
$ok = $wrong_version = $missing = 0;
$config = new PEAR_Config('',$pear_config); foreach($composer_lock['packages'] as $package)
//echo "<pre>config = ".print_r($config,true)."</pre>\n";
if (empty($channel)) $channel = $config->get('default_channel');
//echo "<pre>channel = ".print_r($channel,true)."</pre>\n";
if (!method_exists($config,'getRegistry')) return false; // PEAR version to old
$reg = &$config->getRegistry();
//echo "<pre>reg = ".print_r($reg,true)."</pre>\n";
// a bug in pear causes an endless loop if the install-dir does not exist
// bug reported: http://pear.php.net/bugs/bug.php?id=11317
if (!file_exists($reg->install_dir)) return false;
$installed = $reg->packageInfo(null,null,$channel);
//echo "<pre>installed =".print_r($installed,true)."</pre>\n";
$packages = array();
foreach($installed as $package)
{ {
$name = isset($package['package']) ? $package['package'] : $package['name']; $installed = composer_check($package['name']);
$version = $package['version']; $version_ok = !empty($installed) && version_compare($installed, $package['version'], '==');
if (is_array($version)) $version = $version['release'];
$packages[$name] = $version; if (empty($installed))
//echo "<p>$name: ".print_r($package['version'],true)."</p>\n";
}
ksort($packages);
return $packages;
}
function pear_check($package,$args)
{
global $passed_icon, $warning_icon;
static $pear_available = null;
static $channel_packages = array();
$channel = '';
if (strpos($package, '/') !== false)
{
list($channel, $package) = explode('/', $package);
}
$min_version = isset($args['version']) ? $args['version'] : null;
// first check if package is available via composer installed vendor directory
$composer_name = 'pear-'.($channel ? $channel : 'pear.php.net').'/'.($package ? $package : 'pear');
$version_available = composer_check($composer_name);
if ((!($found = !empty($version_available))))
{
if (!isset($channel_packages[(string)$channel]))
{ {
$channel_packages[(string)$channel] = get_installed_pear_packages($channel); $missing++;
$icon = $error_icon;
$class = ' class="setup_error"';
} }
$pear_packages = $channel_packages[(string)$channel]; elseif (!$version_ok)
$version_available = false;
// packages found in the pear registry --> use that info
if ($pear_packages)
{ {
$pear_available = $found = true; $wrong_version++;
// check if package is installed $icon = $warning_icon;
if ($package && isset($pear_packages[$package])) $available = true; $class = ' class="setup_warning"';
// check if it's the right version
$version_available = $pear_packages[$package ? $package : 'PEAR'];
}
else // use the old checks as fallback
{
if (is_null($pear_available))
{
$pear_available = @include_once('PEAR.php');
if (!class_exists('PEAR')) $pear_available = false;
}
$found = $pear_available;
if ($pear_available && $package)
{
$file = str_replace('_','/',$package == 'Mail_Mime' ? 'Mail_mime' : $package).'.php';
$found = @include_once($file);
if (!class_exists($package)) $found = false;
}
}
}
// is the right version availible
$available = $found && (!$min_version || version_compare($min_version,$version_available) <= 0);
echo '<div>'.($available ? $passed_icon : $warning_icon).' <span'.($available ? '' : ' class="setup_warning"').'>'.
lang('Checking PEAR%1 is installed',($package?($channel?' '.$channel.'/':'::').$package:'').($min_version?" ($min_version)":'')).': '.
($available ? ($version_available ? $version_available : lang('True')) :
($found ? lang('Found, but unknown version') : lang('False')))."</span></div>\n";
if (!$available) // give further info only if not availible
{
echo '<div class="setup_info">' . lang('PEAR%1 is needed by: %2.',$package ? '::'.$package : '',
is_array($args['from']) ? implode(', ',$args['from']) : $args['from']);
// if using Composer, dont confuse user with PEAR ;-)
if (file_exists(EGW_SERVER_ROOT.'/vendor'))
{
echo '<br/>'.lang('You can install it by running:').
' cd '.realpath(EGW_SERVER_ROOT).'; php composer.phar install';
} }
else else
{ {
if (!$pear_available) $ok++;
{ $icon = $passed_icon;
echo '<br/>'.lang('PEAR (%1) is a PHP repository and is usually in a package called %2.', $class = '';
'<a href="http://pear.php.net" target="_blank">pear.php.net</a>','php-pear');
}
elseif ($package && !$found)
{
echo '<br/>'.lang('You can install it by running:').
($channel ? ' pear channel-discover '.$channel.' ;' : '').
' pear install '.($channel ? $channel.'/' : '').$package;
}
elseif ($min_version && !$version_available)
{
echo '<br/>'.lang('We could not determine the version of %1, please make sure it is at least %2',$package,$min_version);
}
elseif ($min_version && version_compare($min_version,$version_available) > 0)
{
echo '<br/>'.lang('Your installed version of %1 is %2, required is at least %3, please run: ',
$package,$version_available,$min_version).' pear upgrade '.$package;
}
echo '<br/>'.lang('Alternatively you can use %1Composer%2 to install all requirements at once. Downloading it and run:',
'<a href="https://getcomposer.org/" target="_blank">', '</a>').
' cd '.realpath(EGW_SERVER_ROOT).'; php composer.phar install';
} }
echo "</div>";
}
echo "\n";
return $available; if ($verbose || !$version_ok)
{
echo '<div>'.$icon.' <span'.$class.'>'.
lang('Checking package %1 is installed', $package['name'].':'.$package['version']).
': '.(empty($installed) ? lang('not installed') : $installed)."</div>\n";
}
}
if ($ok && !$verbose)
{
echo '<div>'.$passed_icon.' <span class="setup_error">'.
lang('Checking dependencies: %1 packages are installed in the required version.', $ok)."</div>\n";
}
}
/**
* @deprecated use composer.json
*/
function pear_check($package,$args)
{
unset($package, $args);
} }
function extension_check($name,$args) function extension_check($name,$args)
{ {
//echo "<p>extension_check($name,".print_r($args,true).")</p>\n"; //echo "<p>extension_check($name,".print_r($args,true).")</p>\n";
global $passed_icon, $warning_icon, $is_windows; global $passed_icon, $warning_icon, $is_windows, $error_icon;
if (isset($args['win_only']) && $args['win_only'] && !$is_windows) if (isset($args['win_only']) && $args['win_only'] && !$is_windows)
{ {
@ -504,8 +428,11 @@ function extension_check($name,$args)
} }
// we check for the existens of 'dl', as multithreaded webservers dont have it !!! // we check for the existens of 'dl', as multithreaded webservers dont have it !!!
$available = check_load_extension($name); $available = check_load_extension($name);
$icon = $available ? $passed_icon : (isset($args['error']) ? $error_icon : $warning_icon);
$class = $available ? '' : (isset($args['error']) ? ' class="setup_error"' : ' class="setup_warning"');
echo '<div>'.($available ? $passed_icon : $warning_icon).' <span'.($available ? '' : ' class="setup_warning"').'>'.lang('Checking extension %1 is loaded or loadable',$name).': '.($available ? lang('True') : lang('False'))."</span></div>\n"; echo '<div>'.$icon.' <span'.$class.'>'.lang('Checking extension %1 is loaded or loadable', $name).
': '.($available ? lang('True') : lang('False'))."</span></div>\n";
if (!$available) if (!$available)
{ {
@ -514,7 +441,7 @@ function extension_check($name,$args)
$args['warning'] = lang('The %1 extension is needed from: %2.',$name, $args['warning'] = lang('The %1 extension is needed from: %2.',$name,
is_array($args['from']) ? implode(', ',$args['from']) : $args['from']); is_array($args['from']) ? implode(', ',$args['from']) : $args['from']);
} }
echo "<div class='setup_info'>".$args['warning'].'</div>'; echo "<div class='setup_info'>".(isset($args['error']) ? $args['error'] : $args['warning']).'</div>';
} }
echo "\n"; echo "\n";

View File

@ -141,6 +141,7 @@ check can only be performed, if called via a webserver, as the user-id/-name of
check installation setup de Installation überprüfen check installation setup de Installation überprüfen
check ip address of all sessions setup de IP Adresse bei allen Sessions überprüfen check ip address of all sessions setup de IP Adresse bei allen Sessions überprüfen
check to backup and restore the files directory (may use a lot of space, make sure to configure housekeeping accordingly) setup de anhaken, um das Backup und Restore der Dateiumgebung (Datei-Verzeichnis) zu aktivieren. (diese Option kann grosse Mengen an Festplatten-Speicherpatz verbrauchen; stellen Sie sicher dass das Housekeeping entsprechend konfiguriert ist.) check to backup and restore the files directory (may use a lot of space, make sure to configure housekeeping accordingly) setup de anhaken, um das Backup und Restore der Dateiumgebung (Datei-Verzeichnis) zu aktivieren. (diese Option kann grosse Mengen an Festplatten-Speicherpatz verbrauchen; stellen Sie sicher dass das Housekeeping entsprechend konfiguriert ist.)
checking dependencies: %1 packages are installed in the required version. setup de Überprüfe Abhängigkeiten: %1 Pakete sind in der benötigten Version installiert.
checking extension %1 is loaded or loadable setup de Überprüfe ob die Erweiterung %1 geladen oder ladbar ist checking extension %1 is loaded or loadable setup de Überprüfe ob die Erweiterung %1 geladen oder ladbar ist
checking file-permissions of %1 for %2 %3: %4 setup de Überprüfe Datei Zugriffsrechte von %1 für %2 %3: %4 checking file-permissions of %1 for %2 %3: %4 setup de Überprüfe Datei Zugriffsrechte von %1 für %2 %3: %4
checking for gd support... setup de Überprüfe die GD Unterstützung... checking for gd support... setup de Überprüfe die GD Unterstützung...
@ -148,7 +149,7 @@ checking for jpgraph in %1 setup de Überprüfe JPGraph in %1
checking for tnef application setup de Überprüfe tnef Anwendung checking for tnef application setup de Überprüfe tnef Anwendung
checking function %1 exists setup de Überprüfe ob die Funktion %1 verfügbar ist checking function %1 exists setup de Überprüfe ob die Funktion %1 verfügbar ist
checking if php.ini setting session.save_path='%1' is writable by the webserver setup de Überprüfe ob der Webserver auf die php.ini Einstellung session.save_path='%1' schreiben kann checking if php.ini setting session.save_path='%1' is writable by the webserver setup de Überprüfe ob der Webserver auf die php.ini Einstellung session.save_path='%1' schreiben kann
checking pear%1 is installed setup de Überprüfe ob PEAR%1 installiert ist checking package %1 is installed setup de Überprüfe ob das Paket %1 installiert ist
checking php.ini setup de Überprüfe die php.ini Datei checking php.ini setup de Überprüfe die php.ini Datei
checking required php version %1 (recommended %2) setup de Überprüfe benötigte PHP Version %1 (empfohlen %2) checking required php version %1 (recommended %2) setup de Überprüfe benötigte PHP Version %1 (empfohlen %2)
checking the egroupware installation setup de Überprüfe die EGroupware-Installation checking the egroupware installation setup de Überprüfe die EGroupware-Installation
@ -264,6 +265,7 @@ egroupware configuration file (header.inc.php) version %1 exists%2 setup de EGro
egroupware configuration file header.inc.php already exists, you need to use --edit-header or delete it first! setup de EGroupware Konfigurationsdatei header.inc.php existiert bereits, benutzen Sie --edit-header oder löschen Sie diese zuerst! egroupware configuration file header.inc.php already exists, you need to use --edit-header or delete it first! setup de EGroupware Konfigurationsdatei header.inc.php existiert bereits, benutzen Sie --edit-header oder löschen Sie diese zuerst!
egroupware domain/instance %1(%2): setup de EGroupware Domain/Instanz %1(%2): egroupware domain/instance %1(%2): setup de EGroupware Domain/Instanz %1(%2):
egroupware is already installed! setup de EGroupware ist bereits installiert! egroupware is already installed! setup de EGroupware ist bereits installiert!
egroupware requires several dependencies installed via: %1 setup de EGroupware hängt von diversen Paketen ab, die installiert werden müssen mit: %1
egroupware sources in '%1' are not complete, file '%2' missing !!! setup de EGroupware Quellen in '%1' sind nicht komplett, Datei '%2' fehlt !!! egroupware sources in '%1' are not complete, file '%2' missing !!! setup de EGroupware Quellen in '%1' sind nicht komplett, Datei '%2' fehlt !!!
email (standard maildomain should be set) setup de email (Standard Maildomaine muss gesetzt sein) email (standard maildomain should be set) setup de email (Standard Maildomaine muss gesetzt sein)
emailadmin profile updated: setup de EMailAdmin Profil aktualisiert: emailadmin profile updated: setup de EMailAdmin Profil aktualisiert:
@ -433,6 +435,7 @@ no setup de Nein
no %1 support found. disabling setup de Keine Unterstützung für %1 gefunden. Abgeschaltet no %1 support found. disabling setup de Keine Unterstützung für %1 gefunden. Abgeschaltet
no accounts existing setup de Keine Benutzerkonten gefunden no accounts existing setup de Keine Benutzerkonten gefunden
no algorithms available setup de Kein Algorithmus verfügbar no algorithms available setup de Kein Algorithmus verfügbar
no dependencies are installed: you need to run "%1" and either "%2" or "%3"! setup de Alle notwendigen Abhänigkeiten fehlen: Sie müssen "%1" UND entweder "%2" oder "%3" ausführen!
no egroupware domains / database instances exist! use --edit-header --domain to add one (--usage gives more options). setup de Keine EGroupware Domain / Datenbank Instanz existiert! Benutzen Sie --edit-header --domain um eine hinzuzufügen (--usage gibt weitere Optionen). no egroupware domains / database instances exist! use --edit-header --domain to add one (--usage gives more options). setup de Keine EGroupware Domain / Datenbank Instanz existiert! Benutzen Sie --edit-header --domain um eine hinzuzufügen (--usage gibt weitere Optionen).
no header admin password set! use --edit-header <password>[,<user>] to set one (--usage gives more options). setup de Kein Passwort für die Headerverwaltung gesetzt! Benutzen Sie --edit-header Passwort[,Benutzer] um eines zu setzen (--usage gibt weitere Optionen). no header admin password set! use --edit-header <password>[,<user>] to set one (--usage gives more options). setup de Kein Passwort für die Headerverwaltung gesetzt! Benutzen Sie --edit-header Passwort[,Benutzer] um eines zu setzen (--usage gibt weitere Optionen).
no modes available setup de kein Modus verfügbar no modes available setup de kein Modus verfügbar
@ -443,6 +446,7 @@ not setup de nicht
not all mcrypt algorithms and modes work with egroupware. if you experience problems try switching it off. setup de Nicht alle MCrypt-Algorithmen und -Modi funktionieren mit EGroupware. Wenn Sie Probleme feststellen, versuchen Sie es abzuschalten. not all mcrypt algorithms and modes work with egroupware. if you experience problems try switching it off. setup de Nicht alle MCrypt-Algorithmen und -Modi funktionieren mit EGroupware. Wenn Sie Probleme feststellen, versuchen Sie es abzuschalten.
not complete setup de nicht komplett not complete setup de nicht komplett
not completed setup de Nicht komplett not completed setup de Nicht komplett
not installed setup de nicht installiert
not ready for this stage yet setup de Noch nicht bereit für diesen Schritt not ready for this stage yet setup de Noch nicht bereit für diesen Schritt
not set setup de nicht gesetzt not set setup de nicht gesetzt
note: you will be able to customize this later setup de Notiz: Sie können dies später anpassen note: you will be able to customize this later setup de Notiz: Sie können dies später anpassen
@ -471,9 +475,6 @@ path information setup de Pfadinformationen
path of egroupware install directory (default auto-detected) setup de Pfad des EGroupware Installationsverzeichnis (Vorgabe wird automatisch erkannt) path of egroupware install directory (default auto-detected) setup de Pfad des EGroupware Installationsverzeichnis (Vorgabe wird automatisch erkannt)
path to user and group files has to be outside of the webservers document-root!!! setup de Pfad zu Benutzer und Gruppen Dateien MUSS AUSSERHALB des Wurzelverzeichnisses (document root) des Webservers sein!!! path to user and group files has to be outside of the webservers document-root!!! setup de Pfad zu Benutzer und Gruppen Dateien MUSS AUSSERHALB des Wurzelverzeichnisses (document root) des Webservers sein!!!
path to various directories: have to exist and be writeable by the webserver setup de Pfade zu verschiedenen Verzeichnissen: Diese müssen vorhanden sein und vom Webserver beschreibbar path to various directories: have to exist and be writeable by the webserver setup de Pfade zu verschiedenen Verzeichnissen: Diese müssen vorhanden sein und vom Webserver beschreibbar
pear (%1) is a php repository and is usually in a package called %2. setup de PEAR (%1) ist eine PHP Sammlung und ist üblicherweise in einem Paket namens %2.
pear extensions are required by many egroupware applications, pear itself is the required basis for each extension! setup de PEAR Erweiterungen werden von vielen EGroupware Anwendungen benötigt, PEAR selbst ist die Basis für diese Erweiterungen!
pear%1 is needed by: %2. setup de PEAR%1 wird benötigt von: %2.
pem certificate setup de PEM Zertifikat pem certificate setup de PEM Zertifikat
persistent connections setup de Permanente Verbindungen persistent connections setup de Permanente Verbindungen
php client setup de PHP Klient php client setup de PHP Klient

View File

@ -1,14 +1,20 @@
%1 '%2' does not exist, is not readable by the webserver or contains no egroupware installation! setup en %1 '%2' does NOT exist, is not readable by the web server or contains no EGroupware installation! %1 '%2' does not exist, is not readable by the webserver or contains no egroupware installation! setup en %1 '%2' does NOT exist, is not readable by the web server or contains no EGroupware installation!
%1 accounts to copy found. setup en %1 accounts to copy found.
%1 already exists in %2. setup en %1 already exists in %2. %1 already exists in %2. setup en %1 already exists in %2.
%1 created in %2. setup en %1 created in %2. %1 created in %2. setup en %1 created in %2.
%1 database %2 on %3 already contains the following tables: setup en %1 database %2 on %3 already contains the following tables: %1 database %2 on %3 already contains the following tables: setup en %1 database %2 on %3 already contains the following tables:
%1 does not exist !!! setup en %1 does not exist! %1 does not exist !!! setup en %1 does not exist!
%1 does not exist in %2. setup en %1 does NOT exist in %2.
%1 does not have a password (userpassword attribute) or we are not allowed to read it! setup en %1 does NOT have a password (userPassword attribute) or we are not allowed to read it!
%1 entries modified. setup en %1 entries modified. %1 entries modified. setup en %1 entries modified.
%1 entries would have been modified. setup en %1 entries would have been modified. %1 entries would have been modified. setup en %1 entries would have been modified.
%1 is %2%3 !!! setup en %1 is %2%3 ! %1 is %2%3 !!! setup en %1 is %2%3 !
%1 is needed by: %2. setup en %1 is needed by: %2. %1 is needed by: %2. setup en %1 is needed by: %2.
%1 is set to %2, you will not be able to upload or attach files bigger then that! setup en %1 is set to %2, you will NOT be able to upload or attach files bigger than that! %1 is set to %2, you will not be able to upload or attach files bigger then that! setup en %1 is set to %2, you will NOT be able to upload or attach files bigger than that!
%1 is set to %2. this is not recommeded for a production system, as displayed error messages can contain passwords or other sensitive information! setup en %1 is set to %2. This is NOT recommended for a production system, as displayed error messages can contain passwords or other sensitive information! %1 is set to %2. this is not recommeded for a production system, as displayed error messages can contain passwords or other sensitive information! setup en %1 is set to %2. This is NOT recommended for a production system, as displayed error messages can contain passwords or other sensitive information!
%1 not allowed to create in univention. setup en %1 not allowed to create in Univention.
%1 password set in %2. setup en %1 password set in %2.
%1 passwords updated, %3 errors setup en %1 passwords updated, %3 errors
%1 users and %2 groups created, %3 errors setup en %1 users and %2 groups created, %3 errors. %1 users and %2 groups created, %3 errors setup en %1 users and %2 groups created, %3 errors.
%1, %2 or %3 the configuration file. setup en %1, %2 or %3 the configuration file. %1, %2 or %3 the configuration file. setup en %1, %2 or %3 the configuration file.
'%1' is no valid domain name! setup en '%1' is no valid domain name! '%1' is no valid domain name! setup en '%1' is no valid domain name!
@ -45,6 +51,7 @@ admin user setup en Admin user
admin user for header manager setup en Admin user for header manager admin user for header manager setup en Admin user for header manager
admin username setup en Admin username admin username setup en Admin username
admins setup en Admins admins setup en Admins
ads dn "%1" not found! setup en Ads dn "%1" NOT found!
after backing up your tables first. setup en After backing up your tables first. after backing up your tables first. setup en After backing up your tables first.
after retrieving the file, put it into place as the header.inc.php. then, click "continue". setup en After retrieving the file, put it into place as the header.inc.php. Then, click "continue". after retrieving the file, put it into place as the header.inc.php. then, click "continue". setup en After retrieving the file, put it into place as the header.inc.php. Then, click "continue".
all applications setup en All applications all applications setup en All applications
@ -121,6 +128,7 @@ but we <u>highly recommend backing up</u> your tables in case the script causes
by redirecting to https setup en By redirecting to https by redirecting to https setup en By redirecting to https
by rewriting links to https (allows eg. sitemgr to run on http) setup en By rewriting links to https (allows eg. SiteMgr to run on http) by rewriting links to https (allows eg. sitemgr to run on http) setup en By rewriting links to https (allows eg. SiteMgr to run on http)
ca certificate setup en CA certificate ca certificate setup en CA certificate
cached cleared setup en Cached cleared
can not connect to %1 database %2 on host %3 using user %4! setup en Can not connect to %1 database %2 on host %3 using user %4! can not connect to %1 database %2 on host %3 using user %4! setup en Can not connect to %1 database %2 on host %3 using user %4!
can not connect to ldap server on host %1 using dn %2! setup en Can not connect to LDAP server on host %1 using DN %2! can not connect to ldap server on host %1 using dn %2! setup en Can not connect to LDAP server on host %1 using DN %2!
can not create %1 database %2 on %3 for user %4! setup en Can not create %1 database %2 on %3 for user %4! can not create %1 database %2 on %3 for user %4! setup en Can not create %1 database %2 on %3 for user %4!
@ -141,6 +149,7 @@ check can only be performed, if called via a webserver, as the user-id/-name of
check installation setup en Check installation check installation setup en Check installation
check ip address of all sessions setup en Check IP address of all sessions check ip address of all sessions setup en Check IP address of all sessions
check to backup and restore the files directory (may use a lot of space, make sure to configure housekeeping accordingly) setup en Check to backup and restore the files directory. May use a lot of space, make sure to configure housekeeping accordingly. check to backup and restore the files directory (may use a lot of space, make sure to configure housekeeping accordingly) setup en Check to backup and restore the files directory. May use a lot of space, make sure to configure housekeeping accordingly.
checking dependencies: %1 packages are installed in the required version. setup en Checking dependencies: %1 packages are installed in the required version.
checking extension %1 is loaded or loadable setup en Checking extension %1 is loaded or loadable checking extension %1 is loaded or loadable setup en Checking extension %1 is loaded or loadable
checking file-permissions of %1 for %2 %3: %4 setup en Checking file permissions of %1 for %2 %3: %4 checking file-permissions of %1 for %2 %3: %4 setup en Checking file permissions of %1 for %2 %3: %4
checking for gd support... setup en Checking for GD support... checking for gd support... setup en Checking for GD support...
@ -148,7 +157,7 @@ checking for jpgraph in %1 setup en Checking for JPGraph in %1
checking for tnef application setup en Checking for tnef application checking for tnef application setup en Checking for tnef application
checking function %1 exists setup en Checking function %1 exists checking function %1 exists setup en Checking function %1 exists
checking if php.ini setting session.save_path='%1' is writable by the webserver setup en Checking if php.ini setting session.save_path='%1' is writable by the web server checking if php.ini setting session.save_path='%1' is writable by the webserver setup en Checking if php.ini setting session.save_path='%1' is writable by the web server
checking pear%1 is installed setup en Checking PEAR%1 is installed checking package %1 is installed setup en Checking package %1 is installed
checking php.ini setup en Checking php.ini checking php.ini setup en Checking php.ini
checking required php version %1 (recommended %2) setup en Checking required PHP version %1 (recommended %2) checking required php version %1 (recommended %2) setup en Checking required PHP version %1 (recommended %2)
checking the egroupware installation setup en Checking the EGroupware Installation checking the egroupware installation setup en Checking the EGroupware Installation
@ -223,6 +232,7 @@ db user setup en DB user
default setup en Recommended default default setup en Recommended default
default file system space per user/group ? setup en Default file system space per user/group ? default file system space per user/group ? setup en Default file system space per user/group ?
delete setup en Delete delete setup en Delete
delete all existing accounts from sql database setup en Delete all existing accounts from SQL database
delete all existing sql accounts, groups, acls and preferences (normally not necessary)? setup en Delete all existing SQL accounts, groups, ACLs and preferences. Normally not necessary. delete all existing sql accounts, groups, acls and preferences (normally not necessary)? setup en Delete all existing SQL accounts, groups, ACLs and preferences. Normally not necessary.
delete all my tables and data setup en Delete all my tables and data delete all my tables and data setup en Delete all my tables and data
delete all old languages and install new ones setup en Delete all old languages and install new ones delete all old languages and install new ones setup en Delete all old languages and install new ones
@ -264,8 +274,11 @@ egroupware configuration file (header.inc.php) version %1 exists%2 setup en EGro
egroupware configuration file header.inc.php already exists, you need to use --edit-header or delete it first! setup en EGroupware configuration file header.inc.php already exists, you need to use --edit-header or delete it first! egroupware configuration file header.inc.php already exists, you need to use --edit-header or delete it first! setup en EGroupware configuration file header.inc.php already exists, you need to use --edit-header or delete it first!
egroupware domain/instance %1(%2): setup en EGroupware domain/instance %1(%2): egroupware domain/instance %1(%2): setup en EGroupware domain/instance %1(%2):
egroupware is already installed! setup en EGroupware is already installed! egroupware is already installed! setup en EGroupware is already installed!
egroupware requires several dependencies installed via: %1 setup en EGroupware requires several dependencies installed via: %1
egroupware sources in '%1' are not complete, file '%2' missing !!! setup en EGroupware sources in '%1' are not complete, file '%2' missing !!! egroupware sources in '%1' are not complete, file '%2' missing !!! setup en EGroupware sources in '%1' are not complete, file '%2' missing !!!
email (standard maildomain should be set) setup en Email (Standard Maildomain should be set) email (standard maildomain should be set) setup en Email (Standard Maildomain should be set)
email-address setup en EMail-address
emailadmin mail account saved: setup en EMailAdmin mail account saved:
emailadmin profile updated: setup en eMailAdmin profile updated: emailadmin profile updated: setup en eMailAdmin profile updated:
enable for extra debug-messages setup en Enable for extra debug messages enable for extra debug-messages setup en Enable for extra debug messages
enable mcrypt setup en Enable MCrypt enable mcrypt setup en Enable MCrypt
@ -293,8 +306,10 @@ error in admin-creation !!! setup en Error in admin creation!
error in group-creation !!! setup en Error in group creation! error in group-creation !!! setup en Error in group creation!
error listing "dn=%1"! setup en Error listing "dn=%1"! error listing "dn=%1"! setup en Error listing "dn=%1"!
error modifying dn=%1: %2='%3'! setup en Error modifying dn=%1: %2='%3'! error modifying dn=%1: %2='%3'! setup en Error modifying dn=%1: %2='%3'!
error searching "dn=%1" for "%2"! setup en Error searching "dn=%1" for "%2"!
export has been completed! setup en Export has been completed! export has been completed! setup en Export has been completed!
failed to mount backup directory! setup en Failed to mount Backup directory! failed to mount backup directory! setup en Failed to mount Backup directory!
failed updating user "%1" dn="%2"! setup en Failed updating user "%1" dn="%2"!
failed writing configuration file header.inc.php, check the permissions !!! setup en Failed writing configuration file header.inc.php, check the permissions! failed writing configuration file header.inc.php, check the permissions !!! setup en Failed writing configuration file header.inc.php, check the permissions!
false setup en False false setup en False
file setup en FILE file setup en FILE
@ -303,6 +318,8 @@ file uploads are switched off: you can not use any of the filemanagers, nor can
filename setup en File name filename setup en File name
filesystem setup en File system filesystem setup en File system
filesystem (default) setup en File system (default) filesystem (default) setup en File system (default)
find and register all application hooks setup en Find and Register all Application Hooks
folders: sent,trash,drafts,templates,junk setup en Folders: Sent,Trash,Drafts,Templates,Junk
force selectbox setup en Force select box force selectbox setup en Force select box
found, but unknown version setup en Found, but unknown version found, but unknown version setup en Found, but unknown version
give admin access to all installed apps setup en Give admin access to all installed apps give admin access to all installed apps setup en Give admin access to all installed apps
@ -349,6 +366,7 @@ if you did not receive any errors, your tables have been setup en If you did not
if you running this the first time, don't forget to manualy %1 !!! setup en If you running this the first time, don't forget to manually %1 ! if you running this the first time, don't forget to manualy %1 !!! setup en If you running this the first time, don't forget to manually %1 !
if you use only languages of the same charset (eg. western european ones) you dont need to set a system-charset! setup en If you use only languages of the same charset (eg. western european ones) you don't need to set a system charset! if you use only languages of the same charset (eg. western european ones) you dont need to set a system-charset! setup en If you use only languages of the same charset (eg. western european ones) you don't need to set a system charset!
image type selection order setup en Image type selection order image type selection order setup en Image type selection order
imap: admin user,password,emailadmin_imap(|_cyrus|_dovecot) setup en IMAP: Admin user,Password,emailadmin_imap(|_cyrus|_dovecot)
import has been completed! setup en Import has been completed! import has been completed! setup en Import has been completed!
include_path need to contain "." - the current directory setup en include_path need to contain "." - the current directory include_path need to contain "." - the current directory setup en include_path need to contain "." - the current directory
install setup en Install install setup en Install
@ -396,6 +414,7 @@ login to mysql - setup en Login to mysql -
loginname needed for domain configuration setup en Login name needed for domain configuration loginname needed for domain configuration setup en Login name needed for domain configuration
logout setup en Logout logout setup en Logout
mail account of %1 migraged setup en Mail account of %1 migraged mail account of %1 migraged setup en Mail account of %1 migraged
mail account of %1 migrated setup en Mail account of %1 migrated
mail domain (for virtual mail manager) setup en Mail domain (for Virtual mail manager) mail domain (for virtual mail manager) setup en Mail domain (for Virtual mail manager)
mail server login type setup en Mail server login type mail server login type setup en Mail server login type
mail server protocol setup en Mail server protocol mail server protocol setup en Mail server protocol
@ -433,6 +452,7 @@ no setup en No
no %1 support found. disabling setup en No %1 support found. Disabling no %1 support found. disabling setup en No %1 support found. Disabling
no accounts existing setup en No accounts existing no accounts existing setup en No accounts existing
no algorithms available setup en No algorithms available no algorithms available setup en No algorithms available
no dependencies are installed: you need to run "%1" and either "%2" or "%3"! setup en No dependencies are installed: you need to run "%1" AND either "%2" OR "%3"!
no egroupware domains / database instances exist! use --edit-header --domain to add one (--usage gives more options). setup en No EGroupware domains / database instances exist! Use --edit-header --domain to add one (--usage gives more options). no egroupware domains / database instances exist! use --edit-header --domain to add one (--usage gives more options). setup en No EGroupware domains / database instances exist! Use --edit-header --domain to add one (--usage gives more options).
no header admin password set! use --edit-header <password>[,<user>] to set one (--usage gives more options). setup en No header admin password set! Use --edit-header <password>[,<user>] to set one (--usage gives more options). no header admin password set! use --edit-header <password>[,<user>] to set one (--usage gives more options). setup en No header admin password set! Use --edit-header <password>[,<user>] to set one (--usage gives more options).
no modes available setup en No modes available! no modes available setup en No modes available!
@ -443,6 +463,7 @@ not setup en Not
not all mcrypt algorithms and modes work with egroupware. if you experience problems try switching it off. setup en Not all mcrypt algorithms and modes work with EGroupware. If you experience problems try switching it off. not all mcrypt algorithms and modes work with egroupware. if you experience problems try switching it off. setup en Not all mcrypt algorithms and modes work with EGroupware. If you experience problems try switching it off.
not complete setup en Not complete not complete setup en Not complete
not completed setup en Not completed not completed setup en Not completed
not installed setup en not installed
not ready for this stage yet setup en Not ready for this stage yet. not ready for this stage yet setup en Not ready for this stage yet.
not set setup en Not set not set setup en Not set
note: you will be able to customize this later setup en Note: You will be able to customize this later note: you will be able to customize this later setup en Note: You will be able to customize this later
@ -465,15 +486,13 @@ password setup en Password
password for smtp-authentication setup en Password for SMTP authentication password for smtp-authentication setup en Password for SMTP authentication
password needed for domain configuration. setup en Password needed for domain configuration. password needed for domain configuration. setup en Password needed for domain configuration.
password of db user setup en Password of db user password of db user setup en Password of db user
passwords --> sql setup en Passwords --> SQL
passwords did not match, please re-enter setup en Passwords did not match, please re-enter passwords did not match, please re-enter setup en Passwords did not match, please re-enter
path (not url!) to your egroupware installation. setup en Path (not URL!) to your EGroupware installation. path (not url!) to your egroupware installation. setup en Path (not URL!) to your EGroupware installation.
path information setup en Path information path information setup en Path information
path of egroupware install directory (default auto-detected) setup en Path of EGroupware install directory (default auto-detected) path of egroupware install directory (default auto-detected) setup en Path of EGroupware install directory (default auto-detected)
path to user and group files has to be outside of the webservers document-root!!! setup en Path to user and group files HAS TO BE OUTSIDE of the web servers document-root! path to user and group files has to be outside of the webservers document-root!!! setup en Path to user and group files HAS TO BE OUTSIDE of the web servers document-root!
path to various directories: have to exist and be writeable by the webserver setup en Path to various directories: have to exist and be writable by the web server path to various directories: have to exist and be writeable by the webserver setup en Path to various directories: have to exist and be writable by the web server
pear (%1) is a php repository and is usually in a package called %2. setup en PEAR (%1) is a PHP repository and is usually in a package called %2.
pear extensions are required by many egroupware applications, pear itself is the required basis for each extension! setup en PEAR extensions are required by many EGroupware applications, PEAR itself is the required basis for each extension!
pear%1 is needed by: %2. setup en PEAR%1 is needed by: %2.
pem certificate setup en PEM certificate pem certificate setup en PEM certificate
persistent connections setup en Persistent connections persistent connections setup en Persistent connections
php client setup en PHP client php client setup en PHP client
@ -491,6 +510,7 @@ please login to egroupware and run the admin application for additional site con
please make the following change in your php.ini setup en Please make the following change in your php.ini please make the following change in your php.ini setup en Please make the following change in your php.ini
please wait... setup en Please wait... please wait... setup en Please wait...
pop/imap mail server hostname or ip address setup en POP/IMAP mail server hostname or IP address pop/imap mail server hostname or ip address setup en POP/IMAP mail server hostname or IP address
port setup en port
possible reasons setup en Possible reasons possible reasons setup en Possible reasons
possible solutions setup en Possible solutions possible solutions setup en Possible solutions
post-install dependency failure setup en Post-install dependency failure post-install dependency failure setup en Post-install dependency failure
@ -554,6 +574,7 @@ select which user(s) will have admin privileges setup en Select which user(s) wi
select your old version setup en Select your old version select your old version setup en Select your old version
selectbox setup en Select box selectbox setup en Select box
server root setup en Server root server root setup en Server root
session expired setup en Session expired
session handler class used. setup en Session handler class used. session handler class used. setup en Session handler class used.
sessions handler setup en Sessions handler sessions handler setup en Sessions handler
set setup en Set set setup en Set
@ -626,6 +647,7 @@ the tables setup en the tables
the tidy extension is need in merge-print to clean up html before inserting it in office documents. setup en The tidy extension is need in merge-print to clean up html before inserting it in office documents. the tidy extension is need in merge-print to clean up html before inserting it in office documents. setup en The tidy extension is need in merge-print to clean up html before inserting it in office documents.
the username/passwords are: demo/guest, demo2/guest and demo3/guest. setup en The username/passwords are: demo/guest, demo2/guest and demo3/guest. the username/passwords are: demo/guest, demo2/guest and demo3/guest. setup en The username/passwords are: demo/guest, demo2/guest and demo3/guest.
the xmlreader extension is required by egroupware in several applications. setup en The xmlreader extension is required by EGroupware in several applications. the xmlreader extension is required by egroupware in several applications. setup en The xmlreader extension is required by EGroupware in several applications.
the xsl extension is need in merge-print for processing html and office documents. setup en The xsl extension is need in merge-print for processing html and office documents.
the zip extension is required for merge-print with office documents. setup en The zip extension is required for merge-print with office documents. the zip extension is required for merge-print with office documents. setup en The zip extension is required for merge-print with office documents.
there was a problem trying to connect to your ldap server. <br /> setup en There was a problem trying to connect to your LDAP server. <br /> there was a problem trying to connect to your ldap server. <br /> setup en There was a problem trying to connect to your LDAP server. <br />
there was a problem trying to connect to your ldap server. <br />please check your ldap server configuration setup en There was a problem trying to connect to your LDAP server. <br />please check your LDAP server configuration there was a problem trying to connect to your ldap server. <br />please check your ldap server configuration setup en There was a problem trying to connect to your LDAP server. <br />please check your LDAP server configuration
@ -653,6 +675,8 @@ uninstall all applications setup en Uninstall all applications
uninstalled setup en Uninstalled uninstalled setup en Uninstalled
unknown option '%1' !!! setup en Unknown option '%1' !!! unknown option '%1' !!! setup en Unknown option '%1' !!!
update finished. setup en Update finished. update finished. setup en Update finished.
update necessary. setup en Update necessary.
update of %1 in %2 failed !!! setup en Update of %1 in %2 failed !!!
upgrade setup en Upgrade upgrade setup en Upgrade
upgrade all setup en Upgrade all upgrade all setup en Upgrade all
upgraded setup en Upgraded. upgraded setup en Upgraded.
@ -661,6 +685,7 @@ upload backup setup en Upload backup
uploads a backup and installs it on your db setup en Uploads a backup and installs it on your DB uploads a backup and installs it on your db setup en Uploads a backup and installs it on your DB
uploads a backup to the backup-dir, from where you can restore it setup en Uploads a backup to the backup-dir, from where you can restore it uploads a backup to the backup-dir, from where you can restore it setup en Uploads a backup to the backup-dir, from where you can restore it
usage: %1 command [additional options] setup en Usage: %1 command [additional options] usage: %1 command [additional options] setup en Usage: %1 command [additional options]
use %u for username, leave empty to no set setup en use %u for username, leave empty to no set
use --create-header to create the configuration file (--usage gives more options). setup en Use --create-header to create the configuration file (--usage gives more options). use --create-header to create the configuration file (--usage gives more options). setup en Use --create-header to create the configuration file (--usage gives more options).
use --install to install egroupware. setup en Use --install to install EGroupware use --install to install egroupware. setup en Use --install to install EGroupware
use --update to do so. setup en Use --update to do so use --update to do so. setup en Use --update to do so
@ -671,6 +696,8 @@ use pure html compliant code (not fully working yet) setup en Use pure HTML comp
use space to separate multiple setup en use space to separate multiple use space to separate multiple setup en use space to separate multiple
use tls or ssl encryption setup en Use TLS or SSL encryption use tls or ssl encryption setup en Use TLS or SSL encryption
user setup en User user setup en User
user "%1" dn="%2" successful updated. setup en User "%1" dn="%2" successful updated.
user "%1" not found! setup en User "%1" not found!
user account prefix setup en User account prefix user account prefix setup en User account prefix
user for smtp-authentication (leave it empty if no auth required) setup en User for SMTP-authentication (leave it empty if no auth required) user for smtp-authentication (leave it empty if no auth required) setup en User for SMTP-authentication (leave it empty if no auth required)
usernames (comma-separated) which can get vfs root access (beside setup user) setup en User names, comma-separated, which can get VFS root access (beside setup user) usernames (comma-separated) which can get vfs root access (beside setup user) setup en User names, comma-separated, which can get VFS root access (beside setup user)