From 3b8b9e3ee435e378ac6d455bc1d01bdd3f9ed47b Mon Sep 17 00:00:00 2001
From: Till Brehm <tbrehm@ispconfig.org>
Date: Wed, 25 May 2016 15:41:35 -0400
Subject: [PATCH] - Introduced confid in $distver array to separate the config and class for a distribution in the installer. - Cleaned up the dist detection.
---
/dev/null | 125 ----------
install/install.php | 2
server/lib/classes/monitor_tools.inc.php | 466 ++++++++++++++++++++++----------------
install/lib/install.lib.php | 120 ++++-----
install/update.php | 2
5 files changed, 319 insertions(+), 396 deletions(-)
diff --git a/install/dist/lib/centos72.lib.php b/install/dist/lib/centos72.lib.php
deleted file mode 100644
index 407a61b..0000000
--- a/install/dist/lib/centos72.lib.php
+++ /dev/null
@@ -1,125 +0,0 @@
-<?php
-
-/*
-Copyright (c) 2014, Till Brehm, ISPConfig UG
-All rights reserved.
-
-Redistribution and use in source and binary forms, with or without modification,
-are permitted provided that the following conditions are met:
-
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * Redistributions in binary form must reproduce the above copyright notice,
- this list of conditions and the following disclaimer in the documentation
- and/or other materials provided with the distribution.
- * Neither the name of ISPConfig nor the names of its contributors
- may be used to endorse or promote products derived from this software without
- specific prior written permission.
-
-THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
-ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
-IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
-INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
-BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
-OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
-NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
-EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-*/
-
-require_once realpath(dirname(__FILE__)) . '/centos_base.lib.php';
-
-class installer extends installer_centos {
-
- protected $clamav_socket = '/var/run/clamd.amavisd/clamd.sock';
-
- public function configure_amavis() {
- global $conf;
-
- // amavisd user config file
- $configfile = 'fedora_amavisd_conf';
- if(!is_dir($conf["amavis"]["config_dir"])) mkdir($conf["amavis"]["config_dir"]);
- if(is_file($conf["amavis"]["config_dir"].'/amavisd.conf')) copy($conf["amavis"]["config_dir"].'/amavisd.conf', $conf["amavis"]["config_dir"].'/amavisd.conf~');
- if(is_file($conf["amavis"]["config_dir"].'/amavisd.conf~')) exec('chmod 400 '.$conf["amavis"]["config_dir"].'/amavisd.conf~');
- $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/'.$configfile.'.master', "tpl/".$configfile.".master");
- $content = str_replace('{mysql_server_ispconfig_user}', $conf['mysql']['ispconfig_user'], $content);
- $content = str_replace('{mysql_server_ispconfig_password}', $conf['mysql']['ispconfig_password'], $content);
- $content = str_replace('{mysql_server_database}', $conf['mysql']['database'], $content);
- $content = str_replace('{mysql_server_port}', $conf["mysql"]["port"], $content);
- $content = str_replace('{mysql_server_ip}', $conf['mysql']['ip'], $content);
- $content = str_replace('{hostname}', $conf['hostname'], $content);
- $content = str_replace('/var/spool/amavisd/clamd.sock', $this->clamav_socket, $content);
- wf($conf["amavis"]["config_dir"].'/amavisd.conf', $content);
- chmod($conf['amavis']['config_dir'].'/amavisd.conf', 0640);
- exec('chgrp amavis '.$conf['amavis']['config_dir'].'/amavisd.conf');
-
- // Adding the amavisd commands to the postfix configuration
- $postconf_commands = array (
- 'content_filter = amavis:[127.0.0.1]:10024',
- 'receive_override_options = no_address_mappings'
- );
-
- // Make a backup copy of the main.cf file
- copy($conf["postfix"]["config_dir"].'/main.cf', $conf["postfix"]["config_dir"].'/main.cf~2');
-
- // Executing the postconf commands
- foreach($postconf_commands as $cmd) {
- $command = "postconf -e '$cmd'";
- caselog($command." &> /dev/null", __FILE__, __LINE__, "EXECUTED: $command", "Failed to execute the command $command");
- }
-
- $config_dir = $conf['postfix']['config_dir'];
-
- // Adding amavis-services to the master.cf file if the service does not already exists
- $add_amavis = !$this->get_postfix_service('amavis','unix');
- $add_amavis_10025 = !$this->get_postfix_service('127.0.0.1:10025','inet');
- $add_amavis_10027 = !$this->get_postfix_service('127.0.0.1:10027','inet');
-
- if ($add_amavis || $add_amavis_10025 || $add_amavis_10027) {
- //* backup master.cf
- if(is_file($config_dir.'/master.cf')) copy($config_dir.'/master.cf', $config_dir.'/master.cf~');
- // adjust amavis-config
- if($add_amavis) {
- $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis.master', 'tpl/master_cf_amavis.master');
- af($config_dir.'/master.cf', $content);
- unset($content);
- }
- if ($add_amavis_10025) {
- $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis10025.master', 'tpl/master_cf_amavis10025.master');
- af($config_dir.'/master.cf', $content);
- unset($content);
- }
- if ($add_amavis_10027) {
- $content = rfsel($conf['ispconfig_install_dir'].'/server/conf-custom/install/master_cf_amavis10027.master', 'tpl/master_cf_amavis10027.master');
- af($config_dir.'/master.cf', $content);
- unset($content);
- }
- }
-
- // Create the director for DKIM-Keys
- if(!is_dir('/var/lib/amavis/dkim')) mkdir('/var/lib/amavis/dkim', 0750, true);
- // get shell-user for amavis
- $amavis_user=exec('grep -o "^amavis:\|^vscan:" /etc/passwd');
- if(!empty($amavis_user)) {
- $amavis_user=rtrim($amavis_user, ":");
- exec('chown '.$amavis_user.' /var/lib/amavis/dkim');
- }
- // get shell-group for amavis
- $amavis_group=exec('grep -o "^amavis:\|^vscan:" /etc/group');
- if(!empty($amavis_group)) {
- $amavis_group=rtrim($amavis_group, ":");
- exec('chgrp '.$amavis_group.' /var/lib/amavis/dkim');
- }
-
- removeLine('/etc/sysconfig/freshclam', 'FRESHCLAM_DELAY=disabled-warn # REMOVE ME', 1);
- replaceLine('/etc/freshclam.conf', 'Example', '# Example', 1);
- replaceLine('/etc/clamd.d/scan.conf', 'Example', '# Example', 1);
-
- }
-
- // everything else is inherited from installer_centos class
-
-}
-
-?>
diff --git a/install/install.php b/install/install.php
index cff2265..14c9815 100644
--- a/install/install.php
+++ b/install/install.php
@@ -133,7 +133,7 @@
//** Include the distribution-specific installer class library and configuration
if(is_file('dist/lib/'.$dist['baseid'].'.lib.php')) include_once 'dist/lib/'.$dist['baseid'].'.lib.php';
include_once 'dist/lib/'.$dist['id'].'.lib.php';
-include_once 'dist/conf/'.$dist['id'].'.conf.php';
+include_once 'dist/conf/'.$dist['confid'].'.conf.php';
//****************************************************************************************************
//** Installer Interface
diff --git a/install/lib/install.lib.php b/install/lib/install.lib.php
index faee067..93e5470 100644
--- a/install/lib/install.lib.php
+++ b/install/lib/install.lib.php
@@ -27,29 +27,6 @@
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/
-
-/*
- This function returns a string that describes the installed
- Linux distribution. e.g. debian40 for Debian GNU/Linux 4.0
-*/
-
-
-
-/*
-Comments to completion forever ;-)
-commandline arguments
-$argv[1]
-
-
-<?
-echo "Total argument passed are : $argc \n";
-for( $i = 0 ; $i <= $argc -1 ;$i++)
-{
-echo "Argument $i : $argv[$i] \n";
-}
-?>
-
-*/
error_reporting(E_ALL|E_STRICT);
@@ -59,6 +36,10 @@
//** IMPORTANT!
// This is the same code as in server/lib/classes/monitor_tools.inc.php
// So if you change it here, you also have to change it in there!
+//
+// This function returns a string that describes the installed
+// Linux distribution. e.g. debian40 for Debian GNU/Linux 4.0
+
function get_distname() {
$distname = '';
@@ -66,53 +47,54 @@
$distid = '';
$distbaseid = '';
- //** Debian or Ubuntu
- if (is_file('/etc/os-release') && stristr(file_get_contents('/etc/os-release'), 'Ubuntu')) {
- $os_release = file_get_contents('/etc/os-release');
- if (strstr(trim($os_release), 'LTS')) {
- $lts = " LTS";
- } else {
- $lts = "";
- }
+ //** Debian or Ubuntu
+ if(file_exists('/etc/debian_version')) {
+
+ // Check if this is Ubuntu and not Debian
+ if (strstr(trim(file_get_contents('/etc/issue')), 'Ubuntu') || (is_file('/etc/os-release') && stristr(file_get_contents('/etc/os-release'), 'Ubuntu'))) {
+
+ $issue = file_get_contents('/etc/issue');
+
+ // Use content of /etc/issue file
+ if(strstr($issue,'Ubuntu')) {
+ if (strstr(trim($issue), 'LTS')) {
+ $lts=" LTS";
+ } else {
+ $lts="";
+ }
- preg_match("/.*VERSION=\"(.*)\".*/ui", $os_release, $ver);
- $ver = str_replace("LTS", "", $ver[1]);
- $ver = explode(" ", $ver, 2);
- $relname = end($ver);
- $relname = "(" . trim(trim($relname), "()") . ")";
- $distname = 'Ubuntu';
- $ver = reset($ver);
- if($ver == "16.04") {
- $distid = 'ubuntu1604';
- } else {
- $distid = 'debian40';
- }
- $distbaseid = 'debian';
- $distver = $ver . $lts . " " . $relname;
- swriteln("Operating System: " . $distver . "\n");
- } //** Debian / Ubuntu
- elseif(file_exists('/etc/debian_version')) {
- if (strstr(trim(file_get_contents('/etc/issue')), 'Ubuntu')) {
- if (strstr(trim(file_get_contents('/etc/issue')), 'LTS')) {
- $lts=" LTS";
+ $distname = 'Ubuntu';
+ $distid = 'debian40';
+ $distbaseid = 'debian';
+ $ver = explode(' ', $issue);
+ $ver = array_filter($ver);
+ $ver = next($ver);
+ $mainver = explode('.', $ver);
+ $mainver = array_filter($mainver);
+ $mainver = current($mainver).'.'.next($mainver);
+ // Use content of /etc/os-release file
} else {
- $lts="";
- }
+ $os_release = file_get_contents('/etc/os-release');
+ if (strstr(trim($os_release), 'LTS')) {
+ $lts = " LTS";
+ } else {
+ $lts = "";
+ }
+
+ $distname = 'Ubuntu';
+ $distid = 'debian40';
+ $distbaseid = 'debian';
- $issue=file_get_contents('/etc/issue');
- $distname = 'Ubuntu';
- $distid = 'debian40';
- $distbaseid = 'debian';
- $ver = explode(' ', $issue);
- $ver = array_filter($ver);
- $ver = next($ver);
- $mainver = explode('.', $ver);
- $mainver = array_filter($mainver);
- $mainver = current($mainver).'.'.next($mainver);
+ preg_match("/.*VERSION=\"(.*)\".*/ui", $os_release, $ver);
+ $ver = str_replace("LTS", "", $ver[1]);
+ $ver = explode(" ", $ver, 2);
+ $ver = reset($ver);
+ $mainver = $ver;
+ }
switch ($mainver){
case "16.04":
$relname = "(Xenial Xerus)";
- $distid = 'ubuntu1604';
+ $distconfid = 'ubuntu1604';
break;
case "15.10":
$relname = "(Wily Werewolf)";
@@ -187,7 +169,7 @@
$relname = "UNKNOWN";
}
$distver = $ver.$lts." ".$relname;
- swriteln("Operating System: ".$distver."\n");
+ swriteln("Operating System: ".$distname.' '.$distver."\n");
} elseif(trim(file_get_contents('/etc/debian_version')) == '4.0') {
$distname = 'Debian';
$distver = '4.0';
@@ -307,7 +289,8 @@
} elseif(stristr($content, 'CentOS Linux release 7.2')) {
$distname = 'CentOS';
$distver = 'Unknown';
- $distid = 'centos72';
+ $distid = 'centos70';
+ $distconfid = 'centos72';
$distbaseid = 'fedora';
swriteln("Operating System: CentOS 7.2\n");
} elseif(stristr($content, 'CentOS Linux release 7')) {
@@ -340,8 +323,11 @@
} else {
die('Unrecognized GNU/Linux distribution');
}
+
+ // Set $distconfid to distid, if no different id for the config is defined
+ if(!isset($distconfid)) $distconfid = $distid;
- return array('name' => $distname, 'version' => $distver, 'id' => $distid, 'baseid' => $distbaseid);
+ return array('name' => $distname, 'version' => $distver, 'id' => $distid, 'confid' => $distconfid, 'baseid' => $distbaseid);
}
function sread() {
diff --git a/install/update.php b/install/update.php
index 94de945..4626b50 100644
--- a/install/update.php
+++ b/install/update.php
@@ -137,7 +137,7 @@
//** Include the distribution-specific installer class library and configuration
if(is_file('dist/lib/'.$dist['baseid'].'.lib.php')) include_once 'dist/lib/'.$dist['baseid'].'.lib.php';
include_once 'dist/lib/'.$dist['id'].'.lib.php';
-include_once 'dist/conf/'.$dist['id'].'.conf.php';
+include_once 'dist/conf/'.$dist['confid'].'.conf.php';
//** Get hostname
exec('hostname -f', $tmp_out);
diff --git a/server/lib/classes/monitor_tools.inc.php b/server/lib/classes/monitor_tools.inc.php
index 8d71d9b..f2b7467 100644
--- a/server/lib/classes/monitor_tools.inc.php
+++ b/server/lib/classes/monitor_tools.inc.php
@@ -35,23 +35,29 @@
// This is the same code as in install/lib/install.lib.php
// So if you change it here, you also have to change it in there!
// Please do not forget to remove the swriteln(); - lines here at this file
- public function get_distname() {
+ function get_distname() {
- $distname = '';
- $distver = '';
- $distid = '';
- $distbaseid = '';
+ $distname = '';
+ $distver = '';
+ $distid = '';
+ $distbaseid = '';
- //** Debian or Ubuntu
- if (file_exists('/etc/debian_version')) {
- if (strstr(trim(file_get_contents('/etc/issue')), 'Ubuntu')) {
- if (strstr(trim(file_get_contents('/etc/issue')), 'LTS')) {
+ //** Debian or Ubuntu
+ if(file_exists('/etc/debian_version')) {
+
+ // Check if this is Ubuntu and not Debian
+ if (strstr(trim(file_get_contents('/etc/issue')), 'Ubuntu') || (is_file('/etc/os-release') && stristr(file_get_contents('/etc/os-release'), 'Ubuntu'))) {
+
+ $issue = file_get_contents('/etc/issue');
+
+ // Use content of /etc/issue file
+ if(strstr($issue,'Ubuntu')) {
+ if (strstr(trim($issue), 'LTS')) {
$lts=" LTS";
} else {
$lts="";
}
- $issue=file_get_contents('/etc/issue');
$distname = 'Ubuntu';
$distid = 'debian40';
$distbaseid = 'debian';
@@ -61,206 +67,262 @@
$mainver = explode('.', $ver);
$mainver = array_filter($mainver);
$mainver = current($mainver).'.'.next($mainver);
- switch ($mainver){
- case "16.04":
- $relname = "(Xenial Xerus)";
- $distid = 'ubuntu1604';
- break;
- case "15.10":
- $relname = "(Wily Werewolf)";
- break;
- case "15.04":
- $relname = "(Vivid Vervet)";
- break;
- case "14.10":
- $relname = "(Utopic Unicorn)";
- break;
- case "14.04":
- $relname = "(Trusty Tahr)";
- break;
- case "13.10":
- $relname = "(Saucy Salamander)";
- break;
- case "13.04":
- $relname = "(Raring Ringtail)";
- break;
- case "12.10":
- $relname = "(Quantal Quetzal)";
- break;
- case "12.04":
- $relname = "(Precise Pangolin)";
- break;
- case "11.10":
- $relname = "(Oneiric Ocelot)";
- break;
- case "11.14":
- $relname = "(Natty Narwhal)";
- break;
- case "10.10":
- $relname = "(Maverick Meerkat)";
- break;
- case "10.04":
- $relname = "(Lucid Lynx)";
- break;
- case "9.10":
- $relname = "(Karmic Koala)";
- break;
- case "9.04":
- $relname = "(Jaunty Jackpole)";
- break;
- case "8.10":
- $relname = "(Intrepid Ibex)";
- break;
- case "8.04":
- $relname = "(Hardy Heron)";
- break;
- case "7.10":
- $relname = "(Gutsy Gibbon)";
- break;
- case "7.04":
- $relname = "(Feisty Fawn)";
- break;
- case "6.10":
- $relname = "(Edgy Eft)";
- break;
- case "6.06":
- $relname = "(Dapper Drake)";
- break;
- case "5.10":
- $relname = "(Breezy Badger)";
- break;
- case "5.04":
- $relname = "(Hoary Hedgehog)";
- break;
- case "4.10":
- $relname = "(Warty Warthog)";
- break;
- default:
- $relname = "UNKNOWN";
+ // Use content of /etc/os-release file
+ } else {
+ $os_release = file_get_contents('/etc/os-release');
+ if (strstr(trim($os_release), 'LTS')) {
+ $lts = " LTS";
+ } else {
+ $lts = "";
}
- $distver = $ver.$lts." ".$relname;
- } elseif(trim(file_get_contents('/etc/debian_version')) == '4.0') {
- $distname = 'Debian';
- $distver = '4.0';
+
+ $distname = 'Ubuntu';
$distid = 'debian40';
$distbaseid = 'debian';
- } elseif (strstr(trim(file_get_contents('/etc/debian_version')), '5.0')) {
- $distname = 'Debian';
- $distver = 'Lenny';
- $distid = 'debian40';
- $distbaseid = 'debian';
- } elseif (strstr(trim(file_get_contents('/etc/debian_version')), '6.0') || trim(file_get_contents('/etc/debian_version')) == 'squeeze/sid') {
- $distname = 'Debian';
- $distver = 'Squeeze/Sid';
- $distid = 'debian60';
- $distbaseid = 'debian';
- } elseif (strstr(trim(file_get_contents('/etc/debian_version')), '7.0') || substr(trim(file_get_contents('/etc/debian_version')),0,2) == '7.' || trim(file_get_contents('/etc/debian_version')) == 'wheezy/sid') {
- $distname = 'Debian';
- $distver = 'Wheezy/Sid';
- $distid = 'debian60';
- $distbaseid = 'debian';
- } elseif(strstr(trim(file_get_contents('/etc/debian_version')), '8') || substr(trim(file_get_contents('/etc/debian_version')),0,1) == '8') {
- $distname = 'Debian';
- $distver = 'Jessie';
- $distid = 'debian60';
- $distbaseid = 'debian';
- } else {
- $distname = 'Debian';
- $distver = 'Unknown';
- $distid = 'debian40';
- $distbaseid = 'debian';
+
+ preg_match("/.*VERSION=\"(.*)\".*/ui", $os_release, $ver);
+ $ver = str_replace("LTS", "", $ver[1]);
+ $ver = explode(" ", $ver, 2);
+ $ver = reset($ver);
+ $mainver = $ver;
}
- }
-
- //** OpenSuSE
- elseif (file_exists('/etc/SuSE-release')) {
- if (stristr(file_get_contents('/etc/SuSE-release'), '11.0')) {
- $distname = 'openSUSE';
- $distver = '11.0';
- $distid = 'opensuse110';
- $distbaseid = 'opensuse';
- } elseif (stristr(file_get_contents('/etc/SuSE-release'), '11.1')) {
- $distname = 'openSUSE';
- $distver = '11.1';
- $distid = 'opensuse110';
- $distbaseid = 'opensuse';
- } elseif (stristr(file_get_contents('/etc/SuSE-release'), '11.2')) {
- $distname = 'openSUSE';
- $distver = '11.1';
- $distid = 'opensuse110';
- $distbaseid = 'opensuse';
- } else {
- $distname = 'openSUSE';
- $distver = 'Unknown';
- $distid = 'opensuse110';
- $distbaseid = 'opensuse';
+ switch ($mainver){
+ case "16.04":
+ $relname = "(Xenial Xerus)";
+ $distconfid = 'ubuntu1604';
+ break;
+ case "15.10":
+ $relname = "(Wily Werewolf)";
+ break;
+ case "15.04":
+ $relname = "(Vivid Vervet)";
+ break;
+ case "14.10":
+ $relname = "(Utopic Unicorn)";
+ break;
+ case "14.04":
+ $relname = "(Trusty Tahr)";
+ break;
+ case "13.10":
+ $relname = "(Saucy Salamander)";
+ break;
+ case "13.04":
+ $relname = "(Raring Ringtail)";
+ break;
+ case "12.10":
+ $relname = "(Quantal Quetzal)";
+ break;
+ case "12.04":
+ $relname = "(Precise Pangolin)";
+ break;
+ case "11.10":
+ $relname = "(Oneiric Ocelot)";
+ break;
+ case "11.14":
+ $relname = "(Natty Narwhal)";
+ break;
+ case "10.10":
+ $relname = "(Maverick Meerkat)";
+ break;
+ case "10.04":
+ $relname = "(Lucid Lynx)";
+ break;
+ case "9.10":
+ $relname = "(Karmic Koala)";
+ break;
+ case "9.04":
+ $relname = "(Jaunty Jackpole)";
+ break;
+ case "8.10":
+ $relname = "(Intrepid Ibex)";
+ break;
+ case "8.04":
+ $relname = "(Hardy Heron)";
+ break;
+ case "7.10":
+ $relname = "(Gutsy Gibbon)";
+ break;
+ case "7.04":
+ $relname = "(Feisty Fawn)";
+ break;
+ case "6.10":
+ $relname = "(Edgy Eft)";
+ break;
+ case "6.06":
+ $relname = "(Dapper Drake)";
+ break;
+ case "5.10":
+ $relname = "(Breezy Badger)";
+ break;
+ case "5.04":
+ $relname = "(Hoary Hedgehog)";
+ break;
+ case "4.10":
+ $relname = "(Warty Warthog)";
+ break;
+ default:
+ $relname = "UNKNOWN";
}
- }
-
-
- //** Redhat
- elseif (file_exists('/etc/redhat-release')) {
-
- $content = file_get_contents('/etc/redhat-release');
-
- if (stristr($content, 'Fedora release 9 (Sulphur)')) {
- $distname = 'Fedora';
- $distver = '9';
- $distid = 'fedora9';
- $distbaseid = 'fedora';
- } elseif (stristr($content, 'Fedora release 10 (Cambridge)')) {
- $distname = 'Fedora';
- $distver = '10';
- $distid = 'fedora9';
- $distbaseid = 'fedora';
- } elseif (stristr($content, 'Fedora release 10')) {
- $distname = 'Fedora';
- $distver = '11';
- $distid = 'fedora9';
- $distbaseid = 'fedora';
- } elseif (stristr($content, 'CentOS release 5.2 (Final)')) {
- $distname = 'CentOS';
- $distver = '5.2';
- $distid = 'centos52';
- $distbaseid = 'fedora';
- } elseif (stristr($content, 'CentOS release 5.3 (Final)')) {
- $distname = 'CentOS';
- $distver = '5.3';
- $distid = 'centos53';
- $distbaseid = 'fedora';
- } elseif(stristr($content, 'CentOS Linux release 6')) {
- $distname = 'CentOS';
- $distver = 'Unknown';
- $distid = 'centos53';
- $distbaseid = 'fedora';
- } elseif(stristr($content, 'CentOS Linux release 7')) {
- $distname = 'CentOS';
- $distver = 'Unknown';
- $distid = 'centos53';
- $distbaseid = 'fedora';
- } else {
- $distname = 'Redhat';
- $distver = 'Unknown';
- $distid = 'fedora9';
- $distbaseid = 'fedora';
- }
- }
-
- //** Gentoo
- elseif (file_exists('/etc/gentoo-release')) {
-
- $content = file_get_contents('/etc/gentoo-release');
-
- preg_match_all('/([0-9]{1,2})/', $content, $version);
- $distname = 'Gentoo';
- $distver = $version[0][0] . $version[0][1];
- $distid = 'gentoo';
- $distbaseid = 'gentoo';
+ $distver = $ver.$lts." ".$relname;
+ swriteln("Operating System: ".$distname.' '.$distver."\n");
+ } elseif(trim(file_get_contents('/etc/debian_version')) == '4.0') {
+ $distname = 'Debian';
+ $distver = '4.0';
+ $distid = 'debian40';
+ $distbaseid = 'debian';
+ swriteln("Operating System: Debian 4.0 or compatible\n");
+ } elseif(strstr(trim(file_get_contents('/etc/debian_version')), '5.0')) {
+ $distname = 'Debian';
+ $distver = 'Lenny';
+ $distid = 'debian40';
+ $distbaseid = 'debian';
+ swriteln("Operating System: Debian Lenny or compatible\n");
+ } elseif(strstr(trim(file_get_contents('/etc/debian_version')), '6.0') || trim(file_get_contents('/etc/debian_version')) == 'squeeze/sid') {
+ $distname = 'Debian';
+ $distver = 'Squeeze/Sid';
+ $distid = 'debian60';
+ $distbaseid = 'debian';
+ swriteln("Operating System: Debian 6.0 (Squeeze/Sid) or compatible\n");
+ } elseif(strstr(trim(file_get_contents('/etc/debian_version')), '7.0') || substr(trim(file_get_contents('/etc/debian_version')),0,2) == '7.' || trim(file_get_contents('/etc/debian_version')) == 'wheezy/sid') {
+ $distname = 'Debian';
+ $distver = 'Wheezy/Sid';
+ $distid = 'debian60';
+ $distbaseid = 'debian';
+ swriteln("Operating System: Debian 7.0 (Wheezy/Sid) or compatible\n");
+ } elseif(strstr(trim(file_get_contents('/etc/debian_version')), '8') || substr(trim(file_get_contents('/etc/debian_version')),0,1) == '8') {
+ $distname = 'Debian';
+ $distver = 'Jessie';
+ $distid = 'debian60';
+ $distbaseid = 'debian';
+ swriteln("Operating System: Debian 8.0 (Jessie) or compatible\n");
} else {
- die('Unrecognized GNU/Linux distribution');
+ $distname = 'Debian';
+ $distver = 'Unknown';
+ $distid = 'debian40';
+ $distbaseid = 'debian';
+ swriteln("Operating System: Debian or compatible, unknown version.\n");
}
+ }
- return array('name' => $distname, 'version' => $distver, 'id' => $distid, 'baseid' => $distbaseid);
+ //** OpenSuSE
+ elseif(file_exists('/etc/SuSE-release')) {
+ if(stristr(file_get_contents('/etc/SuSE-release'), '11.0')) {
+ $distname = 'openSUSE';
+ $distver = '11.0';
+ $distid = 'opensuse110';
+ $distbaseid = 'opensuse';
+ swriteln("Operating System: openSUSE 11.0 or compatible\n");
+ } elseif(stristr(file_get_contents('/etc/SuSE-release'), '11.1')) {
+ $distname = 'openSUSE';
+ $distver = '11.1';
+ $distid = 'opensuse110';
+ $distbaseid = 'opensuse';
+ swriteln("Operating System: openSUSE 11.1 or compatible\n");
+ } elseif(stristr(file_get_contents('/etc/SuSE-release'), '11.2')) {
+ $distname = 'openSUSE';
+ $distver = '11.2';
+ $distid = 'opensuse112';
+ $distbaseid = 'opensuse';
+ swriteln("Operating System: openSUSE 11.2 or compatible\n");
+ } else {
+ $distname = 'openSUSE';
+ $distver = 'Unknown';
+ $distid = 'opensuse112';
+ $distbaseid = 'opensuse';
+ swriteln("Operating System: openSUSE or compatible, unknown version.\n");
+ }
+ }
+
+
+ //** Redhat
+ elseif(file_exists('/etc/redhat-release')) {
+
+ $content = file_get_contents('/etc/redhat-release');
+
+ if(stristr($content, 'Fedora release 9 (Sulphur)')) {
+ $distname = 'Fedora';
+ $distver = '9';
+ $distid = 'fedora9';
+ $distbaseid = 'fedora';
+ swriteln("Operating System: Fedora 9 or compatible\n");
+ } elseif(stristr($content, 'Fedora release 10 (Cambridge)')) {
+ $distname = 'Fedora';
+ $distver = '10';
+ $distid = 'fedora9';
+ $distbaseid = 'fedora';
+ swriteln("Operating System: Fedora 10 or compatible\n");
+ } elseif(stristr($content, 'Fedora release 10')) {
+ $distname = 'Fedora';
+ $distver = '11';
+ $distid = 'fedora9';
+ $distbaseid = 'fedora';
+ swriteln("Operating System: Fedora 11 or compatible\n");
+ } elseif(stristr($content, 'CentOS release 5.2 (Final)')) {
+ $distname = 'CentOS';
+ $distver = '5.2';
+ $distid = 'centos52';
+ $distbaseid = 'fedora';
+ swriteln("Operating System: CentOS 5.2 or compatible\n");
+ } elseif(stristr($content, 'CentOS release 5.3 (Final)')) {
+ $distname = 'CentOS';
+ $distver = '5.3';
+ $distid = 'centos53';
+ $distbaseid = 'fedora';
+ swriteln("Operating System: CentOS 5.3 or compatible\n");
+ } elseif(stristr($content, 'CentOS release 5')) {
+ $distname = 'CentOS';
+ $distver = 'Unknown';
+ $distid = 'centos53';
+ $distbaseid = 'fedora';
+ swriteln("Operating System: CentOS 5 or compatible\n");
+ } elseif(stristr($content, 'CentOS Linux release 6')) {
+ $distname = 'CentOS';
+ $distver = 'Unknown';
+ $distid = 'centos53';
+ $distbaseid = 'fedora';
+ swriteln("Operating System: CentOS 6 or compatible\n");
+ } elseif(stristr($content, 'CentOS Linux release 7.2')) {
+ $distname = 'CentOS';
+ $distver = 'Unknown';
+ $distid = 'centos70';
+ $distconfid = 'centos72';
+ $distbaseid = 'fedora';
+ swriteln("Operating System: CentOS 7.2\n");
+ } elseif(stristr($content, 'CentOS Linux release 7')) {
+ $distname = 'CentOS';
+ $distver = 'Unknown';
+ $distid = 'centos70';
+ $distbaseid = 'fedora';
+ swriteln("Operating System: CentOS 7 or compatible\n");
+ } else {
+ $distname = 'Redhat';
+ $distver = 'Unknown';
+ $distid = 'fedora9';
+ $distbaseid = 'fedora';
+ swriteln("Operating System: Redhat or compatible, unknown version.\n");
+ }
+ }
+
+ //** Gentoo
+ elseif(file_exists('/etc/gentoo-release')) {
+
+ $content = file_get_contents('/etc/gentoo-release');
+
+ preg_match_all('/([0-9]{1,2})/', $content, $version);
+ $distname = 'Gentoo';
+ $distver = $version[0][0].$version[0][1];
+ $distid = 'gentoo';
+ $distbaseid = 'gentoo';
+ swriteln("Operating System: Gentoo $distver or compatible\n");
+
+ } else {
+ die('Unrecognized GNU/Linux distribution');
+ }
+
+ // Set $distconfid to distid, if no different id for the config is defined
+ if(!isset($distconfid)) $distconfid = $distid;
+
+ return array('name' => $distname, 'version' => $distver, 'id' => $distid, 'confid' => $distconfid, 'baseid' => $distbaseid);
}
// this function remains in the tools class, because it is used by cron AND rescue
--
Gitblit v1.9.1