@@ -291,96 +291,68 @@ function get_distname() {
291291 }
292292 }
293293
294-
295- //** Redhat
296- elseif (file_exists ('/etc/redhat-release ' )) {
297-
298- $ content = file_get_contents ('/etc/redhat-release ' );
299-
300- if (stristr ($ content , 'Fedora release 9 (Sulphur) ' )) {
301- $ distname = 'Fedora ' ;
302- $ distver = '9 ' ;
303- $ distid = 'fedora9 ' ;
304- $ distbaseid = 'fedora ' ;
305- swriteln ("Operating System: Fedora 9 or compatible \n" );
306- } elseif (stristr ($ content , 'Fedora release 10 (Cambridge) ' )) {
307- $ distname = 'Fedora ' ;
308- $ distver = '10 ' ;
309- $ distid = 'fedora9 ' ;
310- $ distbaseid = 'fedora ' ;
311- swriteln ("Operating System: Fedora 10 or compatible \n" );
312- } elseif (stristr ($ content , 'Fedora release 10 ' )) {
313- $ distname = 'Fedora ' ;
314- $ distver = '11 ' ;
315- $ distid = 'fedora9 ' ;
316- $ distbaseid = 'fedora ' ;
317- swriteln ("Operating System: Fedora 11 or compatible \n" );
318- } elseif (stristr ($ content , 'Fedora release 32 (Thirty Two) ' )) {
319- $ distname = 'Fedora ' ;
320- $ distver = '32 ' ;
321- $ distid = 'fedora32 ' ;
322- $ distbaseid = 'fedora ' ;
323- swriteln ("Operating System: Fedora 32 or compatible \n" );
324- } elseif (stristr ($ content , 'Fedora release 33 (Thirty Three) ' )) {
325- $ distname = 'Fedora ' ;
326- $ distver = '33 ' ;
327- $ distid = 'fedora33 ' ;
328- $ distbaseid = 'fedora ' ;
329- swriteln ("Operating System: Fedora 33 or compatible \n" );
330- } elseif (stristr ($ content , 'CentOS release 5.2 (Final) ' )) {
331- $ distname = 'CentOS ' ;
332- $ distver = '5.2 ' ;
333- $ distid = 'centos52 ' ;
334- $ distbaseid = 'fedora ' ;
335- swriteln ("Operating System: CentOS 5.2 or compatible \n" );
336- } elseif (stristr ($ content , 'CentOS release 5.3 (Final) ' )) {
337- $ distname = 'CentOS ' ;
338- $ distver = '5.3 ' ;
339- $ distid = 'centos53 ' ;
340- $ distbaseid = 'fedora ' ;
341- swriteln ("Operating System: CentOS 5.3 or compatible \n" );
342- } elseif (stristr ($ content , 'CentOS release 5 ' )) {
343- $ distname = 'CentOS ' ;
344- $ distver = 'Unknown ' ;
345- $ distid = 'centos53 ' ;
346- $ distbaseid = 'fedora ' ;
347- swriteln ("Operating System: CentOS 5 or compatible \n" );
348- } elseif (stristr ($ content , 'CentOS Linux release 6 ' ) || stristr ($ content , 'CentOS release 6 ' )) {
349- $ distname = 'CentOS ' ;
350- $ distver = 'Unknown ' ;
351- $ distid = 'centos53 ' ;
352- $ distbaseid = 'fedora ' ;
353- swriteln ("Operating System: CentOS 6 or compatible \n" );
354- } elseif (stristr ($ content , 'CentOS Linux release 7 ' )) {
355- $ distname = 'CentOS ' ;
356- $ distver = 'Unknown ' ;
357- $ distbaseid = 'fedora ' ;
358- $ var =explode (" " , $ content );
359- $ var =explode (". " , $ var [3 ]);
360- $ var =$ var [0 ].". " .$ var [1 ];
361- if ($ var =='7.0 ' || $ var =='7.1 ' ) {
362- $ distid = 'centos70 ' ;
363- } else {
364- $ distid = 'centos72 ' ;
365- }
366- swriteln ("Operating System: CentOS $ var \n" );
367- } elseif (stristr ($ content , 'CentOS Linux release 8 ' )) {
368- $ distname = 'CentOS ' ;
369- $ distver = 'Unknown ' ;
370- $ distbaseid = 'fedora ' ;
371- $ distid = 'centos80 ' ;
372- $ var =explode (" " , $ content );
373- $ var =explode (". " , $ var [3 ]);
374- $ var =$ var [0 ].". " .$ var [1 ];
375- swriteln ("Operating System: CentOS $ var \n" );
376- } else {
377- $ distname = 'Redhat ' ;
378- $ distver = 'Unknown ' ;
379- $ distid = 'fedora9 ' ;
380- $ distbaseid = 'fedora ' ;
381- swriteln ("Operating System: Redhat or compatible, unknown version. \n" );
294+ //** RHEL (including compatible clones) & Fedora
295+ elseif (file_exists ('/etc/redhat-release ' ) && file_exists ('/etc/os-release ' )) {
296+ $ content = file_get_contents ('/etc/os-release ' );
297+
298+ preg_match ('/(?<=NAME=\").+?(?=\")/ ' , $ content , $ name );
299+ preg_match ('/(?<=VERSION=\").+?(?=\")/ ' , $ content , $ version );
300+ preg_match ('/(?<=VERSION_ID=\").+?(?=\")/ ' , $ content , $ versionid );
301+
302+ if (stristr ($ prettyname [0 ], 'Fedora 32 (Thirty Two) ' )) {
303+ $ distname = 'Fedora ' ;
304+ $ distver = '32 ' ;
305+ $ distid = 'fedora32 ' ;
306+ $ distbaseid = 'fedora ' ;
307+ swriteln ("Operating System: Fedora 32 or compatible \n" );
308+ } elseif (stristr ($ prettyname [0 ], 'Fedora 33 (Thirty Three) ' )) {
309+ $ distname = 'Fedora ' ;
310+ $ distver = '33 ' ;
311+ $ distid = 'fedora33 ' ;
312+ $ distbaseid = 'fedora ' ;
313+ swriteln ("Operating System: Fedora 33 or compatible \n" );
314+ //** RHEL 7 and compatible clones
315+ } elseif (preg_match ('/^(?:7|7\.[0-9]{1,2})$/ ' , $ versionid [0 ])) {
316+ preg_match_all ('/([0-9]{1,2})\.?([0-9]{0,2})\.?([0-9]*)/ ' , file_get_contents ('/etc/redhat-release ' ), $ centos7_string );
317+ $ distname = $ name [0 ];
318+ $ distver = is_array ($ centos7_string )? implode ('. ' , array_filter (array ($ centos7_string [1 ][0 ],$ centos7_string [2 ][0 ],$ centos7_string [3 ][0 ]),'strlen ' )) : $ version [0 ];
319+ $ distid = 'centos72 ' ;
320+ $ distbaseid = 'fedora ' ;
321+ swriteln ("Operating System: RHEL 7 or compatible \n" );
322+ //** RHEL 8 and compatible clones
323+ } elseif (preg_match ('/^(?:8|8\.[0-9]{1,2})$/ ' , $ versionid [0 ])) {
324+ $ distname = $ name [0 ];
325+ $ distver = $ version [0 ];
326+ $ distid = 'centos80 ' ;
327+ $ distbaseid = 'fedora ' ;
328+ swriteln ("Operating System: RHEL 8 or compatible \n" );
329+ } else {
330+ $ distname = 'Redhat ' ;
331+ $ distver = 'Unknown ' ;
332+ $ distid = 'fedora9 ' ;
333+ $ distbaseid = 'fedora ' ;
334+ swriteln ("Operating System: Redhat or compatible \n" );
382335 }
383- }
336+ //** RHEL 6 and compatible clones
337+ } elseif (file_exists ('/etc/redhat-release ' ) && !file_exists ('/etc/os-release ' )) {
338+
339+ $ content = file_get_contents ('/etc/redhat-release ' );
340+
341+ if (stristr ($ content , 'CentOS Linux release 6 ' ) || stristr ($ content , 'CentOS release 6 ' )) {
342+ $ distname = 'CentOS ' ;
343+ $ distver = 'Unknown ' ;
344+ $ distid = 'centos53 ' ;
345+ $ distbaseid = 'fedora ' ;
346+ swriteln ("Operating System: CentOS/RHEL 6 or compatible \n" );
347+ } else {
348+ $ distname = 'Redhat ' ;
349+ $ distver = 'Unknown ' ;
350+ $ distid = 'fedora9 ' ;
351+ $ distbaseid = 'fedora ' ;
352+ swriteln ("Operating System: Redhat or compatible \n" );
353+ }
354+
355+ }
384356
385357 //** Gentoo
386358 elseif (file_exists ('/etc/gentoo-release ' )) {
0 commit comments