Till Brehm
2016-07-24 b9a3ef486ebcde18a5ade37865ff8f397185d24f
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';
@@ -218,6 +200,13 @@
         $distid = 'debian60';
         $distbaseid = 'debian';
         swriteln("Operating System: Debian 8.0 (Jessie) or compatible\n");
      } elseif(strstr(trim(file_get_contents('/etc/debian_version')), '/sid')) {
         $distname = 'Debian';
         $distver = 'Testing';
         $distid = 'debian60';
         $distconfid = 'debiantesting';
         $distbaseid = 'debian';
         swriteln("Operating System: Debian Testing\n");
      } else {
         $distname = 'Debian';
         $distver = 'Unknown';
@@ -308,6 +297,7 @@
         $distname = 'CentOS';
         $distver = 'Unknown';
         $distid = 'centos72';
         $distconfid = 'centos72';
         $distbaseid = 'fedora';
         swriteln("Operating System: CentOS 7.2\n");
      } elseif(stristr($content, 'CentOS Linux release 7')) {
@@ -340,8 +330,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() {