#/bin/sh # VERSION 2.2 - Jan 12th 2004 # First Linux Script Ever Written by Nate Davis - nate@askdavis.com # Written Oct 5th, 2003 under the GPL License # USE AT YOUR OWN RISK! THIS WORKED GREAT ON MY REDHAT 9 INSTALL. # Change Log # # Version 2.2 - Jan 12th 2004 # # Fixed a few bugs, and updated it to the Latest Development Packages # # Version 2.1 - Jan 10th 2004 # # *Move repetative things into functions... This way it is easier to understand what my # script is doing when you read through it. At least I know it will help me a TON :) # * Changed Variable names (mysql password for example) # * Added Support for Trustix and Fedora Core 1 into the script... ## # Time to set some variables all in one Location # # # Define the Temp Directorys. Default should be fine: temp=/tmp/toasterdownload # Don't include a trailing slash! temp=/tmp/toasterdownload templog=/tmp/qmailtoastercompilelogs # Creates Temp Directorys rm -Rf $temp mkdir -p $temp mkdir -p $templog ## Stable Version File Names # # # Stable URL # Don't include a trailing slash! stablelocation=http://www.qmailtoaster.com/download/stable # File Names for Stable Versions stablevqadmin=vqadmin-toaster-2.3.4-1.0.6.src.rpm stablevpopmail=vpopmail-toaster-5.3.8-1.0.7.src.rpm stableucspi=ucspi-tcp-toaster-0.88-1.0.7.src.rpm stableqmailmrtg=qmailmrtg-toaster-3.4-1.0.7.src.rpm stableqmailadmin=qmailadmin-toaster-1.0.6-1.0.6.src.rpm stableqmail=qmail-toaster-1.03-1.0.9.src.rpm stablemrtg=mrtg-toaster-2.9.25-1.0.2.src.rpm stablemaildrop=maildrop-toaster-1.5.3-1.0.1.src.rpm stablehorde=horde-toaster-2.2.3-1.0.5.src.rpm stableezmlm=ezmlm-toaster-0.53.324-1.0.6.src.rpm stabledaemontools=daemontools-toaster-0.76-1.0.4.src.rpm stablecourier=courier-imap-toaster-1.7.3-1.0.1.src.rpm stablecontrolpanel=control-panel-toaster-0.5-1.0.2.src.rpm stableautorespond=autorespond-toaster-2.0.2-1.0.5.src.rpm pear=pear-1.1.tar.gz ## Development Version File Names # # # Development URL # Don't include a trailing slash! devellocation=http://www.qmailtoaster.com/download/develop # File Names for Development Versions develvqadmin=vqadmin-toaster-2.3.4-1.0.8.src.rpm develvpopmail=vpopmail-toaster-5.3.8-1.0.10.src.rpm develucspi=ucspi-tcp-toaster-0.88-1.0.10.src.rpm develqmailmrtg=qmailmrtg-toaster-3.4-1.0.10.src.rpm develqmailadmin=qmailadmin-toaster-1.0.6-1.0.8.src.rpm develqmail=qmail-toaster-1.03-1.0.12.src.rpm develmrtg=mrtg-toaster-2.9.25-1.0.3.src.rpm develmaildrop=maildrop-toaster-1.5.3-1.0.3.src.rpm develhorde=horde-toaster-2.2.3-1.0.7.src.rpm develezmlm=ezmlm-toaster-0.53.324-1.0.9.src.rpm develdaemontools=daemontools-toaster-0.76-1.0.6.src.rpm develcourier=courier-imap-toaster-1.7.3-1.0.3.src.rpm develcontrolpanel=control-panel-toaster-0.5-1.0.5.src.rpm develautorespond=autorespond-toaster-2.0.2-1.0.7.src.rpm develisoqlog=isoqlog-toaster-2.1-1.1.4.src.rpm # Location of php.ini file phpini=/etc/php.ini # Location of qmail SQL File sqlfile=/var/qmail/control/sql # Location ofphp config file phpconf=/etc/httpd/conf.d/php.conf # Location of httpd config file httpconf=/etc/httpd/conf/httpd.conf ## # Write functions # # ## # Functions for certain questions... # # mysqlaskpass(){ clear cat < $templog/daemontools-log.txt 2>&1 rpm -Uhv $i386dir/daemontools*.rpm # ucspi-tcp echo "Now compiling $stableucspi please be patient..." rpmbuild --rebuild --with $arch $temp/ucspi-tcp*.src.rpm > $templog/ucspi-tcp-log.txt 2>&1 rpm -Uhv $i386dir/ucspi-tcp*.rpm # qmail-toaster echo "Now compiling $stableqmail please be patient..." rpmbuild --rebuild --with $arch $temp/qmail-toaster*.src.rpm > $templog/qmail-log.txt 2>&1 rpm -Uhv $i386dir/qmail-toaster*.rpm # vpopmail-toaster echo "Now compiling $stablevpopmail please be patient..." rpmbuild --rebuild --with $arch $temp/vpopmail-toaster*.src.rpm > $templog/vpopmail-log.txt 2>&1 rpm -Uhv $i386dir/vpopmail-toaster*.rpm # Install qmail-pop3d-toaster rpm -Uhv $i386dir/qmail-pop3d-toaster*.rpm # courier-imap echo "Now compiling $stablecourier please be patient..." echo "This one takes quite a while..." rpmbuild --rebuild --with $arch $temp/courier-imap*.src.rpm > $templog/courierimap-log.txt 2>&1 rpm -Uhv $i386dir/courier-imap*.rpm # autorespond-toaster echo "Now compiling $stableautorespond please be patient..." rpmbuild --rebuild --with $arch $temp/autorespond-toaster*.src.rpm > $templog/autorespond-log.txt 2>&1 rpm -Uhv $i386dir/autorespond*.rpm # maildrop-toaster echo "Now compiling $stablemaildrop please be patient..." rpmbuild --rebuild --with $arch $temp/maildrop*.src.rpm > $templog/maildrop-log.txt 2>&1 rpm -Uhv $i386dir/maildrop*.rpm # control-panel echo "Now compiling $stablecontrolpanel please be patient..." rpmbuild --rebuild --with $arch $temp/control-panel*.src.rpm > $templog/controlpanel-log.txt 2>&1 rpm -Uhv $noarchdir/control-panel*.rpm # ezmlm-toaster echo "Now compiling $stableezmlm please be patient..." rpmbuild --rebuild --with $arch $temp/ezmlm*.src.rpm > $templog/ezmlm-log.txt 2>&1 rpm -Uhv $i386dir/ezmlm*.rpm # qmailadmin-toaster echo "Now compiling $stableqmailadmin please be patient..." rpmbuild --rebuild --with $arch $temp/qmailadmin*.src.rpm > $templog/qmailadmin-log.txt 2>&1 rpm -Uhv $i386dir/qmailadmin*.rpm # qmailmrtg echo "Now compiling $stableqmailmrtg please be patient..." rpmbuild --rebuild --with $arch $temp/qmailmrtg*.src.rpm > $templog/mrtg-log.txt 2>&1 rpm -Uhv $i386dir/qmailmrtg*.rpm # vqadmin echo "Now compiling $stablevqadmin please be patient..." rpmbuild --rebuild --with $arch $temp/vqadmin*.src.rpm > $templog/vqadmin-log.txt 2>&1 rpm -Uhv $i386dir/vqadmin*.rpm # Horde-Toaster echo "Now compiling $stablehorde please be patient..." rpmbuild --rebuild --with $arch $temp/horde*.src.rpm > $templog/horde-log.txt 2>&1 rpm -Uhv $noarchdir/horde*.rpm } downloaddevel(){ # Downloads all the Development RPMs to the Temp Directory wget -O $temp/$develdaemontools $devellocation/$develdaemontools wget -O $temp/$develucspi $devellocation/$develucspi wget -O $temp/$develqmail $devellocation/$develqmail wget -O $temp/$develvpopmail $devellocation/$develvpopmail wget -O $temp/$develcourier $devellocation/$develcourier wget -O $temp/$develautorespond $devellocation/$develautorespond wget -O $temp/$develmaildrop $devellocation/$develmaildrop wget -O $temp/$develcontrolpanel $devellocation/$develcontrolpanel wget -O $temp/$develezmlm $devellocation/$develezmlm wget -O $temp/$develqmailadmin $devellocation/$develqmailadmin wget -O $temp/$develqmailmrtg $devellocation/$develqmailmrtg wget -O $temp/$develmrtg $devellocation/$develmrtg wget -O $temp/$develvqadmin $devellocation/$develvqadmin wget -O $temp/$develhorde $devellocation/$develhorde wget -O $temp/$develisoqlog $devellocation/$develisoqlog } installdevel(){ # Time to BUILD packages one by one and then install them! # DaemonTools echo "Now compiling $develdaemontools please be patient..." rpmbuild --rebuild --with $arch $temp/daemontools*.src.rpm > $templog/daemontools-log.txt 2>&1 rpm -Uhv $i386dir/daemontools*.rpm # ucspi-tcp echo "Now compiling $develucspi please be patient..." rpmbuild --rebuild --with $arch $temp/ucspi-tcp*.src.rpm > $templog/ucspi-tcp-log.txt 2>&1 rpm -Uhv $i386dir/ucspi-tcp*.rpm # qmail-toaster echo "Now compiling $develqmail please be patient..." rpmbuild --rebuild --with $arch $temp/qmail-toaster*.src.rpm > $templog/qmail-log.txt 2>&1 rpm -Uhv $i386dir/qmail-toaster*.rpm # vpopmail-toaster echo "Now compiling $develvpopmail please be patient..." rpmbuild --rebuild --with $arch $temp/vpopmail-toaster*.src.rpm > $templog/vpopmail-log.txt 2>&1 rpm -Uhv $i386dir/vpopmail-toaster*.rpm # Install qmail-pop3d-toaster rpm -Uhv $i386dir/qmail-pop3d-toaster*.rpm # courier-imap echo "Now compiling $develcourier please be patient..." echo "This one takes quite a while..." rpmbuild --rebuild --with $arch $temp/courier-imap*.src.rpm > $templog/courierimap-log.txt 2>&1 rpm -Uhv $i386dir/courier-imap*.rpm # autorespond-toaster echo "Now compiling $develautorespond please be patient..." rpmbuild --rebuild --with $arch $temp/autorespond-toaster*.src.rpm > $templog/autorespond-log.txt 2>&1 rpm -Uhv $i386dir/autorespond*.rpm # maildrop-toaster echo "Now compiling $develmaildrop please be patient..." rpmbuild --rebuild --with $arch $temp/maildrop*.src.rpm > $templog/maildrop-log.txt 2>&1 rpm -Uhv $i386dir/maildrop*.rpm # control-panel echo "Now compiling $develcontrolpanel please be patient..." rpmbuild --rebuild --with $arch $temp/control-panel*.src.rpm > $templog/controlpanel-log.txt 2>&1 rpm -Uhv $noarchdir/control-panel*.rpm # ezmlm-toaster echo "Now compiling $develezmlm please be patient..." rpmbuild --rebuild --with $arch $temp/ezmlm*.src.rpm > $templog/ezmlm-log.txt 2>&1 rpm -Uhv $i386dir/ezmlm*.rpm # qmailadmin-toaster echo "Now compiling $develqmailadmin please be patient..." rpmbuild --rebuild --with $arch $temp/qmailadmin*.src.rpm > $templog/qmailadmin-log.txt 2>&1 rpm -Uhv $i386dir/qmailadmin*.rpm # qmailmrtg echo "Now compiling $develqmailmrtg please be patient..." rpmbuild --rebuild --with $arch $temp/qmailmrtg*.src.rpm > $templog/mrtg-log.txt 2>&1 rpm -Uhv $i386dir/qmailmrtg*.rpm # vqadmin echo "Now compiling $develvqadmin please be patient..." rpmbuild --rebuild --with $arch $temp/vqadmin*.src.rpm > $templog/vqadmin-log.txt 2>&1 rpm -Uhv $i386dir/vqadmin*.rpm # Horde-Toaster echo "Now compiling $develhorde please be patient..." rpmbuild --rebuild --with $arch $temp/horde*.src.rpm > $templog/horde-log.txt 2>&1 rpm -Uhv $noarchdir/horde*.rpm # isoqlog echo "Now compiling $develisoqlog please be patient..." rpmbuild --rebuild --with $arch $temp/isoqlog*.src.rpm > $templog/isoqlog-log.txt 2>&1 rpm -Uhv $i386dir/isoqlog*.rpm } perlinstall(){ # Name of PERL pear=pear-1.1.tar.gz # Download and expand PEAR for Horde... echo "Now Downloading PEAR and installing it for HORDE" wget -O $temp/$pear http://www.qmailtoaster.com/rht9/$pear tar zxf $temp/$pear -C $temp cp -Rf $temp/pear /usr/share/ } # this is not in use yet.... Jan 12th 2004 makesslcert(){ clear cat < mail.yourserver.com EOF cd /usr/share/ssl/certs/ make stunnel.pem mv stunnel.pem /var/qmail/control/servercert.pem chown root:qmail /var/qmail/control/servercert.pem chmod 644 /var/qmail/control/servercert.pem sh /usr/share/toaster/isoqlog/bin/cron.sh } removeotherrpms(){ echo " Now moving anything in /usr/src/redhat/RPMS/i386" echo " to /tmp/oldrpms" mkdir /tmp/oldrpms mv -f $i386dir/*.rpm /tmp/oldrpms mv -f $noarchdir/*.rpm /tmp/oldrpms } ## # Ask the right questions . . . # # inquire(){ PROCEED="exit"; echo -n " Shall we continue? [y]/n/q: " read REPLY if [ -z $REPLY ]; then REPLY="y"; fi if [ $REPLY = "y" ]; then PROCEED=y fi if [ $REPLY = "n" ]; then PROCEED=n fi if [ $PROCEED = "exit" ]; then echo " Exiting." exit 0 fi } ## # Enter to proceed # # goon(){ echo echo -n " -- [Enter] to proceed --" read } # Start Actually Install Script!!!! clear cat < /dev/null /usr/bin/qmailctl stop > /dev/null if [ $upgradechoice -eq 1 ] ; then # Upgrade to the Stable Packages downloadstable installstable # End Upgrade to Stable Packages else if [ $upgradechoice -eq 2 ] ; then # Upgrade to the Development Packages downloaddevel installdevel # End Upgrade to Development Packages else exit 1 fi clear cat < and Nick Hemmesch Install script by Nate Davis EOF fi else #### Code for Option 2 Below (install) ###### if [ $mainchoice -eq 2 ] ; then echo "Time for a New Install" # Put Install Code Here (stable or development) clear cat < and Nick Hemmesch Install script by Nate Davis EOF echo -n " Shall I delete all the RPMs? [y] or n: " read REPLY if [ -z $REPLY ]; then REPLY="y"; fi if [ $REPLY = "y" ]; then PROCEED=y fi if [ $REPLY = "n" ]; then PROCEED=n fi if [ $PROCEED = "exit" ]; then echo " Exiting." exit 0 fi if [ $PROCEED = "y" ]; then echo "Now Removing all TEMP Files..." rm -Rf $temp rm -Rf /usr/src/redhat/RPMS/i386/* rm -Rf /usr/src/redhat/RPMS/noarch/* fi echo " Install Complete! Have Fun with your new Mail Server!" else exit 1 fi fi