forked from extern/egroupware
fix distro detection to use /etc/os-release to detect newer SUSE distros
This commit is contained in:
parent
9e99c8608c
commit
58169abad0
@ -6,7 +6,6 @@
|
|||||||
* @link http://www.egroupware.org
|
* @link http://www.egroupware.org
|
||||||
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
* @license http://opensource.org/licenses/gpl-license.php GPL - GNU General Public License
|
||||||
* @author RalfBecker@outdoor-training.de
|
* @author RalfBecker@outdoor-training.de
|
||||||
* @version $Id$
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
if (php_sapi_name() !== 'cli') // security precaution: forbit calling post_install as web-page
|
if (php_sapi_name() !== 'cli') // security precaution: forbit calling post_install as web-page
|
||||||
@ -91,17 +90,28 @@ function set_distro_defaults($distro=null)
|
|||||||
global $config;
|
global $config;
|
||||||
if (is_null($distro))
|
if (is_null($distro))
|
||||||
{
|
{
|
||||||
$distro = file_exists('/etc/SuSE-release') ? 'suse' :
|
$matches = null;
|
||||||
(file_exists('/etc/mandriva-release') ? 'mandriva' :
|
// check for ID in /etc/os-release and use it
|
||||||
(file_exists('/etc/lsb-release') && preg_match('/^DISTRIB_ID="?Univention"?$/mi',
|
if (file_exists('/etc/os-release') && preg_match('/^ID="?([^"=]+)"?$/m', $os_release=file_get_contents('/etc/os-release'), $matches))
|
||||||
file_get_contents('/etc/lsb-release')) ? 'univention' :
|
{
|
||||||
(file_exists('/etc/debian_version') ? 'debian' : 'rh')));
|
$distro = $matches[1];
|
||||||
|
}
|
||||||
|
// old detections based on distro specific /etc/*release files
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$distro = file_exists('/etc/SuSE-release') ? 'suse' :
|
||||||
|
(file_exists('/etc/mandriva-release') ? 'mandriva' :
|
||||||
|
(file_exists('/etc/lsb-release') && preg_match('/^DISTRIB_ID="?Univention"?$/mi',
|
||||||
|
file_get_contents('/etc/lsb-release')) ? 'univention' :
|
||||||
|
(file_exists('/etc/debian_version') ? 'debian' : 'rh')));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
switch (($config['distro'] = $distro))
|
switch (($config['distro'] = $distro))
|
||||||
{
|
{
|
||||||
case 'suse':
|
case 'suse': case 'opensuse-leap': case 'opensuse':
|
||||||
// openSUSE 12.1+ no longer uses php5
|
// openSUSE 12.1+ no longer uses php5
|
||||||
if (file_exists('/usr/bin/php5')) $config['php'] = '/usr/bin/php5';
|
if (file_exists('/usr/bin/php5')) $config['php'] = '/usr/bin/php5';
|
||||||
|
if (file_exists('/usr/bin/php7')) $config['php'] = '/usr/bin/php7';
|
||||||
$config['start_db'] = '/sbin/service mysql';
|
$config['start_db'] = '/sbin/service mysql';
|
||||||
$config['autostart_db'] = '/sbin/chkconfig --level 345 mysql on';
|
$config['autostart_db'] = '/sbin/chkconfig --level 345 mysql on';
|
||||||
$config['start_webserver'] = '/sbin/service apache2';
|
$config['start_webserver'] = '/sbin/service apache2';
|
||||||
@ -115,7 +125,7 @@ function set_distro_defaults($distro=null)
|
|||||||
$config['webserver_user'] = 'wwwrun';
|
$config['webserver_user'] = 'wwwrun';
|
||||||
$config['apache_config'] = '/etc/apache2/conf.d/egroupware.conf';
|
$config['apache_config'] = '/etc/apache2/conf.d/egroupware.conf';
|
||||||
break;
|
break;
|
||||||
case 'debian':
|
case 'debian': case 'ubuntu':
|
||||||
// service not in Debian5, only newer Ubuntu, which complains about /etc/init.d/xx
|
// service not in Debian5, only newer Ubuntu, which complains about /etc/init.d/xx
|
||||||
if (file_exists('/usr/sbin/service'))
|
if (file_exists('/usr/sbin/service'))
|
||||||
{
|
{
|
||||||
@ -145,9 +155,16 @@ function set_distro_defaults($distro=null)
|
|||||||
set_univention_defaults();
|
set_univention_defaults();
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
// if we dont support ID from os-release, look for first one in ID_LIKE
|
||||||
|
if (!empty($os_release) && preg_match('/^ID_LIKE="?([^"=]+)"?$/m', $os_release, $matches))
|
||||||
|
{
|
||||||
|
list($distro) = explode(' ', $matches[1]);
|
||||||
|
return set_distro_defaults($distro);
|
||||||
|
}
|
||||||
|
// old default: rh
|
||||||
$config['distro'] = 'rh';
|
$config['distro'] = 'rh';
|
||||||
// fall through
|
// fall through
|
||||||
case 'rh':
|
case 'rh': case 'rhel': case 'centos': case 'fedora':
|
||||||
// some MySQL packages (mysql.com, MariaDB, ...) use "mysql" as service name instead of RH default "mysqld"
|
// some MySQL packages (mysql.com, MariaDB, ...) use "mysql" as service name instead of RH default "mysqld"
|
||||||
if (file_exists('/usr/bin/systemctl')) // RHEL 7
|
if (file_exists('/usr/bin/systemctl')) // RHEL 7
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user