platform features to detect: ################################################################ # NOTE: everything from here down to "Definitions:" is in fact # # ignored by our scripts # ################################################################ MwPlatform: Solaris uname -s 2.6 uname -r 5.6 7 8 Irix uname -s IRIX64 Compaq AIX uname -s AIX 4.3.3 oslevel 4.3.3.0 Linux uname -s Linux uname -r 2.2.12-20 HP-UX uname -s HP-UX 11 uname -r B.11.00 10 uname -r B.10.20 Platform specific Solaris Display PGX if ls /dev/fbs | grep m64>/dev/null ; then echo PGX;fi GX if ls /dev/fbs | grep cgsix>/dev/null ; then echo GX;fi Creator if ls /dev/fbs | grep ffb>/dev/null ; then echo Creator;fi TCX if ls /dev/fbs | grep tcx>/dev/null; then echo TCX;fi Elite if ls /dev/fbs | grep afb>/dev/null; then echo TCX;fi OpenGL if pkginfo -q SUNWglrt; then echo Yes;fi OpenGLVersion pkginfo -l SUNWglrt | awk "/DESC/{ print \$4}" Remarks: If Group = not defined - component will be not analized ################################################################ Definitions: OS components: MWPlatform OSLevel KernelVersion MU4 MU6 ML2 Architecture MU Hardware components: M64Graphics CreatorGraphics GXGGraphics TCXGraphics EliteGraphics Expert3DGraphics OSFINCLUDE OSFSDE OSFPGMR Open3D driver_link lockmgr ACE CriticalPatches Software components: OpenGLVersion glibc binutils Telnetd Ftpd QualityPack XFree86-OpenGL Mesasoft-OpenGL ELF Lockd Locale Compiler components: CCompiler CPPCompiler JavaSDK ComponentFullName: Host=Host Name,MWPlatform=OS Name,OSLevel=OS Version,KernelVersion=OS Kernel Version,MU4=Maintenance Update 4,MU6=Maintenance Update 6,Platform=no,OpenGL=no,OpenGLVersion=OpenGL,CCompiler=C Compiler,CPPCompiler=C++ Compiler,glibc=glibc,binutils=binutils,JavaSDK=Java SDK,Telnetd=Telnet Server,Ftpd=FTP Server,XFree86-OpenGL=XFree86 OpenGL,Mesasoft-OpenGL=Mesasoft OpenGL,QualityPack=Quality Pack,CriticalPatches=Hardware Enablement and Critical Patches,ML2=Maintenance Level 2,MU=Maintenance Update,ELF=ELF Library,Lockd=NFS Lock Daemon,Locale=Locale MandatoryRequirements: CCompiler CPPCompiler OSLevel Linux_MandatoryRequirements: Telnetd Ftpd HP-UX_MandatoryRequirements: QualityPack Category_OS: OSLevel KernelVersion ML2 MU4 MU6 Architecture MU Category_OpenGL: OpenGL OpenGLVersion XFree86-OpenGL Mesasoft-OpenGL Category_Compiler: CCompiler CPPCompiler JavaSDK ExactRequirements: OSLevel OpenGL ML2 QualityPack Architecture End Definitions Ruleset: PlatformLevelIdentificationTable Strategy: ScanOnce Rule 0: Prereq: None Property: Host Group: not defined Command: uname -n Rule 1: first command to execute with the None prerequisite Prereq: None Property: Platform Group: not defined Command: uname -s Rule 2: Prereq: Platform/SunOS Property: MWPlatform Group: OS Command: echo Solaris Rule 3: Prereq: Platform/AIX Property: MWPlatform Group: OS Command: echo AIX Rule 4: Prereq: Platform/IRIX* Property: MWPlatform Group: OS Command: echo Irix Rule 5: Prereq: Platform/OSF1 Property: MWPlatform Group: OS Command: echo Tru64 Rule 6: Prereq: Platform/HP-UX Property: MWPlatform Group: OS Command: echo HP-UX Rule 7: Prereq: Platform/Linux Property: MWPlatform Group: OS Command: echo Linux Rule 8: Prereq: MWPlatform/Solaris Property: OpenGL Group: not defined Command: if [ -x /bin/pkginfo ]; then if pkginfo -q SUNWglrt; then echo Yes;fi;fi Rule 9: Prereq: OpenGL/Yes Property: OpenGLVersion Group: Software Command: pkginfo -l "SUNWglrt" 2> /dev/null Rule 10: Prereq: MWPlatform/Solaris Property: M64Graphics Group: Hardware Command: if ls /dev/fbs 2>&1 | grep m64>/dev/null ; then echo Yes;fi Rule 11: Prereq: MWPlatform/Solaris Property: CreatorGraphics Group: Hardware Command: if ls /dev/fbs 2>&1 | grep ffb>/dev/null ; then echo Yes;fi Rule 12: Prereq: MWPlatform/Solaris Property: GXGGraphics Group: Hardware Command: if ls /dev/fbs 2>&1 | grep cgsix>/dev/null ; then echo Yes;fi Rule 13: Prereq: MWPlatform/Solaris Property: TCXGraphics Group: Hardware Command: if ls /dev/fbs 2>&1 | grep tcx>/dev/null; then echo Yes;fi Rule 14: Prereq: MWPlatform/Solaris Property: EliteGraphics Group: Hardware Command: if ls /dev/fbs 2>&1 | grep afb>/dev/null; then echo Yes;fi Rule 1401: Prereq: MWPlatform/Solaris Property: Expert3DGraphics Group: Hardware Command: if ls /dev/fbs 2>&1 | grep ifb>/dev/null; then echo Yes;fi Rule 15: Prereq: MWPlatform/Solaris Property: OSLevel Group: OS Command: case `uname -r` in 5.5.1) echo 2.5.1;; 5.6) echo 2.6;; 5.7) echo 7;; 5.8) echo 8;; 5.9) echo 9;; 5.10) echo 10;; *) uname -r;;esac Rule 16: Prereq: MWPlatform/HP-UX Property: OSLevel Group: OS Command: uname -r | sed 's/^B.//' Rule 17: Prereq: MWPlatform/AIX Property: OSLevel Group: OS Command: ver="`uname -v`.`uname -r`"; if [ "$ver" = "4.3" ]; then oslevel -l 4.3.3.0 2>/dev/null | egrep -q -v '^4\.3\.3\.0$|^IMNSearch\.rte\.' && oslevel | sed 's:\.[0-9]$::' || echo 4.3.3; else oslevel -l 5.1.0.0 2>/dev/null | egrep -q -v '^5\.1\.1\.0$|^xlsmp\.(rte|msg)' && oslevel | sed 's:\.[0-9]\.[0-9]$::' || echo 5.1; fi Rule 18: Prereq: MWPlatform/Tru64 Property: OSLevel Group: OS Command: /usr/sbin/sizer -v|awk '{print $3}'|sed 's/V//' Rule 19: Prereq: MWPlatform/Irix Property: OSLevel Group: OS Command: if uname -R 2>/dev/null >/dev/null; then uname -R | sed 's/^.* \([0-9].*\).$/\1/'; else uname -r;fi Rule 19.5: Prereq: MWPlatform/Linux Property: OSLevel Group: OS Command: if grep -qi SuSE /etc/issue; then grep -i SuSE /etc/issue | sed -e 's/^.*S[uU]SE/SuSE/' -e 's/LINUX Enterprise Server/SLES/' -e 's/ *(.*$//' | tr " " "-" ; else grep '^Red Hat' /etc/issue | sed -e 's/ *release */ /' -e 's/ *(.*) *//' -e 's/ Linux / Linux - /' | tr " " "\012" | sed '1,/^-/s/^\(.\).*$/\1/' | tr "\012" "@" | sed 's/@//g' ; fi Rule 20: returns 700 or 800 Prereq: MWPlatform/HP-UX Property: Hardware Group: Hardware Command: uname -m |sed 's,^9000/\([0-9]\)..$,\100,' Rule 20.5: Prereq: MWPlatform/HP-UX Property: Architecture Group: OSLevel Command: uname -m Rule 21: Prereq: MWPlatform/Linux Property: glibc Group: Software Command: ver=`rpm -q glibc|sed -e 's/glibc-//' -e 's/-/./'`;echo "Software/glibc::$ver" Rule 211: Prereq: MWPlatform/Linux Property: ELF Group: Software Command: if rpm -qa | egrep -q '(libelf|elfutils)'; then ver=Yes; else ver=No; fi; echo "Software/ELF::$ver" Rule 22: Prereq: MWPlatform/Solaris Property: CCompiler Group: Software Command: pkginfo -l "SPROcc*" 2> /dev/null Rule 23: Prereq: MWPlatform/Solaris Property: CPPCompiler Group: Software Command: pkginfo -l "SPROcpl*" 2> /dev/null Rule 24: Prereq: MWPlatform/HP-UX && ! Architecture/ia64 Property: CCompiler Group: Software Command: for prod in `swlist -l product | grep -i "c compiler" | grep -v PH|awk '{print $1}'`;do comp=`swlist -l file $prod | grep "/bin/c89"|awk '{print $2}'`;if [ "$comp" = "" ];then comp=`swlist -l file $prod | grep "/bin/cc" |awk '{print $2}'`;fi; if [ "$comp" != "" ];then for compiler in $comp;do ver=`what $compiler 2>/dev/null | awk 'NR==3 {print $2}'`;list="$list Software/CCompiler:$comp:$ver";done;fi;done;echo $list Rule 24.5: Prereq: MWPlatform/HP-UX && Architecture/ia64 Property: CCompiler Group: Software Command: for prod in `swlist -l product | grep -i "c compiler" | grep -v PH|awk '{print $1}'`;do comp=`swlist -l file $prod | grep "/bin/cc"|awk '{print $2}'`;if [ "$comp" = "" ];then comp=`swlist -l file $prod | grep "/bin/c89" |awk '{print $2}'`;fi; if [ "$comp" != "" ];then for compiler in $comp;do ver=`what $compiler 2>/dev/null | sed 's/\[.*$//' | awk '/\/C / {print $NF;exit}'`;list="$list Software/CCompiler:$compiler:$ver";done;fi;done;echo $list Rule 25: Prereq: MWPlatform/HP-UX Property: CPPCompiler Group: Software Command: for prod in `swlist -l product | grep C++ | grep -v PH|awk '{print $1}'`;do comp=`swlist -l file $prod | grep /bin/aCC | awk '{print $2}'`;if [ "$comp" = "" ];then comp=`swlist -l file $prod | grep /bin/CC |awk '{print $2}'`;fi;if [ "$comp" != "" ];then for compiler in $comp;do ver=`$compiler -V 2>&1 | sed 's/\[.*$//' | awk '{print $NF;exit}'`;list="$list Software/CPPCompiler:$comp:$ver";done;fi;done; echo $list Rule 26: Prereq: MWPlatform/AIX Property: CCompiler Group: Software Command: for prod in vac.C ibmcxx.cmp ;do ver=`lslpp -Lqc $prod 2>/dev/null | awk -F: '{print $3}'`; if [ -z "$ver" ] ;then continue ;fi; dir=`lslpp -f $prod 2>/dev/null | grep bin/xlc | head -1 | sed 's:[^/]*\(/[^ ]*\)/bin/[^ /]*.*:\1:'`; list="$list Software/CCompiler:$dir:$ver" ;done; echo $list Rule 27: Prereq: MWPlatform/AIX Property: CPPCompiler Group: Software Command: prod=vacpp.cmp.lib; ver=`lslpp -Lqc $prod 2>/dev/null | awk -F: '{print $3}'`; prod=vacpp.cmp.batch ; dir=`lslpp -f $prod 2>/dev/null | grep bin/xlC | head -1 | sed 's:[^/]*\(/[^ ]*\)/bin/[^ /]*.*:\1:'`; list="Software/CPPCompiler:$dir:$ver" ; echo $list Rule 28: Prereq: MWPlatform/Irix Property: CCompiler Group: Software Command: showprods | grep c_dev | awk 'NR==1 {print $NF}' Rule 30: Prereq: MWPlatform/Irix Property: CPPCompiler Group: Software Command: showprods | grep c++_dev | awk 'NR==1 {print $NF}' Rule 31: Prereq: MWPlatform/Tru64 Property: CCompiler Group: Software Command: cc -V | awk 'NR==1 {print $3}' | sed 's/^.//' Rule 32: Prereq: MWPlatform/Tru64 Property: CPPCompiler Group: Software Command: ccx -V | awk 'NR==1 {print $3}' | sed 's/^.//' Rule 33: Prereq: MWPlatform/Linux Property: CCompiler Group: Software Command: dir=`dirname $MWCC`;ver=`$MWCC -v 2>&1 | tail -1 | sed -e 's/^[^0-9]*//' -e 's/ /-/g' -e 's/[()]//g'`;echo "Software/CCompiler:$dir:$ver" Rule 34: Prereq: MWPlatform/Linux Property: CPPCompiler Group: Software Command: dir=`dirname $MWCCPP`;ver=`$MWCCPP -v 2>&1 | tail -1 | sed -e 's/^[^0-9]*//' -e 's/ /-/g' -e 's/[()]//g'`;echo "Software/CPPCompiler:$dir:$ver" Rule 35: Prereq: MWPlatform/Tru64 Property: OSFINCLUDE Group: Hardware Command: export check=`/usr/sbin/setld -i |grep "OSFINCLUDE[0-9][0-9][0-9]" | grep installed`;if [ "$check" ];then echo Yes;fi Rule 36: Prereq: MWPlatform/Tru64 Property: OSFSDE Group: Hardware Command: export check=`/usr/sbin/setld -i |grep "OSFSDE[0-9][0-9][0-9]" | grep installed`;if [ "$check" ];then echo Yes;fi Rule 37: Prereq: MWPlatform/Tru64 Property: OSFPGMR Group: Hardware Command: export check=`/usr/sbin/setld -i |grep "OSFPGMR[0-9][0-9][0-9]" | grep installed`;if [ "$check" ];then echo Yes;fi Rule 38: Prereq: MWPlatform/Tru64 Property: Open3D Group: Hardware Command: /usr/sbin/setld -i |grep Open3D | awk '{ if ($3 == "Open3D") print $1}' | sort +0n -u Rule 39: Prereq: MWPlatform/Solaris Property: KernelVersion Group: OS Command: showrev -a | grep "Kernel version" | awk '{ if (NF == 8) print $6}' Rule 40: Prereq: MWPlatform/Tru64 Property: driver_link Group: Hardware Command: cd /usr/lib/cmplrs/cc.dtk;if [ ! -f driver ];then echo "";exit;fi;if [ ! -f driver.compat ]; then echo "";exit;fi;export check=`sum driver driver.compat|sort -u +0n|grep compat`;if [ "$check" ]; then echo "" ;else echo "driver.compat";fi Rule 41: Prereq: MWPlatform/Tru64 Property: lockmgr Group: Hardware Command: export nlock=`/usr/sbin/rpcinfo -p | grep nlockmgr | sort -u +4`; export llock=`/usr/sbin/rpcinfo -p |grep llockmgr| sort -u +4`; if [ "$nlock" ];then if [ "$llock" ];then echo "Yes";fi;fi Rule 42: Prereq: MWPlatform/Tru64 Property: libcxx.so Group: Hardware Command: sum /usr/lib/cmplrs/cxx/libcxx.so |awk '{print $1"-"$2}' Rule 43: Prereq: MWPlatform/HP-UX && OSLevel/10.20 Property: ACE Group: Hardware Command: /usr/sbin/swlist |grep ACE |grep Workstation| awk '{print $8 $9}'| sed 's/(//'|sed 's/)//' Rule 44: Prereq: MWPlatform/Linux Property: binutils Group: Software Command: ver=`ld -v | awk '/ld *version/ { print $4 }'`;echo "Software/binutils::$ver" Rule 47: Prereq: MWPlatform/Solaris && OSLevel/7 Property: MU4 Group: OS Command: a=`egrep "s998s_u4|Maintenance Update 4 applied" /etc/release`;if [ "$a" = "" ];then echo "No";else echo "Yes";fi Rule 471: Prereq: MWPlatform/Solaris && OSLevel/8 Property: MU Group: OS Command: a=`egrep "Maintenance Update" /etc/release`;if [ "$a" != "" ];then update=`echo $a | awk '{print $5}'`;else update=`cat /etc/release | head -1 | awk '{print $4}' | awk -F_ '{print $2}'| sed 's/^u//' | sed 's/wos$//'`;fi;echo $update Rule 48: Prereq: MWPlatform/Solaris Property: JavaSDK Group: Software Command: files="";prods=`pkginfo -i | egrep 'dev.*J(ava|DK|2SDK)' | awk '{print $2}'`; for prod in $prods ;do files="$files `/usr/sbin/pkgchk -av $prod 2>&1 | grep '/bin/javah$' | grep -v /usr/bin/javah`";done;files=`ls -i $files /usr/j*/bin/javah /opt/j*/bin/javah | sort -nu | awk '{print $2}'`;for f in $files ;do ver=`$f -version 2>&1 | sed -n 's:[^1]*\(1\.[0-9]*.*\)\":\1:p'`;dir=`echo $f | sed 's:/bin/javah::'`;if [ "$ver" != "" ] ;then list="$list Software/JavaSDK:$dir:$ver";fi;done;echo "$list" Rule 49: Prereq: MWPlatform/AIX Property: JavaSDK Group: Software Command: files="";prods=`lslpp -L | egrep ' [Jj]ava.*(bin|sdk) ' | grep -v '_64\.' | awk '{print $1}'`;for prod in $prods ;do files="$files `lslpp -f $prod | awk '{print $NF}' | grep 'bin/javah$'`";done;for f in $files ;do ver=`$f -version 2>&1 | sed -n 's:[^1]*\(1\.[0-9]*.*\)".*:\1:p'`; dir=`echo $f | sed 's:/bin/javah::'`; if [ "$ver" ] ;then list="$list Software/JavaSDK:$dir:$ver";fi;done;echo "$list" Rule 50: Prereq: MWPlatform/HP-UX Property: JavaSDK Group: Software Command: files="";prods=`swlist -l product | grep Java | grep -v PH | awk '{print $1}'`; for prod in $prods ;do files="$files `swlist -l file $prod | grep '/bin/javah[^a-z_-]' | awk '{print $NF}'`";done; for f in $files ;do ver=`$f -version 2>&1 | sed -n 's:[^1]*\(1\.[0-9]*.*\)".*:\1:p'`; dir=`echo $f | sed 's:/bin/javah::'`;if [ "$ver" ] ;then list="$list Software/JavaSDK:$dir:$ver";fi;done;echo "$list" Rule 51: Prereq: MWPlatform/Linux Property: JavaSDK Group: Software Command: if [ -x /usr/bin/locate ]; then files=`/usr/bin/locate /bin/javah | grep '/bin/javah$'`; else files=`find /usr -mount -name javah -path '*/bin/javah' | grep '/bin/javah$'`; fi; for f in $files ;do ver=`$f -version 2>&1 | sed -n 's:[^1]*\(1\.[0-9]*.*\)".*:\1:p'`;dir=`echo $f | sed 's:/bin/javah::'`; if [ "$ver" ] ;then list="$list Software/JavaSDK:$dir:$ver";fi;done; echo "$list" Rule 52: Prereq: MWPlatform/Linux Property: Telnetd Group: Software Command: rpm -q telnet-server >/dev/null 2>&1 && echo "Software/Telnetd::Yes" || echo "Software/Telnetd::No" Rule 53: Prereq: MWPlatform/Linux Property: Ftpd Group: Software Command: test=`/bin/netstat -a | grep ftp | wc -l` ;if [ $test = 1 ];then echo "Software/Ftpd::Yes"; else echo "Software/Ftpd::No";fi Rule 54: Prereq: MWPlatform/HP-UX Property: KernelVersion Group: OS Command: ver=`getconf KERNEL_BITS 2>/dev/null` && echo ${ver}_bit Rule 55: Prereq: MWPlatform/HP-UX && OSLevel/11.00 Property: QualityPack Group: Software Command: ver=`swlist -l bundle QPK1100 2>&1 | /sbin/awk '$1=="QPK1100" {print $(NF-1) "_" $NF}' | tail -1`; if [ "$ver" ] ;then echo "Software/QualityPack::$ver" ;fi Rule 551: Prereq: MWPlatform/HP-UX && OSLevel/11.11 Property: QualityPack Group: Software Command: ver=`swlist -l bundle GOLDBASE11i 2>&1 | /sbin/awk '/^ *GOLD/ {print $(NF-1) "_" $NF}' | tail -1`; if [ "$ver" ] ;then echo "Software/QualityPack::$ver";else echo "Software/QualityPack::None";fi Rule 56: Prereq: MWPlatform/Linux Property: XFree86-OpenGL Group: Software Command: ver=`/bin/rpm -q -f /usr/lib/libGL.so.1 | sed 's/[.a-zA-Z]*$//' | sed 's/-\([-.0-9]*\)$/|\1/' | sed 's/^.*|//'`;if [ "$ver" ];then echo "Software/XFree86-OpenGL::$ver";fi Rule 561: Prereq: MWPlatform/Linux Property: Mesasoft-OpenGL Group: Software Command: ogl_file=`ls -l /usr/lib/libGL.so.1 | awk '{print "/usr/lib/" $NF}'`; ver=`/bin/rpm -q -f $ogl_file | sed 's/[.a-zA-Z]*$//' | sed 's/-\([-.0-9]*\)$/|\1/' | sed 's/^.*|//'`;if [ "$ver" ];then echo "Software/Mesasoft-OpenGL::$ver";fi Rule 58: Prereq: MWPlatform/HP-UX && ! Architecture/ia64 Property: OpenGLVersion Group: Software Command: ver=`swlist -l product | grep OpenGL |grep OpenGLDevKit|awk '{print $2}'`; if [ "$ver" ];then echo "Software/OpenGLVersion::$ver";fi Rule 581: Prereq: MWPlatform/HP-UX && Architecture/ia64 Property: OpenGLVersion Group: Software Command: ver=`swlist -l product | egrep 'Graphics3D|OpenGL' | sort -r -k 2,2 | head -1 | awk '{print $2}'`; if [ "$ver" ];then echo "Software/OpenGLVersion::$ver";fi Rule 60: Prereq: MWPlatform/HP-UX Property: CriticalPatches Group: Hardware Command: ver=`swlist -l bundle XSWHWCR1100 2>&1 | /sbin/awk '$1=="XSWHWCR1100" {print $2}' | tail -1`; if [ "$ver" ] ;then echo "$ver";fi Rule 61: Prereq: MWPlatform/AIX Property: OpenGLVersion Group: Software Command: ver=`lslpp -Lqc OpenGL.OpenGL_X.adt.include | awk -F: '{print $3}' | sed 's/\.[^.]*$//'`;if [ "$ver" ] ;then basedir=`lslpp -f OpenGL.OpenGL_X.adt.include|grep /include/gl.h|sed 's:/include/gl.h::;s: *::g'`; if [ "$base" = "4.3.3" -o "$base" = "5.1.0" ];then echo "Software/OpenGLVersion:$basedir:1.2.1";else echo "Software/OpenGLVersion:$basedir:$ver";fi;fi .OpenGL_X.adt.include|grep /include/gl.h|sed 's:/include/gl.h::;s: *::g'`; if [ "$base" = "4.3.3" ];then echo "Software/OpenGLVersion:$basedir: 1.2.1";else echo "Software/OpenGLVersion:$basedir:$ver";fi;fi Rule 62: Prereq: MWPlatform/AIX Property: ML2 Group: OSLevel Command: for patch in 'bos.[mu]p' bos.rte.libc bos.rte.libpthreads bos.net.nfs.client; do ver=`lslpp -L $patch |awk '/bos/ {print $2; exit}'|sed 's/\.//g'`;if [ $ver -lt 51025 ];then ml="no";break;fi;done;if [ "$ml" = "no" ];then echo "no";else echo "yes";fi Rule 63: Prereq: MWPlatform/Linux Property: Lockd Group: Software Command: if ps -aux | grep lockd | grep -q -v grep ; then echo "Software/Lockd::Yes"; else echo "Software/Lockd::No"; fi Rule 64: Prereq: MWPlatform/Linux Property: Locale Group: Software Command: loc=`if [ "x$LANG" = "x" ]; then echo $LC_ALL; else echo $LANG; fi`;loc_utf=`if echo $loc | grep -q -i utf; then echo UTF_Locale; else echo Non_UTF_Locale; fi`;echo "Software/Locale:$loc:$loc_utf" EndRuleset