#%define BuildRoot /tmp/%{name}-%{version} %define __spec_install_post %{nil} Summary: A web-based administration interface for Unix systems. Name: webmin Version: 1.350 Release: 1 Provides: %{name}-%{version} PreReq: /bin/sh /usr/bin/perl /bin/rm Requires: /bin/sh /usr/bin/perl /bin/rm AutoReq: 0 Copyright: Freeware Group: System/Tools Source: http://www.webmin.com/download/%{name}-%{version}.tar.gz Vendor: Jamie Cameron BuildRoot: /tmp/%{name}-%{version} BuildArchitectures: noarch %description A web-based administration interface for Unix systems. Using Webmin you can configure DNS, Samba, NFS, local/remote filesystems and more using your web browser. After installation, enter the URL http://localhost:10000/ into your browser and login as root with your root password. %prep %setup -q %build (find . -name '*.cgi' ; find . -name '*.pl') | perl perlpath.pl /usr/bin/perl - rm -f mount/freebsd-mounts* rm -f mount/openbsd-mounts* rm -f mount/macos-mounts* rm -f webmin-gentoo-init rm -rf format bsdexports hpuxexports sgiexports zones rbac chmod -R og-w . %install mkdir -p %{buildroot}/usr/libexec/webmin mkdir -p %{buildroot}/etc/sysconfig/daemons mkdir -p %{buildroot}/etc/rc.d/{rc0.d,rc1.d,rc2.d,rc3.d,rc5.d,rc6.d} mkdir -p %{buildroot}/etc/init.d mkdir -p %{buildroot}/etc/pam.d cp -rp * %{buildroot}/usr/libexec/webmin cp webmin-daemon %{buildroot}/etc/sysconfig/daemons/webmin cp webmin-init %{buildroot}/etc/init.d/webmin cp webmin-pam %{buildroot}/etc/pam.d/webmin ln -s /etc/init.d/webmin %{buildroot}/etc/rc.d/rc2.d/S99webmin ln -s /etc/init.d/webmin %{buildroot}/etc/rc.d/rc3.d/S99webmin ln -s /etc/init.d/webmin %{buildroot}/etc/rc.d/rc5.d/S99webmin ln -s /etc/init.d/webmin %{buildroot}/etc/rc.d/rc0.d/K10webmin ln -s /etc/init.d/webmin %{buildroot}/etc/rc.d/rc1.d/K10webmin ln -s /etc/init.d/webmin %{buildroot}/etc/rc.d/rc6.d/K10webmin echo rpm >%{buildroot}/usr/libexec/webmin/install-type %clean #%{rmDESTDIR} [ "%{buildroot}" != "/" ] && rm -rf %{buildroot} %files %defattr(-,root,root) /usr/libexec/webmin %config /etc/sysconfig/daemons/webmin /etc/init.d/webmin /etc/rc.d/rc2.d/S99webmin /etc/rc.d/rc3.d/S99webmin /etc/rc.d/rc5.d/S99webmin /etc/rc.d/rc0.d/K10webmin /etc/rc.d/rc1.d/K10webmin /etc/rc.d/rc6.d/K10webmin %config /etc/pam.d/webmin %pre perl </$$.check </dev/null\` =~ /White\\s+Box\\s+Enterprise\\s+Linux\\s+release\\s+(\\S+)/i) { print "oscheck='Whitebox Linux'\\n"; } elsif (\`cat /etc/redhat-release 2>/dev/null\` =~ /Tao\\s+Linux\\s+release\\s+(\\S+)/i) { print "oscheck='Tao Linux'\\n"; } elsif (\`cat /etc/centos-release /etc/redhat-release 2>/dev/null\` =~ /CentOS\\s+release\\s+(\\S+)/i && \$1 < 4) { print "oscheck='CentOS Linux'\\n"; } elsif (\`cat /etc/centos-release /etc/redhat-release 2>/dev/null\` =~ /CentOS\\s+release\\s+(\\S+)/i && \$1 >= 4) { print "oscheck='CentOS Linux'\\n"; } elsif (\`cat /etc/redhat-release 2>/dev/null\` =~ /Scientific\\s+Linux.*\\s+release\\s+(\\S+)/i && \$1 < 4) { print "oscheck='Scientific Linux'\\n"; } elsif (\`cat /etc/redhat-release 2>/dev/null\` =~ /Scientific\\s+Linux.*\\s+release\\s+(\\S+)/i && \$1 >= 4) { print "oscheck='Scientific Linux'\\n"; } elsif (\`cat /etc/redhtat-release 2>/dev/null\` =~ /Gralinux\\s+(ES|AS|WS)\\s+release\\s+(\\d+)/i) { print "oscheck='Gralinux'\\n"; } elsif (\`cat /etc/neoshine-release 2>/dev/null\` =~ /NeoShine\\s+Linux.*release\\s+(\\d+)/i) { print "oscheck='NeoShine Linux'\\n"; } elsif (\`cat /etc/redhat-release 2>/dev/null\` =~ /(Advanced\\s+Server.*2\\.1)|(AS.*2\\.1)/i) { print "oscheck='Redhat Enterprise Linux'\\n"; } elsif (\`cat /etc/redhat-release 2>/dev/null\` =~ /ES.*2\\.1/) { print "oscheck='Redhat Enterprise Linux'\\n"; } elsif (\`cat /etc/redhat-release 2>/dev/null\` =~ /WS.*2\\.1/) { print "oscheck='Redhat Enterprise Linux'\\n"; } elsif (\`cat /etc/redhat-release 2>/dev/null\` =~ /(3\\.0AS)|(2\\.9\\.5AS)|(AS\\s+release\\s+3)/i) { print "oscheck='Redhat Enterprise Linux'\\n"; } elsif (\`cat /etc/redhat-release 2>/dev/null\` =~ /(ES|AS|WS)\\s+release\\s+(\\S+)/) { print "oscheck='Redhat Enterprise Linux'\\n"; } elsif (\`cat /etc/redhat-release 2>/dev/null\` =~ /Red.*Hat\\s+Enterprise\\s+Linux\\s+Server\\s+release\\s+(\\d+)/) { print "oscheck='Redhat Enterprise Linux'\\n"; } elsif (\`cat /etc/redhat-release 2>/dev/null\` =~ /Desktop\\s+release\\s+(\\S+)/i || \`cat /etc/redhat-release 2>/dev/null\` =~ /ES\\s+release\\s+(\\S+)/i) { print "oscheck='Redhat Linux Desktop'\\n"; } elsif (\`cat /etc/alphacore-release 2>/dev/null\` =~ /Alpha\\s*Core\\s+release\\s+(\\S+)\\s/i) { print "oscheck='AlphaCore Linux'\\n"; } elsif (\`cat /etc/redhat-release /etc/fedora-release 2>/dev/null\` =~ /X\\/OS.*release\\s(\\S+)\\s/i) { print "oscheck='X/OS Linux'\\n"; } elsif (\`cat /etc/release /etc/asianux-release 2>/dev/null\` =~ /Asianux\\s+release\\s+(\\S+)/i) { print "oscheck='Asianux'\\n"; } elsif (\`cat /etc/Haansoft-release 2>/dev/null\` =~ /Haansoft\\s+Linux\\s+OS\\s+release\\s+(\\S+)/i) { print "oscheck='Haansoft Linux'\\n"; } elsif (\`cat /etc/caos-release 2>/dev/null\` =~ /release\\s+(\\S+)/i) { print "oscheck='cAos Linux'\\n"; } elsif (\`cat /etc/redhat-release 2>/dev/null\` =~ /red.*hat.*release\\s+(\\S+)/i && \`cat /etc/redhat-release 2>/dev/null\` !~ /[eE]nterprise|AS|ES|WS|[aA]dvanced/) { print "oscheck='Redhat Linux'\\n"; } elsif (\`cat /etc/redhat-release /etc/fedora-release 2>/dev/null\` =~ /Fedora.*\\s([0-9\\.]+)\\s/i || \`cat /etc/redhat-release /etc/fedora-release 2>/dev/null\` =~ /Fedora.*\\sFC(\\S+)\\s/i) { print "oscheck='Redhat Linux'\\n"; } elsif (\`cat /tmp/wd/version 2>/dev/null\` =~ /2\\.1\\.0/) { print "oscheck='White Dwarf Linux'\\n"; } elsif (\`cat /etc/slamd64-version 2>/dev/null\` =~ /([0-9\\.]+)/) { print "oscheck='Slamd64 Linux'\\n"; } elsif (\`cat /etc/slackware-version 2>/dev/null\` =~ /([0-9\\.]+)/) { print "oscheck='Slackware Linux'\\n"; } elsif (\$etc_issue =~ /Xandros.*\\s2\\.0/i) { print "oscheck='Xandros Linux'\\n"; } elsif (\$etc_issue =~ /Xandros.*\\s3\\.0/i) { print "oscheck='Xandros Linux'\\n"; } elsif (\$etc_issue =~ /Xandros.*\\s(4\\.\\d+)/i) { print "oscheck='Xandros Linux'\\n"; } elsif (\$etc_issue =~ /APLINUX.*1\\.3/i) { print "oscheck='APLINUX'\\n"; } elsif (\`cat /etc/bigblock-revision 2>/dev/null\` =~ /Version:\\s(1[0-9\\.-]+)\\s/i) { print "oscheck='BigBlock'\\n"; } elsif (\`cat /etc/bigblock-revision 2>/dev/null\` =~ /Version:\\s(2[0-9\\.-]+)\\s/i) { print "oscheck='BigBlock'\\n"; } elsif (\$etc_issue =~ /Ubuntu.*\\s([0-9\\.]+)\\s/i) { print "oscheck='Ubuntu Linux'\\n"; } elsif (\$etc_issue =~ /Debian.*\\s([0-9\\.]+)\\s/i || \`cat /etc/debian_version 2>/dev/null\` =~ /([0-9\\.]+)/) { print "oscheck='Debian Linux'\\n"; } elsif (\$etc_issue =~ /Debian.*\\stesting\\/unstable\\s/i) { print "oscheck='Debian Linux'\\n"; } elsif (\$etc_issue =~ /Debian.*lenny\\/sid\\s/i) { print "oscheck='Debian Linux'\\n"; } elsif (\`cat /etc/SLOX-release 2>/dev/null\` =~ /VERSION\\s+=\\s+(\\S+)/i) { print "oscheck='SuSE OpenExchange Linux'\\n"; } elsif (\$etc_issue =~ /SuSE\\s+SLES-(\\S+)/i) { print "oscheck='SuSE SLES Linux'\\n"; } elsif (\`cat /etc/SuSE-release 2>/dev/null\` =~ /([0-9\\.]+)/ || \$etc_issue =~ /SuSE\\s+Linux\\s+(\\S+)\\s/i) { print "oscheck='SuSE Linux'\\n"; } elsif (\`cat /etc/UnitedLinux-release 2>/dev/null\` =~ /([0-9\\.]+)/) { print "oscheck='United Linux'\\n"; } elsif (\$etc_issue =~ /Corel\\s+LINUX\\s+(\\S+)/i) { print "oscheck='Corel Linux'\\n"; } elsif (\`cat /etc/turbolinux-release 2>/dev/null\` =~ /([0-9\\.]+)/i) { print "oscheck='TurboLinux'\\n"; } elsif (\$etc_issue =~ /Cobalt\\s+Linux\\s+release\\s+(\\S+)/i || \`cat /etc/cobalt-release 2>/dev/null\` =~ /([0-9\\.]+)/) { print "oscheck='Cobalt Linux'\\n"; } elsif (\`uname -r\` =~ /2.2.16/ && -r "/etc/cobalt-release") { print "oscheck='Cobalt Linux'\\n"; } elsif (\$etc_issue =~ /Mandrake\\s+Corporate\\s+Server\\s+release\\s+1\\.0/i) { print "oscheck='Mandrake Linux Corporate Server'\\n"; } elsif (\`cat /etc/mandrake-release 2>/dev/null\` =~ /pclinuxos\\s+Linux\\s+release\\s+2005/i) { print "oscheck='pclinuxos Linux'\\n"; } elsif (\`cat /etc/mandrake-release 2>/dev/null\` =~ /pclinuxos\\s+Linux\\s+release\\s+2006/i) { print "oscheck='pclinuxos Linux'\\n"; } elsif (\`cat /etc/mandrake-release 2>/dev/null\` =~ /PCLinuxOS\\s+release\\s+2007/i) { print "oscheck='pclinuxos Linux'\\n"; } elsif (\$etc_issue =~ /Mandrake\\s+release\\s+5\\.3/i) { print "oscheck='Mandrake Linux'\\n"; } elsif (\$etc_issue =~ /Mandrake\\s+release\\s+6\\.0/i) { print "oscheck='Mandrake Linux'\\n"; } elsif (\$etc_issue =~ /Mandrake\\s+release\\s+6\\.1/i) { print "oscheck='Mandrake Linux'\\n"; } elsif (\$etc_issue =~ /Mandrake\\s+release\\s+7\\.0/i) { print "oscheck='Mandrake Linux'\\n"; } elsif (\$etc_issue =~ /Mandrake\\s+release\\s+7\\.1/i) { print "oscheck='Mandrake Linux'\\n"; } elsif (\`cat /etc/mandrake-release 2>/dev/null\` =~ /Mandrake.*?([0-9\\.]+)/i || \$etc_issue =~ /Mandrake\\s+release\\s+([0-9\\.]+)/i || \$etc_issue =~ /Mandrakelinux\\s+release\\s+([0-9\\.]+)/i) { print "oscheck='Mandrake Linux'\\n"; } elsif (\$etc_issue =~ /(Mandrakelinux|Mandriva).*(2006\\.\\d+)/i || \`cat /etc/mandrake-release 2>/dev/null\` =~ /(Mandrakelinux|Mandriva).*(2007\\.\\d+)/i) { print "oscheck='Mandriva Linux'\\n"; } elsif (\$etc_issue =~ /(Mandrakelinux|Mandriva).*(2007\\.\\d+)/i || \`cat /etc/mandrake-release 2>/dev/null\` =~ /(Mandrakelinux|Mandriva).*(2007\\.\\d+)/i) { print "oscheck='Mandriva Linux'\\n"; } elsif (\$etc_issue =~ /Conectiva.*Linux.*3\\.0/i) { print "oscheck='Conectiva Linux'\\n"; } elsif (\$etc_issue =~ /Conectiva.*Linux.*4\\.0/i) { print "oscheck='Conectiva Linux'\\n"; } elsif (\$etc_issue =~ /Conectiva.*Linux.*4\\.1/i) { print "oscheck='Conectiva Linux'\\n"; } elsif (\$etc_issue =~ /Conectiva.*Linux.*4\\.2/i) { print "oscheck='Conectiva Linux'\\n"; } elsif (\$etc_issue =~ /Conectiva.*Linux.*5\\.0/i) { print "oscheck='Conectiva Linux'\\n"; } elsif (\$etc_issue =~ /Conectiva.*Linux.*5\\.1/i) { print "oscheck='Conectiva Linux'\\n"; } elsif (\$etc_issue =~ /Conectiva.*Linux.*6\\.0/i) { print "oscheck='Conectiva Linux'\\n"; } elsif (\$etc_issue =~ /Conectiva.*Linux.*7\\.0/i) { print "oscheck='Conectiva Linux'\\n"; } elsif (\$etc_issue =~ /Conectiva.*Linux.*\\s8/i) { print "oscheck='Conectiva Linux'\\n"; } elsif (\$etc_issue =~ /Conectiva.*Linux.*\\s9/i) { print "oscheck='Conectiva Linux'\\n"; } elsif (\$etc_issue =~ /Conectiva.*Linux.*\\s10\\s/i) { print "oscheck='Conectiva Linux'\\n"; } elsif (\$etc_issue =~ /Thiz.*Linux.*\\s5\\.0/i) { print "oscheck='ThizLinux Desktop'\\n"; } elsif (\$etc_issue =~ /Thiz.*Linux.*\\s6\\.0/i) { print "oscheck='ThizLinux Desktop'\\n"; } elsif (\$etc_issue =~ /Thiz.*Linux.*\\s6\\.2/i) { print "oscheck='ThizLinux Desktop'\\n"; } elsif (\$etc_issue =~ /Thiz.*Linux.*\\s7\\.0/i) { print "oscheck='ThizLinux Desktop'\\n"; } elsif (\$etc_issue =~ /Thiz.*\\s?Server.*\\s4\\.3/i) { print "oscheck='ThizServer'\\n"; } elsif (\$etc_issue =~ /Thiz.*\\s?Server.*\\s6\\.0/i) { print "oscheck='ThizServer'\\n"; } elsif (\$etc_issue =~ /Thiz.*\\s?Server.*\\s7\\.0/i) { print "oscheck='ThizServer'\\n"; } elsif (\`cat /etc/msclinux-release 2>/dev/null\` =~ /2001.*January/i || \$etc_issue =~ /2001.*January/i) { print "oscheck='MSC Linux'\\n"; } elsif (\`cat /etc/msclinux-release 2>/dev/null\` =~ /2001.*February/i || \$etc_issue =~ /2001.*February/i) { print "oscheck='MSC Linux'\\n"; } elsif (\`cat /etc/msclinux-release 2>/dev/null\` =~ /2001.*May/i || \$etc_issue =~ /2001.*May/i) { print "oscheck='MSC Linux'\\n"; } elsif (\`cat /etc/msclinux-release 2>/dev/null\` =~ /2001.*June/i || \$etc_issue =~ /2001.*June/i) { print "oscheck='MSC Linux'\\n"; } elsif (\`cat /etc/msclinux-release 2>/dev/null\` =~ /2001.*August/i || \$etc_issue =~ /2001.*August/i) { print "oscheck='MSC Linux'\\n"; } elsif (\`cat /etc/msclinux-release 2>/dev/null\` =~ /2002.*February/i || \$etc_issue =~ /2002.*February/i) { print "oscheck='MSC Linux'\\n"; } elsif (\`cat /etc/msclinux-release 2>/dev/null\` =~ /2002.*March/i || \$etc_issue =~ /2002.*March/i) { print "oscheck='MSC Linux'\\n"; } elsif (\`cat /etc/msclinux-release 2>/dev/null\` =~ /2002.*May/i || \$etc_issue =~ /2002.*May/i) { print "oscheck='MSC Linux'\\n"; } elsif (\`cat /etc/msclinux-release 2>/dev/null\` =~ /2002.*July/i || \$etc_issue =~ /2002.*July/i) { print "oscheck='MSC Linux'\\n"; } elsif (\`cat /etc/msclinux-release 2>/dev/null\` =~ /2002.*Nov/i || \$etc_issue =~ /2002.*Nov/i) { print "oscheck='MSC Linux'\\n"; } elsif (\`cat /etc/scilinux-relase 2>/dev/null\` =~ /2003.*Summer/i) { print "oscheck='SCI Linux'\\n"; } elsif (\`cat /etc/scilinux-relase 2>/dev/null\` =~ /2004.*Summer/i) { print "oscheck='SCI Linux'\\n"; } elsif (\`cat /etc/scilinux-relase 2>/dev/null\` =~ /2005.*Summer/i) { print "oscheck='SCI Linux'\\n"; } elsif (\$etc_issue =~ /LinuxPPC\\s+2000/i) { print "oscheck='LinuxPPC'\\n"; } elsif (\$etc_issue =~ /Trustix.*Enterprise.*([0-9\\.]+)/i) { print "oscheck='Trustix SE'\\n"; } elsif (\$etc_issue =~ /Trustix.*1\\.1/i) { print "oscheck='Trustix'\\n"; } elsif (\$etc_issue =~ /Trustix.*1\\.2/i) { print "oscheck='Trustix'\\n"; } elsif (\$etc_issue =~ /Trustix.*1\\.5/i) { print "oscheck='Trustix'\\n"; } elsif (\$etc_issue =~ /Trustix.*\\s([0-9\\.]+)/i) { print "oscheck='Trustix'\\n"; } elsif (\$etc_issue =~ /Tawie\\s+Server\\s+Linux.*([0-9\\.]+)/i) { print "oscheck='Tawie Server Linux'\\n"; } elsif (\$etc_issue =~ /tinysofa.*release\\s+1\\.0/i) { print "oscheck='TinySofa Linux'\\n"; } elsif (\`cat /etc/tinysofa-release 2>/dev/null\` =~ /classic.*release\\s+2\\.0/i) { print "oscheck='TinySofa Linux'\\n"; } elsif (\`cat /etc/tinysofa-release 2>/dev/null\` =~ /enterprise.*release\\s+2\\.0/i) { print "oscheck='TinySofa Linux'\\n"; } elsif (\$etc_issue =~ /Cendio\\s*LBS.*\\s3\\.1/i || \`cat /etc/lbs-release 2>/dev/null\` =~ /3\\.1/) { print "oscheck='Cendio LBS Linux'\\n"; } elsif (\$etc_issue =~ /Cendio\\s*LBS.*\\s3\\.2/i || \`cat /etc/lbs-release 2>/dev/null\` =~ /3\\.2/) { print "oscheck='Cendio LBS Linux'\\n"; } elsif (\$etc_issue =~ /Cendio\\s*LBS.*\\s3\\.3/i || \`cat /etc/lbs-release 2>/dev/null\` =~ /3\\.3/) { print "oscheck='Cendio LBS Linux'\\n"; } elsif (\$etc_issue =~ /Cendio\\s*LBS.*\\s4\\.0/i || \`cat /etc/lbs-release 2>/dev/null\` =~ /4\\.0/) { print "oscheck='Cendio LBS Linux'\\n"; } elsif (\$etc_issue =~ /Cendio\\s*LBS.*\\s4\\.1/i || \`cat /etc/lbs-release 2>/dev/null\` =~ /4\\.1/) { print "oscheck='Cendio LBS Linux'\\n"; } elsif (\`cat /etc/ute-release 2>/dev/null\` =~ /Ute\\s+Linux\\s+release\\s+1\\.0/i) { print "oscheck='Ute Linux'\\n"; } elsif (\$etc_issue =~ /Lanthan\\s+Linux\\s+release\\s+1\\.0/i || \`cat /etc/lanthan-release 2>/dev/null\` =~ /1\\.0/) { print "oscheck='Lanthan Linux'\\n"; } elsif (\$etc_issue =~ /Lanthan\\s+Linux\\s+release\\s+2\\.0/i || \`cat /etc/lanthan-release 2>/dev/null\` =~ /2\\.0/) { print "oscheck='Lanthan Linux'\\n"; } elsif (\$etc_issue =~ /Lanthan\\s+Linux\\s+release\\s+3\\.0/i || \`cat /etc/lanthan-release 2>/dev/null\` =~ /3\\.0/) { print "oscheck='Lanthan Linux'\\n"; } elsif (\$etc_issue =~ /Yellow\\s+Dog\\s+Linux\\s+release\\s+2\\.0\\s+/i || \`cat /etc/yellowdog-release 2>/dev/null\` =~ /Yellow\\s+Dog\\s+Linux\\s+release\\s+2\\.0\\s+/i) { print "oscheck='Yellow Dog Linux'\\n"; } elsif (\$etc_issue =~ /Yellow\\s+Dog\\s+Linux\\s+release\\s+2\\.1\\s+/i || \`cat /etc/yellowdog-release 2>/dev/null\` =~ /Yellow\\s+Dog\\s+Linux\\s+release\\s+2\\.1\\s+/i) { print "oscheck='Yellow Dog Linux'\\n"; } elsif (\$etc_issue =~ /Yellow\\s+Dog\\s+Linux\\s+release\\s+2\\.2\\s+/i || \`cat /etc/yellowdog-release 2>/dev/null\` =~ /Yellow\\s+Dog\\s+Linux\\s+release\\s+2\\.2\\s+/i) { print "oscheck='Yellow Dog Linux'\\n"; } elsif (\$etc_issue =~ /Yellow\\s+Dog\\s+Linux\\s+release\\s+2\\.3\\s+/i || \`cat /etc/yellowdog-release 2>/dev/null\` =~ /Yellow\\s+Dog\\s+Linux\\s+release\\s+2\\.3\\s+/i) { print "oscheck='Yellow Dog Linux'\\n"; } elsif (\$etc_issue =~ /Yellow\\s+Dog\\s+Linux\\s+release\\s+3\\.0\\s+/i || \`cat /etc/yellowdog-release 2>/dev/null\` =~ /Yellow\\s+Dog\\s+Linux\\s+release\\s+3\\.0\\s+/i) { print "oscheck='Yellow Dog Linux'\\n"; } elsif (\$etc_issue =~ /Yellow\\s+Dog\\s+Linux\\s+release\\s+4\\.0\\s+/i || \`cat /etc/yellowdog-release 2>/dev/null\` =~ /\\s4\\.0\\s/i) { print "oscheck='Yellow Dog Linux'\\n"; } elsif (\`cat /etc/latinux-release 2>/dev/null\` =~ /Latinux\\s+8\\s/i) { print "oscheck='Corvus Latinux'\\n"; } elsif (\$etc_issue =~ /Immunix.*\\s([0-9\\.]+)/i || \`cat /etc/immunix-release 2>/dev/null\` =~ /([0-9\\.]+)/) { print "oscheck='Immunix Linux'\\n"; } elsif (-d "/usr/portage") { print "oscheck='Gentoo Linux'\\n"; } elsif (\`cat /etc/securelinux-release 2>/dev/null\` =~ /SecureLinux.*1\\.0/i) { print "oscheck='Secure Linux'\\n"; } elsif (\`cat /etc/openna-release 2>/dev/null\` =~ /release\\s+1\\.0\\s/i) { print "oscheck='OpenNA Linux'\\n"; } elsif (\`cat /etc/openna-release 2>/dev/null\` =~ /release\\s+2\\.0\\s/i) { print "oscheck='OpenNA Linux'\\n"; } elsif (-r "/etc/antitachyon-distribution" && \`uname -r\` =~ /2\\.4\\./) { print "oscheck='SoL Linux'\\n"; } elsif (-r "/etc/antitachyon-distribution" && \`uname -r\` =~ /2\\.6\\./) { print "oscheck='SoL Linux'\\n"; } elsif (\$etc_issue =~ /coherent\\s*technology.*\\s([0-9\\.]+)/i || \`cat /etc/coherent-release 2>/dev/null\` =~ /([0-9\\.]+)/ ) { print "oscheck='Coherent Technology Linux'\\n"; } elsif (\$etc_issue =~ /PS2\\s+Linux\\s+release\\s+1.0/i) { print "oscheck='Playstation Linux'\\n"; } elsif (\`cat /etc/startcom-release 2>/dev/null\` =~ /([0-9\\.]+)/) { print "oscheck='StartCom Linux'\\n"; } elsif (\`cat /etc/yoper-release 2>/dev/null\` =~ /Yoper\\s+Linux\\s+2.0/i) { print "oscheck='Yoper Linux'\\n"; } elsif (\`cat /etc/yoper-release 2>/dev/null\` =~ /Yoper\\s+Linux\\s+2.1/i) { print "oscheck='Yoper Linux'\\n"; } elsif (\`cat /etc/yoper-release 2>/dev/null\` =~ /Yoper\\s+Linux\\s+2.2/i) { print "oscheck='Yoper Linux'\\n"; } elsif (\`cat /etc/CxM-release 2>/dev/null\` =~ /8\\.1/ || \$etc_issue =~ /Caixa\\s+8\\.1\\s/i) { print "oscheck='Caixa Magica'\\n"; } elsif (\`cat /etc/CxM-release 2>/dev/null\` =~ /10\\.0/ || \$etc_issue =~ /Caixa\\s+10\\.0\\s/i) { print "oscheck='Caixa Magica'\\n"; } elsif (\$uname =~ /FreeBSD.*?\\s([0-9\\.]+)/i) { print "oscheck='FreeBSD'\\n"; } elsif (\$uname =~ /DragonFly.*?\\s1\\.0A/i) { print "oscheck='DragonFly BSD'\\n"; } elsif (\$uname =~ /DragonFly.*?\\s1\\.2A/i) { print "oscheck='DragonFly BSD'\\n"; } elsif (\$uname =~ /OpenBSD.*?\\s([0-9\\.]+)/i) { print "oscheck='OpenBSD'\\n"; } elsif (\$uname =~ /NetBSD.*1\\.5/i) { print "oscheck='NetBSD'\\n"; } elsif (\$uname =~ /NetBSD.*1\\.6/i) { print "oscheck='NetBSD'\\n"; } elsif (\$uname =~ /NetBSD.*2\\.0/i) { print "oscheck='NetBSD'\\n"; } elsif (\$uname =~ /NetBSD.*3\\.0/i) { print "oscheck='NetBSD'\\n"; } elsif (\$uname =~ /BSDI.*\\s([0-9\\.]+)/i) { print "oscheck='BSDI'\\n"; } elsif (\$uname =~ /HP-UX.*(1[01]\\.[0-9\\.]+)/) { print "oscheck='HP/UX'\\n"; } elsif (\$uname =~ /IRIX.*([0-9]+\\.[0-9]+)/i) { print "oscheck='SGI Irix'\\n"; } elsif (\$uname =~ /OSF1.*4\\.0/) { print "oscheck='DEC/Compaq OSF/1'\\n"; } elsif (\$uname =~ /OSF1.*V5.1/) { print "oscheck='DEC/Compaq OSF/1'\\n"; } elsif (\$uname =~ /AIX\\s+\\S+\\s+(\\d+)\\s+(\\d+)\\s+/i) { print "oscheck='IBM AIX'\\n"; } elsif (\$uname =~ /SCO_SV.*\\s5\\./i) { print "oscheck='SCO OpenServer'\\n"; } elsif (\$uname =~ /SCO_SV.*\\s6\\./i) { print "oscheck='SCO OpenServer'\\n"; } elsif (\`sw_vers 2>/dev/null\` =~ /ProductVersion:\\s+10\\.0/i) { print "oscheck='Mac OS X'\\n"; } elsif (\`sw_vers 2>/dev/null\` =~ /ProductVersion:\\s+10\\.1/i) { print "oscheck='Mac OS X'\\n"; } elsif (\`sw_vers 2>/dev/null\` =~ /ProductVersion:\\s+10\\.2/i) { print "oscheck='Mac OS X'\\n"; } elsif (\`sw_vers 2>/dev/null\` =~ /ProductVersion:\\s+10\\.3/i) { print "oscheck='Mac OS X'\\n"; } elsif (\`sw_vers 2>/dev/null\` =~ /ProductVersion:\\s+10\\.4/i) { print "oscheck='Mac OS X'\\n"; } elsif (\$uname =~ /Darwin.*\\s([0-9\\.]+)/) { print "oscheck='Darwin'\\n"; } elsif (\`cat /etc/SuSE-release 2>/dev/null\` =~ /Java Desktop System.*\\nVERSION = 1\\.0/i) { print "oscheck='Sun Java Desktop System'\\n"; } elsif (\`cat /etc/SuSE-release 2>/dev/null\` =~ /Java Desktop System.*\\nVERSION = 2\\.0/i) { print "oscheck='Sun Java Desktop System'\\n"; } elsif (\`cat /etc/SuSE-release 2>/dev/null\` =~ /Java Desktop System.*\\nVERSION = 3\\.0/i) { print "oscheck='Sun Java Desktop System'\\n"; } elsif (\$uname =~ /SunOS.*\\s5\\.9\\s/i && \`cat /etc/sun-release 2>/dev/null\` =~ /Sun\\s+Java\\s+Desktop/) { print "oscheck='Sun Java Desktop System'\\n"; } elsif (\`uname -r\` =~ /2\\.0\\./) { print "oscheck='Generic Linux'\\n"; } elsif (\`uname -r\` =~ /2\\.2\\./) { print "oscheck='Generic Linux'\\n"; } elsif (\`uname -r\` =~ /2\\.4\\./) { print "oscheck='Generic Linux'\\n"; } elsif (\`uname -r\` =~ /2\\.4\\./) { print "oscheck='Generic Linux'\\n"; } elsif (\`uname -r\` =~ /2\\.6\\./) { print "oscheck='Generic Linux'\\n"; } elsif (\`uname -r\` =~ /2\\.7\\./) { print "oscheck='Generic Linux'\\n"; } elsif ((-d "c:/windows" || -d "c:/winnt") && \`ver\` =~ /XP/) { print "oscheck='Windows'\\n"; } elsif ((-d "c:/windows" || -d "c:/winnt") && \`ver\` =~ /2000/) { print "oscheck='Windows'\\n"; } elsif ((-d "c:/windows" || -d "c:/winnt") && \`ver\` =~ /2003|\\s5\\.2/) { print "oscheck='Windows'\\n"; } EOD . /$$.check rm -f /$$.check if [ ! -r /etc/webmin/config ]; then if [ "$oscheck" = "" ]; then echo Unable to identify operating system exit 2 fi echo Operating system is $oscheck if [ "$WEBMIN_PORT" != "" ]; then port=$WEBMIN_PORT else port=10000 fi perl -e 'use Socket; socket(FOO, PF_INET, SOCK_STREAM, getprotobyname("tcp")); setsockopt(FOO, SOL_SOCKET, SO_REUSEADDR, pack("l", 1)); bind(FOO, pack_sockaddr_in($ARGV[0], INADDR_ANY)) || exit(1); exit(0);' $port if [ "$?" != "0" ]; then echo Port $port is already in use exit 2 fi fi # Save /etc/webmin in case the upgrade trashes it if [ "$1" != 1 ]; then rm -rf /etc/.webmin-backup cp -r /etc/webmin /etc/.webmin-backup fi %post inetd=`grep "^inetd=" /etc/webmin/miniserv.conf 2>/dev/null | sed -e 's/inetd=//g'` if [ "$1" != 1 ]; then # Upgrading the RPM, so stop the old webmin properly if [ "$inetd" != "1" ]; then /etc/init.d/webmin stop >/dev/null 2>&1 /webmin-setup.out 2>&1 rm -f /var/lock/subsys/webmin if [ "" != "1" ]; then /etc/init.d/webmin start >/dev/null 2>&1 /etc/webmin/uninstall.sh </dev/null 2>/dev/null if [ "$?" = "0" ]; then sslmode=1 fi fi musthost=`grep musthost= /etc/webmin/miniserv.conf | sed -e 's/musthost=//'` if [ "" != "" ]; then host= fi if [ "$sslmode" = "1" ]; then echo "Webmin install complete. You can now login to https://$host:$port/" else echo "Webmin install complete. You can now login to http://$host:$port/" fi echo "as root with your root password." %preun if [ "$1" = 0 ]; then grep root=/usr/libexec/webmin /etc/webmin/miniserv.conf >/dev/null 2>&1 if [ "$?" = 0 ]; then # RPM is being removed, and no new version of webmin # has taken it's place. Run uninstalls and stop the server echo "Running uninstall scripts .." (cd /usr/libexec/webmin ; WEBMIN_CONFIG=/etc/webmin WEBMIN_VAR=/var/webmin LANG= /usr/libexec/webmin/run-uninstalls.pl) /etc/init.d/webmin stop >/dev/null 2>&1 /dev/null 2>&1 /dev/null 2>&1 if [ "$?" = 0 ]; then # RPM is being removed, and no new version of webmin # has taken it's place. Delete the config files rm -rf /etc/webmin /var/webmin fi fi %triggerpostun -- webmin if [ ! -d /var/webmin -a "$1" = 2 ]; then echo Re-creating /var/webmin directory mkdir /var/webmin fi if [ ! -r /etc/webmin/miniserv.conf -a -d /etc/.webmin-backup -a "$1" = 2 ]; then echo Recovering /etc/webmin directory rm -rf /etc/.webmin-broken mv /etc/webmin /etc/.webmin-broken mv /etc/.webmin-backup /etc/webmin /etc/init.d/webmin stop >/dev/null 2>&1 /dev/null 2>&1