diff options
-rw-r--r-- | sysutils/dtc/Makefile | 41 | ||||
-rw-r--r-- | sysutils/dtc/distinfo | 5 | ||||
-rw-r--r-- | sysutils/dtc/files/dtc-deinstall.in | 231 | ||||
-rw-r--r-- | sysutils/dtc/files/dtc-install.in | 1892 | ||||
-rw-r--r-- | sysutils/dtc/pkg-descr | 23 | ||||
-rw-r--r-- | sysutils/dtc/pkg-plist | 479 |
6 files changed, 2297 insertions, 374 deletions
diff --git a/sysutils/dtc/Makefile b/sysutils/dtc/Makefile index a6e2bff203e3..5f64a488168a 100644 --- a/sysutils/dtc/Makefile +++ b/sysutils/dtc/Makefile @@ -6,49 +6,48 @@ # PORTNAME= dtc -PORTVERSION= 0.12.0.6 -PORTREVISION= 2 +PORTVERSION= 0.17.0.4 CATEGORIES= sysutils MASTER_SITES= ftp://ftp.gplhost.com/pub/dtc/bsd/ MAINTAINER= thomas@goirand.fr -COMMENT= A hosting web GUI for admin and accounting apache/named/proftpd/qmail +COMMENT= A hosting web GUI for admin and accounting all hosting services RUN_DEPENDS= ${LOCALBASE}/share/pear/Crypt/CBC.php:${PORTSDIR}/security/pear-Crypt_CBC \ - ${LOCALBASE}/sbin/proftpd:${PORTSDIR}/ftp/proftpd-mysql \ + proftpd-mysql>=0:${PORTSDIR}/ftp/proftpd-mysql \ ${LOCALBASE}/libexec/apache/mod_log_sql.so:${PORTSDIR}/www/mod_log_sql2 \ ${LOCALBASE}/bin/webalizer:${PORTSDIR}/www/webalizer \ + ${LOCALBASE}/www/cgi-bin/sbox:${PORTSDIR}/www/sbox-dtc -USE_PHP= session mysql sockets gd +NO_BUILD= yes +USE_MYSQL= yes +USE_PHP= mysql pcre session + +.if defined(WITH_PHP5) +DEFAULT_PHP_VER=5 +BROKEN_WITH_PHP=4 +USE_PHP+= bz2 gd mbstring mcrypt mysql mysqli openssl pcre \ + pear session sockets xml zlib +.endif DTCROOT?= www/dtc DTCDIR= ${PREFIX}/${DTCROOT} PLIST_SUB+= DTCROOT="${DTCROOT}" +# Now tested and working. In fact, under BSD it's easyer to use Apache2 now. +# If you know what to do so all dependancies are set correctly, please help! .if defined(WITH_APACHE2) -IGNORE= Untested +IGNORE= with Apache 2 is untested .endif -NO_BUILD= yes -USE_MYSQL= yes - -USE_QMAIL_RUN= yes - -do-configure: - @${SED} -e 's,%%PREFIX%%,${PREFIX},;\ - s,%%LOCALBASE%%,${LOCALBASE},;\ - s,%%QMAIL_PREFIX%%,${QMAIL_PREFIX},' \ - ${FILESDIR}/dtc-install.in > ${WRKDIR}/dtc-install - @${SED} -e 's,%%PREFIX%%,${PREFIX},;\ - s,%%LOCALBASE%%,${LOCALBASE},;\ - s,%%QMAIL_PREFIX%%,${QMAIL_PREFIX},' \ - ${FILESDIR}/dtc-deinstall.in > ${WRKDIR}/dtc-deinstall +SUB_FILES= dtc-install dtc-deinstall +SUB_LIST+= QMAIL_DIR="${QMAIL_DIR}" do-install: @${INSTALL_SCRIPT} ${WRKDIR}/dtc-install ${PREFIX}/sbin/dtc-install @${INSTALL_SCRIPT} ${WRKDIR}/dtc-deinstall ${PREFIX}/sbin/dtc-deinstall @${MKDIR} ${DTCDIR} - @cd ${WRKSRC}/dtc ; ${TAR} cfp - . | ${TAR} xfp - -C ${DTCDIR} + @cd ${WRKSRC} ; ${TAR} cfp - . | ${TAR} xfp - -C ${DTCDIR} @${CAT} ${PKGMESSAGE} .include <bsd.port.mk> diff --git a/sysutils/dtc/distinfo b/sysutils/dtc/distinfo index ea02f1613fd9..010de9b625ec 100644 --- a/sysutils/dtc/distinfo +++ b/sysutils/dtc/distinfo @@ -1,3 +1,2 @@ -MD5 (dtc-0.12.0.6.tar.gz) = ce1902e124756c77c740b00caeb68ad8 -SHA256 (dtc-0.12.0.6.tar.gz) = 2d2a9cffdd9d691623d3c85bf256d00d78bf061c62f86ff5882f724e772bd7c1 -SIZE (dtc-0.12.0.6.tar.gz) = 939603 +MD5 (dtc-0.17.0.4.tar.gz) = 894e2f9bf96f31fd47cafd98972253fa +SIZE (dtc-0.17.0.4.tar.gz) = 10215361 diff --git a/sysutils/dtc/files/dtc-deinstall.in b/sysutils/dtc/files/dtc-deinstall.in index 6929330f665c..05e76f367cd6 100644 --- a/sysutils/dtc/files/dtc-deinstall.in +++ b/sysutils/dtc/files/dtc-deinstall.in @@ -8,16 +8,24 @@ UNIX_TYPE=freebsd PREFIX=%%PREFIX%% LOCALBASE=%%LOCALBASE%% -QMAIL_PREFIX=%%QMAIL_PREFIX%% +QMAIL_DIR=%%QMAIL_DIR%% echo "### DEAMON PATH CONFIGURATION ###" -PATH_HTTPD_CONF="${LOCALBASE}/etc/apache/httpd.conf" +PATH_HTTPD_CONF="${LOCALBASE}/etc/apache2/httpd.conf" PATH_NAMED_CONF="/etc/namedb/named.conf" PATH_PROFTPD_CONF="${LOCALBASE}/etc/proftpd.conf" -PATH_QMAIL_CTRL="${QMAIL_PREFIX}/control" +PATH_DOVECOT_CONF="${LOCALBASE}/etc/dovecot.conf" +PATH_COURIER_CONF_PATH="${LOCALBASE}/etc/courier" +PATH_POSTFIX_CONF="${LOCALBASE}/etc/postfix/main.cf" +PATH_POSTFIX_ETC="${LOCALBASE}/etc/postfix" +PATH_SASL_PASSWD2="${LOCALBASE}/sbin/saslpasswd2" +PATH_AWSTATS_ETC=${LOCALBASE}/etc/awstats +PATH_QMAIL_CTRL="${QMAIL_DIR}/control" +PATH_CRONTAB_CONF="/etc/crontab" +PATH_AMAVISD_CONF="${LOCALBASE}/etc/amavis/amavisd.conf" # Multi OS (Unix system) uninstall sh script for DTC -# Written by Thomas GOIRAND <thomas@goirand.fr> +# Written by Thomas GOIRAND <thomas [ at ] goirand.fr> # under LGPL Licence # The configuration for all thoses variables must be written BEFORE this @@ -36,74 +44,221 @@ PATH_QMAIL_CTRL="${QMAIL_PREFIX}/control" # uninstall named.conf # -if grep "Configured by DTC" $PATH_NAMED_CONF +VERBOSE_INSTALL=yes + +if [ -z "$MKTEMP" ] ; then + MKTEMP="mktemp -t" +fi + +if grep "Configured by DTC" $PATH_CRONTAB_CONF >/dev/null +then + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "===> Uninstalling inclusion from crontab" + fi + TMP_FILE=`${MKTEMP} DTC_uninstall.crontab.XXXXXX` || exit 1 + TMP_FILE2=`${MKTEMP} DTC_uninstall.crontab.XXXXXX` || exit 1 + grep -v "Configured by DTC" $PATH_CRONTAB_CONF > $TMP_FILE + grep -v "cd /usr/share/dtc/admin; " $TMP_FILE > $TMP_FILE2 + cp -f $PATH_NAMED_CONF $PATH_NAMED_CONF.DTC.removed + # don't rm the original file, just empty it so we keep permissions + echo -n > $PATH_CRONTAB_CONF + cat < $TMP_FILE2 >> $PATH_CRONTAB_CONF + rm -f $TMP_FILE $TMP_FILE2 +fi + + +if grep "Configured by DTC" $PATH_NAMED_CONF >/dev/null then - echo "===> Uninstalling inclusion from named.conf" - grep -v "Configured by DTC" $PATH_NAMED_CONF >/tmp/dtc_uninstall.named.conf - grep -v "include \"$PATH_DTC_ETC/named.conf\"" /tmp/dtc_uninstall.named.conf >/tmp/dtc_uninstall2.named.conf + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "===> Uninstalling inclusion from named.conf" + echo "removing \"Configured by DTC\" and include \""${PATH_DTC_ETC}/named.conf"\" lines" + fi + TMP_FILE=`${MKTEMP} DTC_uninstall.named.conf.XXXXXX` || exit 1 + TMP_FILE2=`${MKTEMP} DTC_uninstall.named.conf.XXXXXX` || exit 1 + grep -v "Configured by DTC" $PATH_NAMED_CONF > $TMP_FILE + grep -v "include \"$PATH_DTC_ETC/named.conf\"" $TMP_FILE > $TMP_FILE2 cp -f $PATH_NAMED_CONF $PATH_NAMED_CONF.DTC.removed - mv /tmp/dtc_uninstall2.named.conf $PATH_NAMED_CONF - rm -f /tmp/dtc_uninstall.named.conf + # don't purge the original file, just empty it + echo -n > $PATH_NAMED_CONF + cat < $TMP_FILE2 >> $PATH_NAMED_CONF + rm -f $TMP_FILE + rm -f $TMP_FILE2 fi # # uninstall httpd.conf # -if grep "Configured by DTC" $PATH_HTTPD_CONF +if grep "Configured by DTC" $PATH_HTTPD_CONF >/dev/null then - echo "===> Uninstalling inclusion from httpd.conf" + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "===> Uninstalling inclusion from httpd.conf" + fi if grep "Configured by DTC v0.10" $PATH_HTTPD_CONF >/dev/null 2>&1 then - grep -v "Configured by DTC" $PATH_HTTPD_CONF | grep -v "Include $PATH_DTC_ETC/vhosts.conf" >/tmp/dtc_uninstall.httpd.conf + TMP_FILE=`$MKTEMP DTC_uninstall.httpd.conf.XXXXXX` || exit 1 + grep -v "Configured by DTC" $PATH_HTTPD_CONF | grep -v "Include $PATH_DTC_ETC/vhosts.conf" > $TMP_FILE cp -f $PATH_HTTPD_CONF $PATH_HTTPD_CONF.DTC.removed - mv /tmp/dtc_uninstall.httpd.conf $PATH_HTTPD_CONF + echo -n > $PATH_HTTPD_CONF + cat <$TMP_FILE >> $PATH_HTTPD_CONF + rm $TMP_FILE else + TMP_FILE=`$MKTEMP DTC_uninstall.httpd.conf.XXXXXX` || exit 1 start_line=`grep -n "Configured by DTC" $PATH_HTTPD_CONF | cut -d":" -f1` end_line=`grep -n "End of DTC configuration" $PATH_HTTPD_CONF| cut -d":" -f1` nbr_line=`cat $PATH_HTTPD_CONF | wc -l` - cat $PATH_HTTPD_CONF | head -n $(($start_line - 1 )) >/tmp/DTC_uninstall.httpd.conf - cat $PATH_HTTPD_CONF | tail -n $(($nbr_line - $end_line )) >>/tmp/DTC_uninstall.httpd.conf - cat </tmp/DTC_uninstall.httpd.conf >$PATH_HTTPD_CONF + cat $PATH_HTTPD_CONF | head -n $(($start_line - 1 )) > $TMP_FILE + cat $PATH_HTTPD_CONF | tail -n $(($nbr_line - $end_line )) >> $TMP_FILE + cat < $TMP_FILE >$PATH_HTTPD_CONF + rm $TMP_FILE fi fi # +# uninstall courier config details +# + +if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "===> Uninstalling inclusion from courier authdaemonrc" +fi +if grep "Configured by DTC" $PATH_COURIER_CONF_PATH/authdaemonrc >/dev/null 2>&1 +then + start_line=`grep -n "Configured by DTC" $PATH_COURIER_CONF_PATH/authdaemonrc | cut -d":" -f1` + end_line=`grep -n "End of DTC configuration" $PATH_COURIER_CONF_PATH/authdaemonrc| cut -d":" -f1` + nbr_line=`cat $PATH_COURIER_CONF_PATH/authdaemonrc | wc -l` + TMP_FILE=`${MKTEMP} DTC_uninstall.courier.conf.XXXXXX` || exit 1 + cat $PATH_COURIER_CONF_PATH/authdaemonrc | head -n $(($start_line - 1 )) > $TMP_FILE + cat $PATH_COURIER_CONF_PATH/authdaemonrc | tail -n $(($nbr_line - $end_line )) >> $TMP_FILE + cp -f $PATH_COURIER_CONF_PATH/authdaemonrc $PATH_COURIER_CONF_PATH/authdaemonrc.DTC.removed + echo -n > $PATH_COURIER_CONF_PATH/authdaemonrc + cat < $TMP_FILE >> $PATH_COURIER_CONF_PATH/authdaemonrc + rm $TMP_FILE +fi +# +# uninstall dovecot.conf +# + +if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "===> Uninstalling inclusion from dovecot.conf" +fi +if grep "Configured by DTC" $PATH_DOVECOT_CONF >/dev/null 2>&1 +then + start_line=`grep -n "Configured by DTC" $PATH_DOVECOT_CONF | cut -d":" -f1` + end_line=`grep -n "End of DTC configuration" $PATH_DOVECOT_CONF| cut -d":" -f1` + nbr_line=`cat $PATH_DOVECOT_CONF | wc -l` + TMP_FILE=`${MKTEMP} DTC_uninstall.dovecot.conf.XXXXXX` || exit 1 + cat $PATH_DOVECOT_CONF | head -n $(($start_line - 1 )) > $TMP_FILE + cat $PATH_DOVECOT_CONF | tail -n $(($nbr_line - $end_line )) >> $TMP_FILE + cp -f $PATH_DOVECOT_CONF $PATH_DOVECOT_CONF.DTC.removed + echo -n > $PATH_DOVECOT_CONF + cat < $TMP_FILE >> $PATH_DOVECOT_CONF + rm $TMP_FILE +fi +# # uninstall proftpd.conf # -echo "===> Uninstalling inclusion from proftpd.conf" -if grep "Configured by DTC" $PATH_PROFTPD_CONF +if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "===> Uninstalling inclusion from proftpd.conf" +fi +if grep "Configured by DTC" $PATH_PROFTPD_CONF >/dev/null 2>&1 then start_line=`grep -n "Configured by DTC" $PATH_PROFTPD_CONF | cut -d":" -f1` end_line=`grep -n "End of DTC configuration" $PATH_PROFTPD_CONF| cut -d":" -f1` nbr_line=`cat $PATH_PROFTPD_CONF | wc -l` - cat $PATH_PROFTPD_CONF | head -n $(($start_line - 1 )) >/tmp/DTC_uninstall.profptd.conf - cat $PATH_PROFTPD_CONF | tail -n $(($nbr_line - $end_line )) >>/tmp/DTC_uninstall.profptd.conf + TMP_FILE=`${MKTEMP} DTC_uninstall.proftpd.conf.XXXXXX` || exit 1 + cat $PATH_PROFTPD_CONF | head -n $(($start_line - 1 )) > $TMP_FILE + cat $PATH_PROFTPD_CONF | tail -n $(($nbr_line - $end_line )) >> $TMP_FILE cp -f $PATH_PROFTPD_CONF $PATH_PROFTPD_CONF.DTC.removed - mv /tmp/DTC_uninstall.profptd.conf $PATH_PROFTPD_CONF + echo -n > $PATH_PROFTPD_CONF + cat < $TMP_FILE >> $PATH_PROFTPD_CONF + rm $TMP_FILE fi # -# Uninstall qmail +# uninstall postfix/main.cf # -echo "===> Uninstalling from qmail" -#if ! [ -f $PATH_QMAIL_CTRL/rcpthosts.DTC.backup ] ; then -# rm -f $PATH_QMAIL_CTRL/rcpthosts -# mv -f $PATH_QMAIL_CTRL/rcpthosts.DTC.backup $PATH_QMAIL_CTRL/rcpthosts -#fi +if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "===> Uninstalling inclusion from postfix/main.cf" +fi +if grep "Configured by DTC" $PATH_POSTFIX_CONF >/dev/null 2>&1 +then + start_line=`grep -n "Configured by DTC" $PATH_POSTFIX_CONF | cut -d":" -f1` + end_line=`grep -n "End of DTC configuration" $PATH_POSTFIX_CONF| cut -d":" -f1` + nbr_line=`cat $PATH_POSTFIX_CONF | wc -l` + TMP_FILE=`${MKTEMP} DTC_uninstall.postfix.conf.XXXXXX` || exit 1 + cat $PATH_POSTFIX_CONF | head -n $(($start_line - 1 )) > $TMP_FILE + cat $PATH_POSTFIX_CONF | tail -n $(($nbr_line - $end_line )) >> $TMP_FILE + cp -f $PATH_POSTFIX_CONF $PATH_POSTFIX_CONF.DTC.removed + echo -n > $PATH_POSTFIX_CONF + cat < $TMP_FILE >> $PATH_POSTFIX_CONF + rm $TMP_FILE +fi + +# +# uninstall amavis/amavisd.conf +# + +if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "===> Uninstalling inclusion from amavis/amavisd.conf" +fi +if grep "Configured by DTC" $PATH_AMAVISD_CONF >/dev/null 2>&1 +then + start_line=`grep -n "Configured by DTC" $PATH_AMAVISD_CONF | cut -d":" -f1` + end_line=`grep -n "End of DTC configuration" $PATH_AMAVISD_CONF| cut -d":" -f1` + nbr_line=`cat $PATH_AMAVISD_CONF | wc -l` + TMP_FILE=`${MKTEMP} DTC_uninstall.amavisd.conf.XXXXXX` || exit 1 + cat $PATH_AMAVISD_CONF | head -n $(($start_line - 1 )) > $TMP_FILE + cat $PATH_AMAVISD_CONF | tail -n $(($nbr_line - $end_line )) >> $TMP_FILE + cp -f $PATH_AMAVISD_CONF $PATH_AMAVISD_CONF.DTC.removed + echo -n > $PATH_AMAVISD_CONF + cat < $TMP_FILE >> $PATH_AMAVISD_CONF + rm $TMP_FILE +fi + +# +# uninstall postfix/sasl/smtpd.conf +# + +if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "===> Uninstalling inclusion from postfix/sasl/smtpd.conf" +fi +if grep "Configured by DTC" $PATH_POSTFIX_ETC/sasl/smtpd.conf >/dev/null 2>&1 +then + start_line=`grep -n "Configured by DTC" $PATH_POSTFIX_ETC/sasl/smtpd.conf | cut -d":" -f1` + end_line=`grep -n "End of DTC configuration" $PATH_POSTFIX_ETC/sasl/smtpd.conf | cut -d":" -f1` + nbr_line=`cat $PATH_POSTFIX_ETC/sasl/smtpd.conf | wc -l` + TMP_FILE=`${MKTEMP} DTC_uninstall.postfix.sasl.XXXXXX` || exit 1 + cat $PATH_POSTFIX_ETC/sasl/smtpd.conf | head -n $(($start_line - 1 )) > $TMP_FILE + cat $PATH_POSTFIX_ETC/sasl/smtpd.conf | tail -n $(($nbr_line - $end_line )) >> $TMP_FILE + cp -f $PATH_POSTFIX_ETC/sasl/smtpd.conf $PATH_POSTFIX_CONF.DTC.removed + echo -n > $PATH_POSTFIX_ETC/sasl/smtpd.conf + cat < $TMP_FILE >> $PATH_POSTFIX_ETC/sasl/smtpd.conf + rm $TMP_FILE +fi + +# +# Uninstall qmail +# -if ! [ -f $PATH_QMAIL_CTRL/virtualdomains.DTC.backup ] ; then - rm -f $PATH_QMAIL_CTRL/virtualdomains.DTC.backup - mv -f $PATH_QMAIL_CTRL/virtualdomains.DTC.backup $PATH_QMAIL_CTRL/virtualdomains +if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "===> Uninstalling from qmail" fi +if [ -e /var/qmail ] +then + if [ -e /var/qmail/control/rcpthosts.DTC.backup ] ; then + cp -f /var/qmail/control/rcpthosts.DTC.backup /var/qmail/control/rcpthosts + fi + + if [ -e /var/qmail/control/virtualdomains.DTC.backup ] ; then + cp -f /var/qmail/control/virtualdomains.DTC.backup /var/qmail/control/virtualdomains + fi -#if ! [ -f $PATH_QMAIL_CTRL/users/assign.DTC.backup ] ; then -# rm -f $PATH_QMAIL_CTRL/users/assign.DTC.backup -# mv -f $PATH_QMAIL_CTRL/users/assign.DTC.backup $PATH_QMAIL_CTRL/users/assign -#fi + if [ -e /var/qmail/control/users/assign.DTC.backup ] ; then + cp -f /var/qmail/control/users/assign.DTC.backup /var/qmail/control/users/assign + fi -if ! [ -f /etc/poppasswd.DTC.backup ] ; then - rm -f /etc/poppasswd.DTC.backup - mv -f/etc/poppasswd.DTC.backup /etc/poppasswd + if [ -e /etc/poppasswd.DTC.backup ] ; then + cp -f /etc/poppasswd.DTC.backup /etc/poppasswd + fi fi diff --git a/sysutils/dtc/files/dtc-install.in b/sysutils/dtc/files/dtc-install.in index d6d60ce6e109..316a85e973f3 100644 --- a/sysutils/dtc/files/dtc-install.in +++ b/sysutils/dtc/files/dtc-install.in @@ -7,10 +7,12 @@ PREFIX=%%PREFIX%% LOCALBASE=%%LOCALBASE%% -QMAIL_PREFIX=%%QMAIL_PREFIX%% +QMAIL_DIR=%%QMAIL_DIR%% UNIX_TYPE=freebsd +VERBOSE_INSTALL=yes + echo "###############################################################" echo "### Welcome to DTC config script for automatic installation ###" echo "###############################################################" @@ -28,38 +30,59 @@ echo "If you didn't setup a root password before," echo "DTC can do it of you (later on this script)." echo -n 'MySQL hostname [localhost]: ' read conf_mysql_host -if [ $conf_mysql_host == ""]; +if [ "$conf_mysql_host" = "" ]; then conf_mysql_host="localhost" fi echo -n 'MySQL root login [root]: ' read conf_mysql_login -if [ $conf_mysql_login == ""]; +if [ "$conf_mysql_login" = "" ]; then conf_mysql_login="root" fi +echo "This is the password you want to be used after" +echo "this script is finished (not the old pass)." echo -n 'MySQL root password []: ' read conf_mysql_pass echo "" echo "Do you want that DTC setup this password" -echo "for you ? (eg: UPDATE user SET Password...)" +echo "for you ? (eg: UPDATE user SET Password=PASSWORD('XXX')...)" echo -n 'Setup the mysql password [Ny]: ' read conf_mysql_change_root -if [ $conf_mysql_change_root == ""]; +if [ ""$conf_mysql_change_root = "y" ]; then - echo "Skinping MySQL password root change!" -else echo "===> Changing MySQL Root password" - echo "If you didn't setup a root pass for mysqld, just hit ENTER." + echo "MySQL will now prompt your for the password to connect to" + echo "the database. This is the OLD password that was there before" + echo "you launched this script. If you didn't setup a root pass for" + echo "mysqld, just hit ENTER to use empty pass." mysql -u$conf_mysql_login -p -h$conf_mysql_host -Dmysql --execute="UPDATE user SET Password=PASSWORD('"$conf_mysql_pass"') WHERE User='root'; FLUSH PRIVILEGES;"; +else + echo "Skinping MySQL password root change!" +fi + +echo "" +echo "What MTA (Mail Tranport Agent, the one that" +echo "will route and deliver your incoming mail) do" +echo "you wish to use with DTC ? Type q for qmail" +echo "or type p for postfix." +echo -n 'MTA type (Qmail or Postfix) [Q/p]: ' +read conf_mta_type +if [ "$conf_mta_type" = "p" ]; +then + conf_mta_type=postfix + echo "Postfix will be used" +else + conf_mta_type=qmail + echo "Qmail will be used" fi echo -n 'Choose a DB name for DTC [dtc]: ' read conf_mysql_db -if [ $conf_mysql_db == ""]; +if [ "$conf_mysql_db" = "" ]; then conf_mysql_db="dtc" fi @@ -82,7 +105,7 @@ echo -n 'Subdomain for DTC admin panel [dtc]: ' read dtc_admin_subdomain -if [ $dtc_admin_subdomain == ""]; +if [ "$dtc_admin_subdomain" = "" ]; then dtc_admin_subdomain="dtc" fi @@ -92,25 +115,66 @@ echo "I need now your host information for apache !" echo -n "What is your IP addresse ? [ 127.0.0.1 ]: " read conf_ip_addr -if [ $conf_ip_addr == ""]; +if [ "$conf_ip_addr" = "" ]; then conf_ip_addr="127.0.0.1" fi echo "" +echo " Do you want that DTC generates apache file to use" +echo "a LAN IP address that your server is using?" +echo "If your server is in the LAN behind a firewall" +echo "that does NAT and port redirections of the public IP(s)" +echo "address(es) to your server, then you must say YES" +echo "here, otherwise (if your server is connected directly" +echo "to the internet with a public static IP) leave it to NO." +echo -n "Use NATed vhosts ? [N/y]: " +read conf_use_nated_vhosts + +if [ ""$conf_use_nated_vhosts = "y" -o ""$conf_use_nated_vhosts = "Y" -o ""$conf_use_nated_vhosts = "yes"]; then + conf_use_nated_vhosts = "yes"; +else + conf_use_nated_vhosts = "no"; +fi + +echo "" +echo " Please enter the LAN IP of your server if you said" +echo "yes to use nated vhosts. Ignore otherwise." +echo -n "IP address of your server if in the LAN [192.168.0.2]: " +read conf_nated_vhost_ip +if [ ""$conf_nated_vhosts_ip = "" ]; then + conf_nated_vhosts_ip = "192.168.0.2" +fi + + +echo "" echo "Where will you keep your files for hosting ?" echo -n "Hosting path [/var/www/sites]: " read conf_hosting_path -if [ $conf_hosting_path == ""]; +if [ "$conf_hosting_path" = "" ]; then conf_hosting_path="/var/www/sites" fi echo "" +echo "Path where to build the chroot environment." +echo "Where do you want DTC to build the cgi-bin chroot" +echo "environment? Please note that DTC will do hardlinks" +echo "to that directory, so the chroot path should be in" +echo "the same logical device as the path for hosted" +echo "domains files." +echo -n "Chroot path [/var/www/chroot]: " +read conf_chroot_path +if [ "$conf_chroot_path" = "" ]; +then + conf_chroot_path="/var/www/chroot" +fi + +echo "" echo "What admin login/pass do you want for the administration of "$main_domain_name "?" echo -n "Login [dtc]: " read conf_adm_login -if [ $conf_adm_login == ""]; +if [ "$conf_adm_login" = "" ]; then conf_adm_login="dtc" fi @@ -120,7 +184,14 @@ read conf_adm_pass # Deamon path configuration echo "### DEAMON PATH CONFIGURATION ###" -PATH_HTTPD_CONF="${LOCALBASE}/etc/apache/httpd.conf" +if [ -f "${LOCALBASE}/etc/apache/httpd.conf" ] ;then + PATH_HTTPD_CONF="${LOCALBASE}/etc/apache/httpd.conf" +elif [ -f "${LOCALBASE}/etc/apache2/httpd.conf" ] ;then + PATH_HTTPD_CONF="${LOCALBASE}/etc/apache2/httpd.conf" +else + echo "Could not found your httpd.conf: exiting." + exit 1 +fi PATH_NAMED_CONF="/etc/namedb/named.conf" # Copy default conf if no conf exists (BSD specific) if [ ! -f ${LOCALBASE}/etc/proftpd.conf ]; @@ -128,14 +199,30 @@ then cp ${LOCALBASE}/etc/proftpd.conf.default ${LOCALBASE}/etc/proftpd.conf fi PATH_PROFTPD_CONF="${LOCALBASE}/etc/proftpd.conf" -PATH_QMAIL_CTRL="${QMAIL_PREFIX}/control" +PATH_DOVECOT_CONF="${LOCALBASE}/etc/dovecot.conf" +PATH_COURIER_CONF_PATH="${LOCALBASE}/etc/courier" +PATH_POSTFIX_CONF="${LOCALBASE}/etc/postfix/main.cf" +PATH_POSTFIX_ETC="${LOCALBASE}/etc/postfix" +PATH_SASL_PASSWD2="${LOCALBASE}/sbin/saslpasswd2" +PATH_MAILDROP_BIN="${LOCALBASE}/bin/maildrop" +PATH_USERDB_BIN="${LOCALBASE}/sbin/userdb" +PATH_QMAIL_CTRL="${QMAIL_DIR}/control" PATH_PHP_CGI="${LOCALBASE}/bin/php" +FREERADIUS_ETC="${LOCALBASE}/etc/raddb" PATH_DTC_SHARED="${PREFIX}/www/dtc" +PATH_CRONTAB_CONF=/etc/crontab +PATH_AWSTATS_ETC=${LOCALBASE}/etc/awstats +MYSQL_DB_SOCKET_PATH="/tmp/mysqld.sock" PATH_DTC_ETC=$PATH_DTC_SHARED"/etc" PATH_DTC_ADMIN=$PATH_DTC_SHARED"/admin" PATH_DTC_CLIENT=$PATH_DTC_SHARED"/client" +USER_ADD_CMD=useradd +USER_ADD_CMD=groupadd +USER_MOD_CMD=usermod +PASSWD_CMD=passwd + echo "" echo "" echo "" @@ -157,8 +244,13 @@ echo "DTC pass: "$conf_adm_pass echo "httpd.conf: "$PATH_HTTPD_CONF echo "named.conf: "$PATH_NAMED_CONF echo "proftpd.conf: "$PATH_PROFTPD_CONF +echo "dovecot.conf: "$PATH_DOVECOT_CONF +echo "Courier authdaemonrc: "$PATH_COURIER_CONF_PATH +echo "postfix/main.cf: "$PATH_POSTFIX_CONF echo "qmail control: "$PATH_QMAIL_CTRL echo "php4 cgi: "$PATH_PHP_CGI +echo "Freeradius sql.conf and rad.conf folder: "$FREERADIUS_ETC +echo "Awstats awstats.conf folder: "$PATH_AWSTATS_ETC echo "generated files: "$PATH_DTC_ETC echo "" echo "" @@ -166,8 +258,7 @@ echo "" echo -n 'Confirm and install DTC ? [Ny]:' read valid_infos -read valid_infos1 -if [ "$valid_infos1" = "y" ]; +if [ "$valid_infos" = "y" ]; then echo "Installation has started..." else @@ -203,7 +294,7 @@ if [ $kernel = "OpenBSD" ]; then flag=`grep named_flags=\"-c /etc/rc.conf` echo "conf $flag" - if [ "$flag" == "" ]; + if [ "$flag" = "" ]; then echo "===> OpenBSD: Backing up /etc/rc.conf and insterting named_flags=\"-c /etc/named.conf\"" echo "/etc/rc.conf no named" @@ -232,9 +323,34 @@ then echo "conf done" fi +# Copy dist file if no php.ini is there yet... +if [ -e /usr/local/etc/php.ini-dist ] ; then + if ! [ -e /usr/local/etc/php.ini ] ; then + cp /usr/local/etc/php.ini-dist /usr/local/etc/php.ini + fi +fi +# Check for pear in include path +if [ -f /usr/local/share/pear/PEAR.php ] ;then + if [ -e /usr/local/etc/php.ini ] ; then + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "Checking include_path=/usr/local/share/pear in php.ini" + fi + if grep include_path /usr/local/etc/php.ini | grep /usr/local/share/pear > /dev/null + then + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "Seems ok: skiping include_path insertion in php.ini" + fi + else + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "Your php.ini doesn't has pear in it's inc path: changin!" + fi + echo "include_path = \".:/usr/local/share/pear\"" >>/usr/local/etc/php.ini + fi + fi +fi # Multi OS (Unix system) DATABASE setup sh script for DTC -# Written by Thomas GOIRAND <thomas@goirand.fr> +# Written by Thomas GOIRAND <thomas [ at ] goirand.fr> # under LGPL Licence # The configuration for all thoses variables must be written BEFORE this @@ -266,60 +382,263 @@ fi # "Hosting path: "$conf_hosting_path # $PATH_DTC_ETC & $PATH_DTC_SHARED -echo "==> Creating directory for hosting "$main_domain_name -mkdir -p $conf_hosting_path"/"$conf_adm_login"/"$main_domain_name"/"$dtc_admin_subdomain"/www/html" -mkdir -p $conf_hosting_path"/"$conf_adm_login"/"$main_domain_name"/"$dtc_admin_subdomain"/www/logs" -mkdir -p $conf_hosting_path"/"$conf_adm_login"/"$main_domain_name"/"$dtc_admin_subdomain"/www/cgi-bin" +if [ -z "$MKTEMP" ] ; then + MKTEMP="mktemp -t" +fi + +if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "DTC is configuring your services: please wait..." + echo "DTC installer is in VERBOSE mode" +else + echo -n "DTC is configuring your services: please wait..." +fi + +# Create hosting directories for main site +if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "==> Creating directory for hosting "$main_domain_name +fi +mkdir -p $conf_hosting_path"/"$conf_adm_login"/"$main_domain_name"/subdomains/"$dtc_admin_subdomain"/html" +mkdir -p $conf_hosting_path"/"$conf_adm_login"/"$main_domain_name"/subdomains/"$dtc_admin_subdomain"/logs" +mkdir -p $conf_hosting_path"/"$conf_adm_login"/"$main_domain_name"/subdomains/"$dtc_admin_subdomain"/cgi-bin" mkdir -p $conf_hosting_path"/"$conf_adm_login"/"$main_domain_name"/subdomains/www/html" mkdir -p $conf_hosting_path"/"$conf_adm_login"/"$main_domain_name"/subdomains/www/logs" mkdir -p $conf_hosting_path"/"$conf_adm_login"/"$main_domain_name"/subdomains/www/cgi-bin" +mkdir -p $conf_hosting_path"/"$conf_adm_login"/"$main_domain_name"/subdomains/404/html" +mkdir -p $conf_hosting_path"/"$conf_adm_login"/"$main_domain_name"/subdomains/404/logs" +mkdir -p $conf_hosting_path"/"$conf_adm_login"/"$main_domain_name"/subdomains/404/cgi-bin" mkdir -p $conf_hosting_path"/"$conf_adm_login"/"$main_domain_name"/Mailboxs" mkdir -p $conf_hosting_path"/"$conf_adm_login"/"$main_domain_name"/mysql" -mkdir -p $conf_hosting_path"/"$conf_adm_login"/"$main_domain_name"/subdomains/dtc/html" -mkdir -p $conf_hosting_path"/"$conf_adm_login"/"$main_domain_name"/subdomains/dtc/logs" -mkdir -p $conf_hosting_path"/"$conf_adm_login"/"$main_domain_name"/subdomains/dtc/cgi-bin" +ADMIN_HOME=$conf_hosting_path"/"$conf_adm_login"/"$main_domain_name"/subdomains/"$dtc_admin_subdomain"/html" +if ! [ -e $ADMIN_HOME"/index.php" ] ;then + cp $PATH_DTC_SHARED"/shared/default_admin_site.php" $ADMIN_HOME"/index.php" + if ! [ -e $ADMIN_HOME"/dtc_logo.gif" ] ;then + cp $PATH_DTC_SHARED"/shared/template/dtc_logo.gif" $ADMIN_HOME + fi + if ! [ -e $ADMIN_HOME"/favicon.ico" ] ;then + cp $PATH_DTC_SHARED"/shared/template/favicon.ico" $ADMIN_HOME + fi +fi -chown -R nobody:nogroup $conf_hosting_path +# Copy a template site to the new main site +MAINSITE_HOME=$conf_hosting_path"/"$conf_adm_login"/"$main_domain_name"/subdomains/www/html" +if ! [ -e $MAINSITE_HOME"/index.php" ] ;then + if ! [ -e $MAINSITE_HOME"/index.html" ] ;then + cp $PATH_DTC_SHARED"/shared/template/index.php" $MAINSITE_HOME + if ! [ -e $MAINSITE_HOME"/dtc_logo.gif" ] ;then + cp $PATH_DTC_SHARED"/shared/template/dtc_logo.gif" $MAINSITE_HOME + fi + fi +fi -echo "==> DTC is now creating it's database:" -if [ $conf_mysql_pass == ""]; +if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo chown -R nobody:65534 $conf_hosting_path +fi +chown -R nobody:65534 $conf_hosting_path + +if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "==> DTC is now creating it's database:" +fi +# Added for MacOS X support with mysql not in the path... +if [ ""$conf_mysql_cli_path = "" ] ;then + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "mysql_cli_path is not set" + fi + conf_mysql_cli_path="mysql"; +fi +if [ ""$conf_mysqlshow_cli_path = "" ] ;then + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "mysqlshow_cli_path is not set" + fi + conf_mysqlshow_cli_path="mysqlshow"; +fi +if [ "$conf_mysql_pass" = "" ]; then - MYSQL="mysql" + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "Setting up mysql cli "$conf_mysql_cli_path" without password" + fi + MYSQL=""$conf_mysql_cli_path + MYSQLSOW=$conf_mysqlshow_cli_path else - MYSQL="mysql -p${conf_mysql_pass}" + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "Setting up mysql cli with password" + fi +# MYSQL=""$conf_mysql_cli_path "-p"$conf_mysql_pass + MYSQL=$conf_mysql_cli_path" -p${conf_mysql_pass}" + MYSQLSHOW=$conf_mysqlshow_cli_path" -p${conf_mysql_pass}" fi create_tables=$PATH_DTC_SHARED"/admin/tables" curdir=`pwd` -echo "If not exists, create DTC's database name: "$conf_mysql_db +if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "If not exists, create DTC's database name: "$conf_mysql_db +fi $MYSQL -u$conf_mysql_login -h$conf_mysql_host --execute="CREATE DATABASE IF NOT EXISTS "$conf_mysql_db -echo "Creating apachelogs database: apachelogs" +if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "Creating apachelogs database: apachelogs" +fi $MYSQL -u$conf_mysql_login -h$conf_mysql_host --execute="CREATE DATABASE IF NOT EXISTS apachelogs" + cd $create_tables -echo -n "DTC is now creating table if not exists: " +if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo -n "DTC is now creating table if not exists: " +fi for i in $( ls *.sql ); do table_name=`echo $i | cut -f1 -d"."` - echo -n $table_name" " + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo -n $table_name" " + fi table_create=`cat $i` -# $MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="DROP TABLE IF EXISTS "$table_name $MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db <$i done -echo "done." - -echo "Inserting values in mysql for hosting "$main_domain_name +if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "done." +fi +#echo $PATH_PHP_CGI $PATH_DTC_ADMIN/restor_db.php -u $conf_mysql_login -h $conf_mysql_host -d $conf_mysql_db $conf_mysql_pass +if [ ""$VERBOSE_INSTALL = "yes" ] ;then + cd $PATH_DTC_ADMIN; $PATH_PHP_CGI $PATH_DTC_ADMIN/restor_db.php -u $conf_mysql_login -h $conf_mysql_host -d $conf_mysql_db "$conf_mysql_pass" +else + cd $PATH_DTC_ADMIN; $PATH_PHP_CGI $PATH_DTC_ADMIN/restor_db.php -u $conf_mysql_login -h $conf_mysql_host -d $conf_mysql_db "$conf_mysql_pass" >/dev/null +fi +if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "Inserting values in mysql for hosting "$main_domain_name +fi $MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="INSERT IGNORE INTO groups (members) VALUES ('zigo')" $MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="INSERT IGNORE INTO admin (adm_login,adm_pass,path) VALUES ('"$conf_adm_login"','"$conf_adm_pass"','"$conf_hosting_path"/"$conf_adm_login"')" $MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="INSERT IGNORE INTO domain (name,owner,default_subdomain,generate_flag,ip_addr) VALUES ('"$main_domain_name"','"$conf_adm_login"','www','yes','"$conf_ip_addr"')" $MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="INSERT IGNORE INTO subdomain (domain_name,subdomain_name,path) VALUES ('"$main_domain_name"','www','www')" +$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="INSERT IGNORE INTO subdomain (domain_name,subdomain_name,path) VALUES ('"$main_domain_name"','404','404')" $MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="INSERT IGNORE INTO subdomain(domain_name,subdomain_name,ip) VALUES ('"$main_domain_name"','ns1','$conf_ip_addr')" $MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="INSERT IGNORE INTO subdomain(domain_name,subdomain_name,ip) VALUES ('"$main_domain_name"','mx','$conf_ip_addr')" $MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="INSERT IGNORE INTO subdomain (domain_name,subdomain_name,path) VALUES ('"$main_domain_name"','"$dtc_admin_subdomain"','www')" -$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="INSERT IGNORE INTO config (unicrow,demo_version,main_site_ip,site_addrs,addr_mail_server,webmaster_email_addr,addr_primary_dns,administrative_site,site_root_host_path,generated_file_path,dtcshared_path,dtcadmin_path,dtcclient_path) VALUES('1','no','"$conf_ip_addr"','"$conf_ip_addr"','mx."$main_domain_name"','webmaster@"$main_domain_name"','ns1."$main_domain_name"','"$dtc_admin_subdomain"."$main_domain_name"','"$conf_hosting_path"','"$PATH_DTC_ETC"','"$PATH_DTC_SHARED"','"$PATH_DTC_ADMIN"','"$PATH_DTC_CLIENT"')" +$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="INSERT IGNORE INTO config (unicrow,demo_version,main_site_ip,site_addrs,addr_mail_server,webmaster_email_addr,addr_primary_dns,administrative_site,site_root_host_path,generated_file_path,dtcshared_path,dtcadmin_path,dtcclient_path,mta_type,main_domain,404_subdomain) VALUES('1','no','"$conf_ip_addr"','"$conf_ip_addr"','mx."$main_domain_name"','webmaster@"$main_domain_name"','ns1."$main_domain_name"','"$dtc_admin_subdomain"."$main_domain_name"','"$conf_hosting_path"','"$PATH_DTC_ETC"','"$PATH_DTC_SHARED"','"$PATH_DTC_ADMIN"','"$PATH_DTC_CLIENT"','"$conf_mta_type"','"$main_domain_name"','404')" $MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="INSERT IGNORE INTO cron_job (unicrow,reload_named,restart_apache,gen_vhosts,gen_named) VALUES ('1','yes','yes','yes','yes')" +$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="INSERT IGNORE INTO secpayconf (unicrow,use_paypal,paypal_rate,paypal_flat,paypal_autovalidate,paypal_email) VALUES ('1','yes','3.21','0.50','no','webmaster@"$main_domain_name"')" + +# Regenerate the "main" domain on each installs... +$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="UPDATE domain SET generate_flag='yes' WHERE name='"$main_domain_name"'" + +# This one is in case of reinstalltion, so the installer has prority to old values +$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="UPDATE config SET main_site_ip='"$conf_ip_addr"',administrative_site='"$dtc_admin_subdomain"."$main_domain_name"',site_root_host_path='"$conf_hosting_path"',generated_file_path='"$PATH_DTC_ETC"',mta_type='"$conf_mta_type"',main_domain='"$main_domain_name"',404_subdomain='404' WHERE 1" +$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="UPDATE cron_job SET qmail_newu='yes',restart_qmail='yes',gen_qmail='yes',reload_named='yes',restart_apache='yes',gen_vhosts='yes',gen_named='yes' WHERE 1" +$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="UPDATE config SET php_library_path='/usr/lib/php:/tmp:/usr/share/pear:$PATH_DTC_ETC/dtc404' WHERE 1" +$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="UPDATE domain SET ip_addr='"$conf_ip_addr"', generate_flag='yes' WHERE name='"$main_domain_name"'" + +# Here are some DB maintainance for old DTC versions +$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="ALTER TABLE subdomain CHANGE ip ip VARCHAR(255) DEFAULT 'default' NOT NULL" +$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="ALTER TABLE ftp_access CHANGE homedir homedir VARCHAR(255) DEFAULT '' NOT NULL" +$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="ALTER TABLE pop_access CHANGE crypt crypt VARCHAR(255) DEFAULT '' NOT NULL" +$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="ALTER TABLE pop_access CHANGE passwd passwd VARCHAR(255) DEFAULT '' NOT NULL" +$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="UPDATE pop_access SET crypt=ENCRYPT(passwd,CONCAT(\"\$1\$\",SUBSTRING(crypt,4,8)))" + +# Add dtc userspace info to mysql db if it's not there +TMP_FILE=`${MKTEMP} dtc_downer_grep.XXXXXXXX` || exit 1 +$MYSQL -u$conf_mysql_login -h$conf_mysql_host -Dmysql --execute="DESCRIBE user dtcowner" >${TMP_FILE} +if ! grep dtcowner ${TMP_FILE} 2>&1 >/dev/null ;then + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "Adding dtcowner column to mysql.user" + fi + $MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="ALTER IGNORE TABLE mysql.user ADD dtcowner varchar (255) DEFAULT 'none' NOT NULL" +fi +if [ -e ${TMP_FILE} ] ;then + rm ${TMP_FILE} +fi + +# 2005/05/05 Remove bad keys preventing good accounting set in old dtc versions +# This needs to be fixed with no error. Any idea??? +#$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="ALTER IGNORE TABLE smtp_logs DROP INDEX sender_domain" +#$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="ALTER IGNORE TABLE smtp_logs DROP INDEX delivery_domain" +#$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="ALTER IGNORE TABLE smtp_logs DROP INDEX delivery_id_text" +#$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="ALTER IGNORE TABLE smtp_logs DROP INDEX delivery_id_text_2" +#$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="ALTER IGNORE TABLE http_accounting DROP INDEX month" +#$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="ALTER IGNORE TABLE email_accounting DROP INDEX sender_domain" +#$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="ALTER IGNORE TABLE email_accounting DROP INDEX delivery_domain" + +# Add a fullemail field to the pop table if not exists. +TMP_FILE=`${MKTEMP} dtc_pop_access_grep.XXXXXXXX` || exit 1 +$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="DESCRIBE pop_access fullemail" >${TMP_FILE} +if ! grep fullemail ${TMP_FILE} 2>&1 >/dev/null ;then + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "Adding fullemail column to dtc.pop_access and updating id@mbox_host field." + fi + if $MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="ALTER IGNORE TABLE pop_access ADD fullemail varchar (255) DEFAULT 'none' NOT NULL" ; then + echo "plop !" + fi + $MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="UPDATE pop_access SET fullemail = concat( id, \"@\", mbox_host )" +fi +if [ -e ${TMP_FILE} ] ;then + rm ${TMP_FILE} +fi + +# Add a dtc user to the mysql db, generate a password randomly if no password is there already +# Using a file to remember password... +PATH_DB_PWD_FILE=${PATH_DTC_ETC}/dtcdb_passwd +if ! [ -e ""${PATH_DB_PWD_FILE} ] ;then + MYSQL_DTCDAEMONS_PASS=`echo ${RANDOM}${RANDOM}` + echo ${MYSQL_DTCDAEMONS_PASS} >${PATH_DB_PWD_FILE} +else + MYSQL_DTCDAEMONS_PASS=`cat <${PATH_DB_PWD_FILE}` +fi +if [ -z "${MYSQL_DTCDAEMONS_PASS}" ] ;then + MYSQL_DTCDAEMONS_PASS=${RANDOM}${RANDOM} + echo ${MYSQL_DTC_PASS} >${PATH_DB_PWD_FILE} +fi + +chmod 600 ${PATH_DB_PWD_FILE} + +# Inserting the user +$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="INSERT IGNORE INTO mysql.user (Host, User, Password, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Reload_priv, Shutdown_priv, Process_priv, File_priv, Grant_priv, References_priv, Index_priv, Alter_priv) VALUES ('localhost', 'dtcdaemons', PASSWORD('"${MYSQL_DTCDAEMONS_PASS}"'), 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N')" + +# Update the password in case of (bad) reinstallation case +$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="UPDATE mysql.user SET Password=PASSWORD('"${MYSQL_DTCDAEMONS_PASS}"') WHERE User='dtcdaemons'" + +# grant Select,Insert,Update,Delete,References,Index to ftp_access +$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="INSERT IGNORE INTO mysql.tables_priv (Host, Db, User, Table_name, Grantor, Timestamp, Table_priv, Column_priv) VALUES ('localhost', 'dtc', 'dtcdaemons', 'ftp_access', '', NOW(NULL), 'Select,Insert,Update,Delete,References,Index', 'Select')" + +# grant Select,Insert,Update,Delete,References,Index to ftp_access +$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="INSERT IGNORE INTO mysql.tables_priv (Host, Db, User, Table_name, Grantor, Timestamp, Table_priv, Column_priv) VALUES ('localhost', 'dtc', 'dtcdaemons', 'groups', '', NOW(NULL), 'Select,Insert,Update,Delete,References,Index', 'Select')" + +# grant Select,Insert,Update,Delete,References,Index to ftp_logs +$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="INSERT IGNORE INTO mysql.tables_priv (Host, Db, User, Table_name, Grantor, Timestamp, Table_priv, Column_priv) VALUES ('localhost', 'dtc', 'dtcdaemons', 'ftp_logs', '', NOW(NULL), 'Select,Insert,Update,Delete,References,Index', '')" + +# grant Select,Insert,Update,Delete,References,Index to ftp_accounting +$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="INSERT IGNORE INTO mysql.tables_priv (Host, Db, User, Table_name, Grantor, Timestamp, Table_priv, Column_priv) VALUES ('localhost', 'dtc', 'dtcdaemons', 'ftp_accounting', '', NOW(NULL), 'Select,Insert,Update,Delete,References,Index', '')" + +# grant all to apachelogs +$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="INSERT IGNORE INTO mysql.db (Host, Db, User, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv, Grant_priv, References_priv, Index_priv, Alter_priv) VALUES ('localhost', 'apachelogs', 'dtcdaemons', 'Y', 'Y', 'Y', 'Y', 'Y', 'Y', 'N', 'Y', 'Y', 'Y')" + +# grant select to pop_access +$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="INSERT IGNORE INTO mysql.tables_priv (Host, Db, User, Table_name, Grantor, Timestamp, Table_priv, Column_priv) VALUES ('localhost', 'dtc', 'dtcdaemons', 'pop_access', '', NOW(NULL), 'Select,Update', 'Select,Update')" +# update in case of old installations +$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="UPDATE IGNORE mysql.tables_priv SET Timestamp = NOW(NULL) , Table_priv = 'Select,Update', Column_priv = 'Select,Update' WHERE Host = 'localhost' AND Db = 'dtc' AND User = 'dtcdaemons' AND Table_name = 'pop_access' LIMIT 1 " +#$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="GRANT SELECT , UPDATE ( crypt , passwd ) ON dtc.pop_access TO 'dtcdaemons'@'localhost'" + +# grant Select,Insert,Update,Delete,References,Index to smtp_logs +$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="INSERT IGNORE INTO mysql.tables_priv (Host, Db, User, Table_name, Grantor, Timestamp, Table_priv, Column_priv) VALUES ('localhost', 'dtc', 'dtcdaemons', 'smtp_logs', '', NOW(NULL), 'Select,Insert,Update,Delete,References,Index', '')" + +# grant select to whitelist +$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="INSERT IGNORE INTO mysql.tables_priv (Host, Db, User, Table_name, Grantor, Timestamp, Table_priv, Column_priv) VALUES ('localhost', 'dtc', 'dtcdaemons', 'whitelist', '', NOW(NULL), 'Select', 'Select')" + +# grant select to fetchmail +$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="INSERT IGNORE INTO mysql.tables_priv (Host, Db, User, Table_name, Grantor, Timestamp, Table_priv, Column_priv) VALUES ('localhost', 'dtc', 'dtcdaemons', 'fetchmail', '', NOW(NULL), 'Select', 'Select')" + +$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="FLUSH PRIVILEGES" + +# Setup good values depending on Unix distribution +$MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="UPDATE config SET dtcadmin_path='${PATH_DTC_ADMIN}', dtcclient_path='${PATH_DTC_CLIENT}', dtcdoc_path='${PATH_DTC_SHARED}/doc', dtcemail_path='${PATH_DTC_SHARED}/email' WHERE 1" + +# Add the config for nated vhosts if needed +if [ ""$conf_use_nated_vhosts = "yes" ] ;then + $MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="UPDATE config SET use_nated_vhost='yes'" + $MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="UPDATE config SET nated_vhost_ip='"${nated_vhost_ip}"'" +else + $MYSQL -u$conf_mysql_login -h$conf_mysql_host -D$conf_mysql_db --execute="UPDATE config SET use_nated_vhost='no'" +fi + +# The panel needs root access (it does database management) echo "<?php" > $PATH_DTC_SHARED"/shared/mysql_config.php" echo "\$conf_mysql_host=\""$conf_mysql_host"\";" >> $PATH_DTC_SHARED"/shared/mysql_config.php" echo "\$conf_mysql_login=\""$conf_mysql_login"\";" >> $PATH_DTC_SHARED"/shared/mysql_config.php" @@ -329,6 +648,212 @@ echo "\$conf_mysql_conf_ok=\"yes\";" >> $PATH_DTC_SHARED"/shared/mysql_config.ph echo "?>" >> $PATH_DTC_SHARED"/shared/mysql_config.php" cd $curdir +#!/bin/sh + +# this chroot creation script will only work for debian testing +# please modify this for your particular distribution/OS +# Damien Mascord <tusker@tusker.org> + +# Added support for Debian stable and integrate it in install +# script for all OS (path needs to be checked for BSD and RedHat... +# so this script is for the moment UNTESTED) +# Thomas GOIRAND <thomas [ at ] goirand.fr> + +# first check to see if we have the correct command line settings +#if [ "$1" = "" ] +#then +# echo "Usage: $0 <directory to create chroot in> <webuser> <webgroup>" +# exit 1 +#fi + +# assign our variables +CHROOT_DIR=$conf_chroot_path +WEB_USER=nobody + +if [ $CHROOT_DIR"" = "" ] ; then + CHROOT_DIR=/var/www/chroot +fi + +if [ $UNIX_TYPE"" = "freebsd" ] ; then + WEB_GROUP=nobody +else + WEB_GROUP=nogroup +fi + +if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "===> Creating chroot tree in "$CHROOT_DIR +fi + +# set our umask so things are created with the correct group perms +umask 022 + +# now onto the creation +mkdir -p $CHROOT_DIR +cd $CHROOT_DIR + +# create directory structure +mkdir -p etc dev bin lib tmp var/tmp var/run sbin +mkdir -p usr/bin usr/lib usr/libexec usr/share usr/lib/zoneinfo + +# make devices - adjust MAJOR/MINOR as appropriate ( see ls -l /dev/* ) +if ! [ -e dev/null ] +then + if [ $UNIX_TYPE"" = "freebsd" -o $UNIX_TYPE"" = "osx" ]; + then + mknod dev/null c 2 2 # FreeBSD? + else + mknod dev/null c 1 3 # Linux + fi +fi + +if [ $UNIX_TYPE"" = "freebsd" -o $UNIX_TYPE"" = "osx" ] ; then + if [ $kernel"" = "OpenBSD" ] ; then + if ! [ -e dev/urandom ] ; then + mknod dev/urandom c 45 2 # OpenBSD ? + fi + else + if ! [ -e dev/random ] ; then + mknod dev/random c 2 3 # FreeBSD + fi + if ! [ -e dev/urandom ] ; then + mknod dev/urandom c 2 3 + fi + fi +else + if ! [ -e dev/random ] ; then + mknod dev/random c 1 8 # Linux + fi + if ! [ -e dev/urandom ] ; then + mknod dev/urandom c 1 9 # Linux + fi +fi + +# some external programs may need these: +if [ $UNIX_TYPE"" = "freebsd" -o $UNIX_TYPE"" = "osx" ] ; then + if ! [ -e dev/stdin ] ; then + mknod dev/stdin c 22 0 # FreeBSD, OpenBSD + fi + if ! [ -e dev/stdout ] ; then + mknod dev/stdout c 22 1 # FreeBSD, OpenBSD + fi + if ! [ -e dev/stderr ] ; then + mknod dev/stderr c 22 2 # FreeBSD, OpenBSD + fi +fi + +# copy required binaries to $CHROOT_DIR/usr/bin and $CHROOT_DIR/bin +if [ $UNIX_TYPE"" = "gentoo" ] ; then + cp -pf /bin/bzip2 usr/bin/ +else + cp -pf /usr/bin/bzip2 usr/bin/ +fi + +cp -pf /usr/bin/file usr/bin/ + +if [ $UNIX_TYPE"" = "freebsd" -o $UNIX_TYPE"" = "osx" ] ; then + cp -pf /usr/bin/cpio usr/bin + cp -pf /usr/bin/gunzip /usr/bin/false /usr/bin/su bin/ +else + cp -pf /bin/gunzip /usr/bin/zip /bin/false /bin/su bin/ + cp -pf /bin/cpio usr/bin +fi + +# copy required binaries to $CHROOT_DIR/bin +cp -pf /bin/sh /bin/echo /bin/ls /bin/pwd /bin/cat bin/ + +# copy ldconfig from sbin to $CHROOT_DIR/sbin +if ! [ $UNIX_TYPE"" = "osx" ] ; then + cp -pf /sbin/ldconfig sbin/ +fi + +# copy needed /etc files to $CHROOT_DIR/etc +cp -pf /etc/protocols /etc/services /etc/hosts \ + /etc/group /etc/passwd /etc/resolv.conf etc/ + +if [ -e /etc/host.conf ] ; then + cp -pf /etc/host.conf etc/ +fi + +if [ -e /etc/ld.conf ] ; then + cp -pf /etc/ld.conf etc/ +fi + +if [ -e /etc/nsswitch.conf ] ; then + cp -pf /etc/nsswitch.conf etc/ +fi + +if [ -e /etc/localtime ] ; then + cp -pf /etc/localtime etc/ +fi + +# copy shared libraries to $CHROOT_DIR/lib +# (check: ldd /usr/bin/perl (or other binary) to see which ones are needed) +# +#FreeBSD: +#for j in \ +if [ $UNIX_TYPE"" = "freebsd" ] ; then + cp -pf /usr/lib/libc.so* /usr/lib/libm.so* \ + /usr/lib/libstdc\+\+.so* usr/lib/ + if [ -e /usr/compat/linux/usr/lib/libz.so.1 ] ; then + cp /usr/compat/linux/usr/lib/libz.so.1 usr/lib + fi +else + if [ $UNIX_TYPE"" = "osx" ] ; then + cp -pf /usr/lib/dyld /usr/lib/libSystem.B.dylib \ + /usr/lib/libc.dylib /usr/lib/libdl.dylib \ + /usr/lib/libncurses.5.dylib /usr/lib/libpam.dylib \ + /usr/lib/libpthread.dylib usr/lib/ + cp -pf /usr/lib/dylib1.o /usr/lib/libSystem.dylib \ + /usr/lib/libcrypto.dylib /usr/lib/libm.dylib \ + /usr/lib/libncurses.dylib /usr/lib/libpam_misc.dylib \ + /usr/lib/libz.dylib usr/lib + mkdir usr/lib/system + cp -pf /usr/lib/system/libmathCommon.A.dylib usr/lib/system + else + cp -pf /lib/libdl.so.2 /lib/libm.so.6 /lib/libpthread.so.0 \ + /lib/libc.so.6 /lib/libcrypt.so.1 /lib/ld-linux.so.2 \ + /lib/libncurses.so.5 \ + /lib/librt.so.1 \ + /lib/libpam.so.0 /lib/libpam_misc.so.0 lib/ + if [ -e /usr/lib/libmagic.so.1 ] + then + cp -pf /usr/lib/libmagic.so.1 lib/ + fi + if [ $UNIX_TYPE"" = "gentoo" ] ; then + cp -pf /lib/libz.so.1 lib/ + else + cp -pf /usr/lib/libz.so.1 lib/ + fi + fi +fi + +# magic files needed by file(1). Different versions and installations +# expect magic files in different locations. Check the documentation. +# Some usual locations are: +if [ -e /usr/share/misc/file ] +then + #cp -pf /usr/local/share/file/* usr/local/share/file/ + mkdir -p usr/share/misc/file + cp -pf /usr/share/misc/file/magic* usr/share/misc/file + #cp -pf /usr/share/magic usr/share/ +fi + +# set protections +chmod 1770 tmp +chmod 1770 var/tmp +chmod 666 dev/null +chmod 644 dev/*random + +#now need to copy over the perl binary and some modules +cp -pf /usr/bin/perl usr/bin/ + +if ! [ $UNIX_TYPE"" = "osx" ] ;then + # now create our ld.so cache + chroot $CHROOT_DIR ./sbin/ldconfig + # just in case we have wiped our /etc/ld.so.cache (run locally) + /sbin/ldconfig +fi + # Multi OS (Unix system) install sh script for DTC # Written by Thomas GOIRAND <thomas@goirand.fr> @@ -346,7 +871,7 @@ cd $curdir # because it's up to you to write it ! :) # Do a "cat configure_deamons.sh >>your_os_setup_script" -# This script modify named, profptd, apache and qmail configuration +# This script modify all your daemons configuration # files so that it uses the DTC genated files. # @@ -354,34 +879,100 @@ cd $curdir # so it works automaticaly even without Tucows API # -if ! [ -f $PATH_DTC_SHARED/securepay/paiement_config.php ] -then +# VERBOSE_INSTALL=yes + +# We are just after the creation of the chroot tree, so it's time to copy it over +# our newly created vhosts dirs (in update mode) + +if [ -z ""$MYSQL_DB_SOCKET_PATH ] ;then + MYSQL_DB_SOCKET_PATH="/var/run/mysqld/mysqld.sock" +fi + + +# Copy newly created chroot tree to the 3 vhosts created with this installer (mx and ns don't have apache vhosts generated) +if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo -n "===> Adding chroot environment to www."$main_domain_name +fi +cp -fupR $conf_chroot_path $conf_hosting_path"/"$conf_adm_login"/"$main_domain_name"/subdomains/www/" + +if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo -n " "$dtc_admin_subdomain"."$main_domain_name +fi +cp -fupR $conf_chroot_path $conf_hosting_path"/"$conf_adm_login"/"$main_domain_name"/subdomains/404" + +if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo -n " 404."$main_domain_name +fi +cp -fupR $conf_chroot_path $conf_hosting_path"/"$conf_adm_login"/"$main_domain_name"/subdomains/"$dtc_admin_subdomain + +if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo chown -R nobody:65534 $conf_hosting_path"/"$conf_adm_login"/"$main_domain_name"/subdomains" +fi +chown -R nobody:65534 $conf_hosting_path"/"$conf_adm_login"/"$main_domain_name"/subdomains" + + +if ! [ -f $PATH_DTC_SHARED/shared/securepay/paiement_config.php ] ; then cp -v $PATH_DTC_SHARED/shared/securepay/RENAME_ME_paiement_config.php $PATH_DTC_SHARED/shared/securepay/paiement_config.php fi # -# Include $PATH_DTC_ETC/vhosts.conf in $PATH_HTTPD_CONF
+# Include $PATH_DTC_ETC/vhosts.conf in $PATH_HTTPD_CONF # -TMP_FILE=/tmp/DTC_install.httpd.conf +TMP_FILE=`${MKTEMP} DTC_install.httpd.conf.XXXXXX` || exit 1 + +if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "===> Modifying httpd.conf" +fi +# need to see if we can use the modules-config or apacheconfig tools +HTTPD_MODULES_CONFIG=/usr/sbin/apache-modconf + +# if apacheconfig is a symlink (deprecated), then use modules-config +if [ -f $HTTPD_MODULES_CONFIG ] +then + HTTPD_MODULES_CONFIG="$HTTPD_MODULES_CONFIG apache" +else + HTTPD_MODULES_CONFIG="" +fi -echo "===> Modifying httpd.conf" -if grep "Configured by DTC" $PATH_HTTPD_CONF +# check to see if our apacheconfig has been obseleted +if [ "$HTTPD_MODULES_CONFIG" = "" ] then - echo "httpd.conf has been configured before : skiping include inssertion !" + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "Not using modules-config tool" + fi +else + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "Using $HTTPD_MODULES_CONFIG to configure apache modules" + fi +fi + +if grep "Configured by DTC" $PATH_HTTPD_CONF >/dev/null +then + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "httpd.conf has been configured before : skiping include inssertion !" + fi else if ! [ -f $PATH_HTTPD_CONF.DTC.backup ] then - echo "===> Backuping "$PATH_HTTPD_CONF + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "===> Backuping "$PATH_HTTPD_CONF + fi cp -f "$PATH_HTTPD_CONF" "$PATH_HTTPD_CONF.DTC.backup" fi - echo "=> Verifying User and Group directive" + + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "=> Verifying User and Group directive" + fi + + # Those 2 are for debian if grep "User www-data" $PATH_HTTPD_CONF >/dev/null 2>&1 then echo "User www-data -> User nobody" sed "s/User www-data/User nobody/" $PATH_HTTPD_CONF >$TMP_FILE cat <$TMP_FILE >$PATH_HTTPD_CONF fi + if grep "Group www-data" $PATH_HTTPD_CONF >/dev/null 2>&1 then echo "Group www-data -> Group nogroup" @@ -389,6 +980,7 @@ else cat <$TMP_FILE >$PATH_HTTPD_CONF fi + # Those 2 are for BSD if grep "User www" $PATH_HTTPD_CONF >/dev/null 2>&1 then echo "User www -> User nobody" @@ -401,93 +993,213 @@ else sed "s/Group www/Group nobody/" $PATH_HTTPD_CONF >$TMP_FILE cat <$TMP_FILE >$PATH_HTTPD_CONF fi - - echo "=> Checking apache modules" - echo -n "Checking for php4..." - if grep -i "# LoadModule php4_module" $PATH_HTTPD_CONF >/dev/null 2>&1 + # Those 2 are for RedHat + if grep "User apache" $PATH_HTTPD_CONF >/dev/null 2>&1 then - echo "found commented: activating php4 module!" - sed "s/# LoadModule php4_module/LoadModule php4_module/" $PATH_HTTPD_CONF >$TMP_FILE + echo "User apache -> User nobody" + sed "s/User apache/User nobody/" $PATH_HTTPD_CONF >$TMP_FILE cat <$TMP_FILE >$PATH_HTTPD_CONF - else - if grep -i "LoadModule php4_module" $PATH_HTTPD_CONF >/dev/null 2>&1 - then - echo " ok!" - else - echo "php4 missing! please install it or run apacheconfig!!!" - exit 1 - fi fi - - echo -n "Checking for ssl..." - if grep -i "# LoadModule ssl_module" $PATH_HTTPD_CONF >/dev/null 2>&1 + if grep "Group apache" $PATH_HTTPD_CONF >/dev/null 2>&1 then - echo "found commented: activating ssl module!" - sed "s/# LoadModule ssl_module/LoadModule ssl_module/" $PATH_HTTPD_CONF >$TMP_FILE + echo "Group apache -> Group nobody" + sed "s/Group apache/Group nobody/" $PATH_HTTPD_CONF >$TMP_FILE cat <$TMP_FILE >$PATH_HTTPD_CONF - else - if grep -i "LoadModule ssl_module" $PATH_HTTPD_CONF >/dev/null 2>&1 + fi + + if [ "$UNIX_TYPE" = "debian" -o "$UNIX_TYPE" = "osx" ] + then + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "=> Checking apache modules" + echo -n "Checking for php4..." + fi + # first of all, may as well try to use the provided modules-config or apacheconfig provided by debian... + # else use the normal method to be cross platform compatible + + if [ "$HTTPD_MODULES_CONFIG" = "" ] then - echo " ok!" + # need to support modules.conf version of apache debian package + # default to normal HTTPD_CONF + PATH_HTTPD_CONF_TEMP=$PATH_HTTPD_CONF + if [ -f $PATH_HTTPD_MODULES_CONF ] + then + PATH_HTTPD_CONF_TEMP=$PATH_HTTPD_MODULES_CONF + fi + if grep -i "# LoadModule php4_module" $PATH_HTTPD_CONF_TEMP >/dev/null 2>&1 + then + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "found commented: activating php4 module!" + fi + sed "s/# LoadModule php4_module/LoadModule php4_module/" $PATH_HTTPD_CONF_TEMP >$TMP_FILE + cat <$TMP_FILE >$PATH_HTTPD_CONF_TEMP + else + if grep -i "LoadModule php4_module" $PATH_HTTPD_CONF_TEMP >/dev/null 2>&1 + then + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo " ok!" + fi + else + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "php4 missing! please install it or run apacheconfig!!!" + fi + exit 1 + fi + fi else - echo "!!! Warning: ssl_module for apache not present !!!" + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo $HTTPD_MODULES_CONFIG enable php4_module + fi + $HTTPD_MODULES_CONFIG enable php4_module + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo $HTTPD_MODULES_CONFIG enable mod_php4 + fi + $HTTPD_MODULES_CONFIG enable mod_php4 + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo " enabled by $HTTPD_MODULES_CONFIG" + fi fi - fi - echo -n "Checking for sql_log..." - if grep -i "# LoadModule sql_log_module" $PATH_HTTPD_CONF >/dev/null 2>&1 - then - echo "found commented: ativating sql_log module!" - sed "s/# LoadModule sql_log_module/LoadModule sql_log_module/" $PATH_HTTPD_CONF >$TMP_FILE - cat <$TMP_FILE >$PATH_HTTPD_CONF - else - if grep -i "LoadModule log_sql_module" $PATH_HTTPD_CONF >/dev/null 2>&1 + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo -n "Checking for ssl..." + fi + if [ "$HTTPD_MODULES_CONFIG" = "" ] then - echo " ok!" + if grep -i "# LoadModule ssl_module" $PATH_HTTPD_CONF_TEMP >/dev/null 2>&1 + then + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "found commented: activating ssl module!" + fi + sed "s/# LoadModule ssl_module/LoadModule ssl_module/" $PATH_HTTPD_CONF_TEMP >$TMP_FILE + cat <$TMP_FILE >$PATH_HTTPD_CONF_TEMP + else + if grep -i "LoadModule ssl_module" $PATH_HTTPD_CONF_TEMP >/dev/null 2>&1 + then + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo " ok!" + fi + else + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "!!! Warning: ssl_module for apache not present !!!" + fi + fi + fi else - if grep -i "# LoadModule log_sql_module" $PATH_HTTPD_CONF >/dev/null 2>&1 + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo $HTTPD_MODULES_CONFIG enable ssl_module + fi + $HTTPD_MODULES_CONFIG enable ssl_module + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo " enabled by $HTTPD_MODULES_CONFIG" + fi + fi + + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo -n "Checking for sql_log..." + fi + if [ "$HTTPD_MODULES_CONFIG" = "" ] + then + if grep -i "# LoadModule sql_log_module" $PATH_HTTPD_CONF_TEMP >/dev/null 2>&1 then - echo "found commented: ativating sql_log module!" - sed "s/# LoadModule log_sql_module/LoadModule log_sql_module/" $PATH_HTTPD_CONF >$TMP_FILE - cat <$TMP_FILE >$PATH_HTTPD_CONF + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "found commented: ativating sql_log module!" + fi + sed "s/# LoadModule sql_log_module/LoadModule sql_log_module/" $PATH_HTTPD_CONF_TEMP >$TMP_FILE + cat <$TMP_FILE >$PATH_HTTPD_CONF_TEMP else - if grep -i "LoadModule sql_log_module" $PATH_HTTPD_CONF >/dev/null 2>&1 + if grep -i "LoadModule log_sql_module" $PATH_HTTPD_CONF_TEMP >/dev/null 2>&1 then - echo " ok!" + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo " ok!" + fi else - echo "!!! sql_log_module for apache not present !!!" - echo "please install it or run apacheconfig" - echo "or add the following type directive" - echo "(matching your path) to httpd.conf:" - echo "LoadModule sql_log_module /usr/lib/apache/1.3/mod_log_sql.so (debian)" - echo "LoadModule log_sql_module /usr/local/libexec/apache/mod_log_sql.so (bsd)" - exit 1 + if grep -i "# LoadModule log_sql_module" $PATH_HTTPD_CONF_TEMP >/dev/null 2>&1 + then + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "found commented: ativating sql_log module!" + fi + sed "s/# LoadModule log_sql_module/LoadModule log_sql_module/" $PATH_HTTPD_CONF_TEMP >$TMP_FILE + cat <$TMP_FILE >$PATH_HTTPD_CONF_TEMP + else + if grep -i "LoadModule sql_log_module" $PATH_HTTPD_CONF_TEMP >/dev/null 2>&1 + then + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo " ok!" + fi + else + echo "!!! sql_log_module for apache not present !!!" + echo "please install it or run apacheconfig" + echo "or add the following type directive" + echo "(matching your path) to httpd.conf:" + echo "LoadModule sql_log_module /usr/lib/apache/1.3/mod_log_sql.so (debian)" + echo "LoadModule log_sql_module /usr/local/libexec/apache/mod_log_sql.so (bsd)" + exit 1 + fi + fi fi fi + else + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo $HTTPD_MODULES_CONFIG enable sql_log_module + fi + $HTTPD_MODULES_CONFIG enable sql_log_module + $HTTPD_MODULES_CONFIG enable mod_log_sql # just in case + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo " enabled by $HTTPD_MODULES_CONFIG" + fi fi + else + echo "" + echo "!!! WARNING !!! Tests for the folling apache modules" + echo "has NOT been executed because this could crash" + echo "the installer. Please verify you have the following" + echo "apache modules configured and working:" + echo "php4, ssl, rewrite, and sql_log" + echo "Note also that current DTC wroks with SBOX and that it" + echo "should be compiled and installed on your server to" + echo "enable cgi-bin protected and chrooted environment." + echo "" fi - echo -n "Checking for AllowOverride..." + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo -n "Checking for AllowOverride..." + fi if grep "AllowOverride None" $PATH_HTTPD_CONF then - echo "AllowOverride None -> AllowOverride AuthConfig FileInfo Limit Indexes" + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "AllowOverride None -> AllowOverride AuthConfig FileInfo Limit Indexes" + fi sed "s/AllowOverride None/AllowOverride AuthConfig FileInfo Limit Indexes/" $PATH_HTTPD_CONF >$TMP_FILE cat <$TMP_FILE >$PATH_HTTPD_CONF else - echo "ok!" + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "ok!" + fi + fi + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "=> Adding DTC's directives to httpd.conf end" fi - echo "=> Adding DTC's directives to httpd.conf end" - echo "# Configured by DTC v0.12 : please do not touch this line ! + # It seems redhat has already the Listen directives... + if [ ""$UNIX_TYPE = "redhat" -o ""$UNIX_TYPE = "gentoo" ] ;then + echo "# Configured by DTC v0.12 : please do not touch this line ! +Include $PATH_DTC_ETC/vhosts.conf" >>$PATH_HTTPD_CONF + else + echo "# Configured by DTC v0.12 : please do not touch this line ! Include $PATH_DTC_ETC/vhosts.conf Listen 80 -Listen 443 - -LogSQLLoginInfo localhost "$conf_mysql_login" "$conf_mysql_pass" -LogSQLSocketFile /var/run/mysqld/mysqld.sock -LogSQLDatabase apachelogs +Listen 443" >>$PATH_HTTPD_CONF + fi + echo "LogSQLLoginInfo localhost dtcdaemons "${MYSQL_DTCDAEMONS_PASS} >>$PATH_HTTPD_CONF + if [ ""$UNIX_TYPE = "freebsd" ] ;then + echo "LogSQLSocketFile /tmp/mysqld.sock" >>$PATH_HTTPD_CONF + else + echo "LogSQLSocketFile ${MYSQL_DB_SOCKET_PATH}" >>$PATH_HTTPD_CONF + fi + echo "LogSQLDatabase apachelogs LogSQLCreateTables On LogSQLTransferLogFormat IAbhRrSsU +Alias /dtc404/ $PATH_DTC_ETC/dtc404/ +ErrorDocument 404 /dtc404/404.php # End of DTC configuration v0.12 : please don't touch this line !" >>$PATH_HTTPD_CONF if [ -f $TMP_FILE ] then @@ -495,95 +1207,734 @@ LogSQLTransferLogFormat IAbhRrSsU fi fi +# Create the ssl certificate if it does not exists (for distribs with /etc/apache only for the moment) +if [ -e "/etc/apache" ]; then + if [ -e "/etc/apache/ssl" ]; then + mkdir -p /etc/apache/ssl + fi +fi + +# copy the template directory from shared to etc, so we can edit it without worry of being purged on each install +# only copy the directory, if it doesn't already exist in the etc path +if [ -e "$PATH_DTC_SHARED/shared/template" ]; then + if [ ! -e "$PATH_DTC_ETC/template" ]; then + cp -r $PATH_DTC_SHARED/shared/template $PATH_DTC_ETC + fi + chown -R nobody:65534 $PATH_DTC_ETC/template + chmod -R 775 $PATH_DTC_ETC/template +fi + +# copy the 404 index.php file if none is found. +if ! [ -e $conf_hosting_path"/"$conf_adm_login"/"$main_domain_name"/subdomains/404/html/index.php" ]; then + if ! [ -e $conf_hosting_path"/"$conf_adm_login"/"$main_domain_name"/subdomains/404/html/index.html" ]; then + if [ -e $PATH_DTC_SHARED/shared/404_template/index.php ]; then + cp $PATH_DTC_SHARED/shared/404_template/index.php $conf_hosting_path"/"$conf_adm_login"/"$main_domain_name"/subdomains/404/html/" + fi + fi +fi + +# copy the Error 404 document +if ! [ -e $conf_hosting_path"/"$conf_adm_login"/"$main_domain_name"/subdomains/www/html/404.php" ]; then + if [ -e $PATH_DTC_SHARED/shared/404_template/404.php ]; then + cp $PATH_DTC_SHARED/shared/404_template/404.php $conf_hosting_path"/"$conf_adm_login"/"$main_domain_name"/subdomains/www/html/" + fi +fi + +# also copy it to the dtc404 directory +if ! [ -e $PATH_DTC_ETC/dtc404/404.php ]; then + mkdir -p $PATH_DTC_ETC/dtc404/ + cp $PATH_DTC_SHARED/shared/404_template/404.php $PATH_DTC_ETC/dtc404/ +fi + +PATH_PAMD_SMTP=/etc/pam.d/smtp +if [ -e /etc/pam.d/ ] +then + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "===> Adding configuration inside "$PATH_PAMD_SMTP + fi + if [ -f $PATH_PAMD_SMTP ] + then + if ! [ -f $PATH_PAMD_SMTP.DTC.backup ] + then + cp -f $PATH_PAMD_SMTP $PATH_PAMD_SMTP.DTC.backup + fi + fi + touch $PATH_PAMD_SMTP + echo "auth required pam_mysql.so user=dtcdaemons passwd="${MYSQL_DAEMONS_PASS}" db="$conf_mysql_db" table=pop_access usercolumn=id passwdcolumn=password crypt=0" >$PATH_PAMD_SMTP +# if grep "Configured by DTC" $PATH_PAMD_SMTP +# echo $PATH_PAMD_SMTP" has been configured before: skiping include insertion!" +# else +# echo "Including configuration in "$PATH_PAMD_SMTP +# fi +fi + # # include $PATH_DTC_ETC/named.zones in $PATH_NAMED_CONF # -echo "===> Adding inclusion to named.conf" -if grep "Configured by DTC" $PATH_NAMED_CONF +if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "===> Adding inclusion to named.conf" +fi +if grep "Configured by DTC" $PATH_NAMED_CONF >/dev/null then - echo "named.conf has been configured before : skiping include inssertion !" + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "named.conf has been configured before : skiping include insertion !" + fi else - echo "Including named.conf in $PATH_NAMED_CONF" + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "Including named.conf in $PATH_NAMED_CONF" + fi if ! [ -f $PATH_NAMED_CONF.DTC.backup ] then cp -f $PATH_NAMED_CONF $PATH_NAMED_CONF.DTC.backup fi - echo "// Configured by DTC v0.10 : please don't touch this line !" >/tmp/DTC_install_named.conf - echo "include \"$PATH_DTC_ETC/named.conf\";" >>/tmp/DTC_install_named.conf + TMP_FILE=`${MKTEMP} DTC_install.named.conf.XXXXXX` || exit 1 + echo "// Configured by DTC v0.10 : please don't touch this line !" > $TMP_FILE + echo "include \"$PATH_DTC_ETC/named.conf\";" >> $TMP_FILE touch $PATH_DTC_ETC/named.conf - cat </tmp/DTC_install_named.conf >>$PATH_NAMED_CONF + cat < $TMP_FILE >>$PATH_NAMED_CONF + if [ -e $TMP_FILE ]; then + rm -f $TMP_FILE + fi +fi + +# only try and do qmail stuff if we have qmail installed! (check the control directory) +if [ -e "$PATH_QMAIL_CTRL" ] ;then + # + # Install the qmail links in the /etc/qmail + # + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "===> Linking qmail control files to DTC generated files" + echo "111" + fi + if ! [ -e $PATH_QMAIL_CTRL/rcpthosts.DTC.backup ] + then + cp -f $PATH_QMAIL_CTRL/rcpthosts $PATH_QMAIL_CTRL/rcpthosts.DTC.backup + fi + rm -f $PATH_QMAIL_CTRL/rcpthosts + touch $PATH_DTC_ETC/rcpthosts + ln -s $PATH_DTC_ETC/rcpthosts $PATH_QMAIL_CTRL/rcpthosts + + touch $PATH_QMAIL_CTRL/virtualdomains + if ! [ -e $PATH_QMAIL_CTRL/virtualdomains.DTC.backup ] + then + cp -f $PATH_QMAIL_CTRL/virtualdomains $PATH_QMAIL_CTRL/virtualdomains.DTC.backup + fi + rm -f $PATH_QMAIL_CTRL/virtualdomains + touch $PATH_DTC_ETC/virtualdomains + ln -s $PATH_DTC_ETC/virtualdomains $PATH_QMAIL_CTRL/virtualdomains + + if ! [ -e /var/qmail/users/assign.DTC.backup ] + then + if [ -e /var/qmail/users/assign ]; then + cp -f /var/qmail/users/assign /var/qmail/users/assign.DTC.backup + fi + fi + rm -f /var/qmail/users/assign + touch $PATH_DTC_ETC/assign + if ! [ -e /var/qmail/users ]; then + mkdir -p /var/qmail/users + fi + ln -s $PATH_DTC_ETC/assign /var/qmail/users/assign + + # Complete mistake ! Please forgive me ! + # + #if ! [ -f $PATH_QMAIL_CTRL/locals.DTC.backup ] + #then + # touch $PATH_QMAIL_CTRL/locals + # cp -f $PATH_QMAIL_CTRL/locals $PATH_QMAIL_CTRL/locals.DTC.backup + #fi + #rm -f $PATH_QMAIL_CTRL/locals + #touch $PATH_DTC_ETC/rcpthosts + #ln -s $PATH_DTC_ETC/rcpthosts $PATH_QMAIL_CTRL/locals + + touch /etc/poppasswd + if ! [ -e /etc/poppasswd.DTC.backup ] + then + cp -f /etc/poppasswd /etc/poppasswd.DTC.backup + fi + rm -f /etc/poppasswd + touch $PATH_DTC_ETC/poppasswd + ln -s $PATH_DTC_ETC/poppasswd /etc/poppasswd +else + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "Could not found qmail directory: skipping" + fi fi # -# Install the qmail links in the /etc/qmail +# Make some changes to the amavisd-new configuration to allow clamav to work with it cleanly # -echo "===> Linking qmail control files to DTC generated files" -if ! [ -f $PATH_QMAIL_CTRL/rcpthosts.DTC.backup ] + +# make sure the amavisd configuration has 'amavis' user and group + +if [ -f "$PATH_AMAVISD_CONF" ]; then + if [ ""$VERBOSE_INSTALL == "yes" ]; then + echo "Checking user and group configuration for amavisd..." + fi + + # make sure our users exist for amavis + set +e + # turn back on error handling, these users probably exist already + $GROUP_ADD_CMD amavis > /dev/null 2>&1 + if [ $? -ne 0 ]; then + if [ ""$VERBOSE_INSTALL == "yes" ]; then + echo "Group amavis already exists..." + fi + fi + $USER_ADD_CMD -g amavis amavis > /dev/null 2>&1 + if [ $? -ne 0 ]; then + if [ ""$VERBOSE_INSTALL == "yes" ]; then + echo "User amavis already exists..." + fi + fi + $PASSWD_CMD -l amavis > /dev/null 2>&1 + if [ $? -ne 0 ]; then + if [ ""$VERBOSE_INSTALL == "yes" ]; then + echo "Change password failed for amavis user" + fi + fi + set -e + + if grep "Configured by DTC" "$PATH_AMAVISD_CONF" >/dev/null; then + if [ ""$VERBOSE_INSTALL == "yes" ]; then + echo "$PATH_AMAVISD_CONF already configured..." + fi + else + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "Inserting configuration into $PATH_AMAVISD_CONF" + fi + + # strip the 1; from the end of the config file + perl -i -p -e 's/^1;[^\n]*\n//' $PATH_AMAVISD_CONF + + # fix the clamd ctl file to point to /var/run/clamav/clamd.ctl + perl -i -p -e 's/\"i\/.*?\/clamd.ctl\"/\"\/var\/run\/clamav\/clamd.ctl\"/' $PATH_AMAVISD_CONF + + mkdir -p /var/run/clamav/ + chown -R clamav:clamav /var/run/clamav + + TMP_FILE=`${MKTEMP} dtc_install.amavisd.conf.XXXXXX` || exit 1 + echo "# Configured by DTC $VERSION" >> $TMP_FILE + echo "\$daemon_user = 'amavis';" >> $TMP_FILE + echo "\$daemon_group = 'amavis';" >> $TMP_FILE + echo "\$final_virus_destiny = D_DISCARD;" >> $TMP_FILE + echo "\$final_spam_destiny = D_PASS;" >> $TMP_FILE + echo "\$final_banned_destiny = D_PASS;" >> $TMP_FILE + echo "\$final_bad_header_destiny = D_PASS;" >> $TMP_FILE + echo "\$warnvirussender = 0;" >> $TMP_FILE + echo "\$warnspamsender = 0;" >> $TMP_FILE + echo " # kill level defaults " >> $TMP_FILE + + echo "\$sa_tag_level_deflt = 2.0;" >> $TMP_FILE + echo "\$sa_tag2_level_deflt = 6.3;" >> $TMP_FILE + echo "\$sa_kill_level_deflt = \$sa_tag2_level_deflt;" >> $TMP_FILE + echo "\$sa_dsn_cutoff_level = 50;" >> $TMP_FILE + + echo "\$sa_mail_body_size_limit = 150*1024;" >> $TMP_FILE + echo "# The following line will read the local domains as generated by DTC, amavisd will need to be restarted for new domains..." >> $TMP_FILE + echo "read_hash(\\%local_domains, '$PATH_DTC_ETC/local_domains');" >> $TMP_FILE + + echo "# End of DTC configuration $VERSION" >> $TMP_FILE + echo "1; # insure a defined return" >> $TMP_FILE + + # now to insert it at the end of the actual amavisd.conf + cat < $TMP_FILE >>$PATH_AMAVISD_CONF + fi +fi + +if [ -f "$PATH_CLAMAV_CONF" ]; then + if [ ""$VERBOSE_INSTALL == "yes" ]; then + echo "Checking user and group configuration for clamav..." + fi + + # make sure our users exist for amavis + set +e + # turn back on error handling, these users probably exist already + $GROUP_ADD_CMD clamav > /dev/null 2>&1 + if [ $? -ne 0 ]; then + if [ ""$VERBOSE_INSTALL == "yes" ]; then + echo "Group clamav already exists..." + fi + fi + $USER_ADD_CMD -g clamav clamav > /dev/null 2>&1 + if [ $? -ne 0 ]; then + if [ ""$VERBOSE_INSTALL == "yes" ]; then + echo "User clamav already exists..." + fi + fi + $PASSWD_CMD -l clamav > /dev/null 2>&1 + if [ $? -ne 0 ]; then + if [ ""$VERBOSE_INSTALL == "yes" ]; then + echo "Change password failed for clamav user" + fi + fi + # now add amavisd to the clamav group and vice versa + $USER_MOD_CMD -G clamav,amavis clamav > /dev/null 2>&1 + if [ $? -ne 0 ]; then + if [ ""$VERBOSE_INSTALL == "yes" ]; then + echo "Change group failed for clamav user" + fi + fi + $USER_MOD_CMD -G amavis,clamav amavis > /dev/null 2>&1 + if [ $? -ne 0 ]; then + if [ ""$VERBOSE_INSTALL == "yes" ]; then + echo "Change group failed for amavis user" + fi + fi + # need to add the following to the config file: + # AllowSupplementaryGroups + # LocalSocket /var/run/clamav/clamd.ctl + + # need to fix a problem with a previous version + + if grep "^1;" "$PATH_CLAMAV_CONF" > /dev/null; then + perl -i -p -e 's/^1;[^\n]*\n//' $PATH_CLAMAV_CONF + fi + + if grep "Configured by DTC" "$PATH_CLAMAV_CONF" >/dev/null; then + if [ ""$VERBOSE_INSTALL == "yes" ]; then + echo "$PATH_CLAMAV_CONF already configured..." + fi + else + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "Inserting configuration into $PATH_CLAMAV_CONF" + fi + + TMP_FILE=`${MKTEMP} dtc_install.clamav.conf.XXXXXX` || exit 1 + echo "# Configured by DTC $VERSION" >> $TMP_FILE + echo "AllowSupplementaryGroups" >> $TMP_FILE + echo "LocalSocket /var/run/clamav/clamd.ctl" >> $TMP_FILE + + echo "# End of DTC configuration $VERSION" >> $TMP_FILE + + # now to insert it at the end of the actual clamav.conf + cat < $TMP_FILE >>$PATH_CLAMAV_CONF + fi +fi + + +# +# Modify the postfix main.cf to include virtual delivery options +# + +# Declare this makes the test when appenning the configuration for SASL +# works if you don't have SASL + +SASLTMP_FILE="/thisfiledoesnotexists" +if [ -f "$PATH_POSTFIX_CONF" ] then - cp -f $PATH_QMAIL_CTRL/rcpthosts $PATH_QMAIL_CTRL/rcpthosts.DTC.backup + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "===> Linking postfix control files to DTC generated files" + fi + if grep "Configured by DTC" "$PATH_POSTFIX_CONF" >/dev/null + then + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "Postfix main.cf has been configured before, not adding virtual mailbox options" + fi + else + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "Inserting DTC configuration inside $PATH_POSTFIX_CONF" + fi + + TMP_FILE=`${MKTEMP} DTC_install.postfix_main.cf.XXXXXX` || exit 1 + echo "# Configured by DTC v0.12 : Please don't touch this line !" > $TMP_FILE + echo "# DTC virtual configuration +# disable the following functionality by default (otherwise can't match subdomains correctly) +parent_domain_matches_subdomains= + +# disable mailbox size limit by default (user can add to postfix_config_snippets) +mailbox_size_limit = 0 + +# stuff for amavis +content_filter=smtp-amavis:[127.0.0.1]:10024 + +virtual_mailbox_domains = hash:$PATH_DTC_ETC/postfix_virtual_mailbox_domains +virtual_mailbox_base = / +virtual_mailbox_maps = hash:$PATH_DTC_ETC/postfix_vmailbox +virtual_minimum_uid = 100 +virtual_uid_maps = static:65534 +virtual_gid_maps = static:65534 +virtual_alias_maps = hash:$PATH_DTC_ETC/postfix_virtual +alias_maps = hash:/etc/aliases, hash:$PATH_DTC_ETC/postfix_aliases +relay_domains = $PATH_DTC_ETC/postfix_relay_domains +relay_recipient_maps = hash:$PATH_DTC_ETC/postfix_relay_recipients +virtual_uid_maps = hash:$PATH_DTC_ETC/postfix_virtual_uid_mapping" >> $TMP_FILE + if [ -n $conf_dnsbl_list ]; then + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo " Adding DNS Blacklist to postfix configuration..." + fi + IFS=, + for i in $conf_dnsbl_list; do + dnsbl_list="$dnsbl_list reject_rbl_client $i," + done + unset IFS + fi + + + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo " Attempting to determine if you have sasl2 installed..." + fi + if [ "$PATH_SASL_PASSWD2" = "" ]; then + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "No saslpasswd2 installed"; + fi + elif [ -f $PATH_SASL_PASSWD2 ]; then + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "Found sasl2passwd at $PATH_SASL_PASSWD2" + fi + + mkdir -p $PATH_POSTFIX_ETC/sasl + + if [ -e $PATH_POSTFIX_ETC/sasl/smtpd.conf ]; then + if ! [ -e $PATH_POSTFIX_ETC/sasl/smtpd.conf.dtcbackup ]; then + cp $PATH_POSTFIX_ETC/sasl/smtpd.conf $PATH_POSTFIX_ETC/sasl/smtpd.conf.dtcbackup + fi + fi + + # prepare some sasldb2 files, so that our script latter can fix them + + if [ -e /var/spool/postfix/etc ]; then + touch /var/spool/postfix/etc/sasldb2 + chown postfix:65534 /var/spool/postfix/etc/sasldb2 + chmod 664 /var/spool/postfix/etc/sasldb2 + if [ ! -e $PATH_DTC_ETC/sasldb2 ]; then + cp /var/spool/postfix/etc/sasldb2 $PATH_DTC_ETC/sasldb2 + fi + else + if [ -d /etc/sasl2 ]; then + touch /etc/sasl2/sasldb2 + chown postfix:65534 /etc/sasl2/sasldb2 + chmod 664 /etc/sasl2/sasldb2 + else + touch /etc/sasldb2 + chown postfix:65534 /etc/sasldb2 + chmod 664 /etc/sasldb2 + fi + if [ ! -e $PATH_DTC_ETC/sasldb2 ]; then + if [ -d /etc/sasl2 ]; then + cp /etc/sasl2/sasldb2 $PATH_DTC_ETC/sasldb2 + else + cp /etc/sasldb2 $PATH_DTC_ETC/sasldb2 + fi + fi + fi + + SASLTMP_FILE=`${MKTEMP} DTC_install.postfix_sasl.XXXXXX` || exit 1 + echo "# Configured by DTC v0.15 : Please don't touch this line !" > ""$SASLTMP_FILE + echo "pwcheck_method: auxprop +mech_list: plain login digest-md5 cram-md5" >> $SASLTMP_FILE + echo "# End of DTC configuration v0.15 : please don't touch this line !" >> $SASLTMP_FILE + echo "smtpd_recipient_restrictions = permit_mynetworks, + permit_sasl_authenticated, + $dnsbl_list + reject_unauth_destination" >> $TMP_FILE +echo "smtp_sasl_auth_enable = no +smtpd_sasl_security_options = noanonymous +smtpd_sasl_local_domain = /etc/mailname +smtpd_sasl_auth_enable = yes +smtpd_tls_auth_only = no +" >> $TMP_FILE + else + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "No saslpasswd2 found" + fi + echo "smtpd_recipient_restrictions = permit_mynetworks, + $dnsbl_list + reject_unauth_destination" >> $TMP_FILE + fi + # this adds supports for "config" snippets to append to main.cf + if [ -f $PATH_DTC_ETC/postfix_config_snippets ]; then + cat $PATH_DTC_ETC/postfix_config_snippets >> $TMP_FILE + else + echo "# /usr/share/dtc/etc/postfix_config_snippets +# this file is appended to the postfix configure, in case you need to override some configure parameters in the postfix main.cf" > $PATH_DTC_ETC/postfix_config_snippets + fi + + # if we have maildrop, we should use it! + if [ -n ""$PATH_USERDB_BIN -a -f "$PATH_USERDB_BIN" -a -n ""$PATH_MAILDROP_BIN -a -f "$PATH_MAILDROP_BIN" ]; then + echo "virtual_transport = maildrop" >> $TMP_FILE + echo "## Set to 1 because Maildrop only delivers one message at a time. +maildrop_destination_recipient_limit = 1" >> $TMP_FILE + if grep "Configured by DTC" "$PATH_POSTFIX_ETC/master.cf" >/dev/null; then + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "Postfix master.cf has been configured before, not adding maildrop options" + fi + else + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "Inserting DTC configuration inside $PATH_POSTFIX_ETC/master.cf" + fi + + TMP_FILE2=`${MKTEMP} DTC_install.postfix_master.cf.XXXXXX` || exit 1 + echo "# Configured by DTC v0.17 : Please don't touch this line !" > $TMP_FILE2 + echo "maildrop unix - n n - - pipe + flags=DRhu user=nobody argv=$PATH_MAILDROP_BIN -d \${user}@\${nexthop} \${extension} \${recipient} \${user} \${nexthop} +" >> $TMP_FILE2 + echo "# End of DTC configuration v0.17 : please don't touch this line !" >> $TMP_FILE2 + + cat < $TMP_FILE2 >>"$PATH_POSTFIX_ETC/master.cf" + rm $TMP_FILE2 + fi + fi + + # check to see if we have our amavis stuff configured in our master.cf yet + if grep "smtp-amavis" $PATH_POSTFIX_ETC/master.cf > /dev/null; then + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "Postfix master.cf has amavis configured before..." + fi + else + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "Adding amavis options to Postfix master.cf..." + fi + TMP_FILE2=`${MKTEMP} DTC_install.postfix_master.cf.XXXXXX` || exit 1 + echo "# Configured by DTC v0.17 : Please don't touch this line !" > $TMP_FILE2 + + echo "# amavisd-new +smtp-amavis unix - - - - 2 smtp + -o smtp_data_done_timeout=1200 + -o smtp_send_xforward_command=yes + -o disable_dns_lookups=yes + -o max_use=20 + +127.0.0.1:10025 inet n - - - - smtpd + -o content_filter= + -o local_recipient_maps= + -o relay_recipient_maps= + -o smtpd_restriction_classes= + -o smtpd_client_restrictions= + -o smtpd_helo_restrictions= + -o smtpd_sender_restrictions= + -o smtpd_recipient_restrictions=permit_mynetworks,reject + -o mynetworks=127.0.0.0/8 + -o strict_rfc821_envelopes=yes + -o smtpd_error_sleep_time=0 + -o smtpd_soft_error_limit=1001 + -o smtpd_hard_error_limit=1000 + -o smtpd_client_connection_count_limit=0 + -o smtpd_client_connection_rate_limit=0 + -o receive_override_options=no_header_body_checks,no_unknown_recipient_checks +" >> $TMP_FILE2 + echo "# End of DTC configuration v0.17 : please don't touch this line !" >> $TMP_FILE2 + cat < $TMP_FILE2 >>"$PATH_POSTFIX_ETC/master.cf" + rm $TMP_FILE2 + + fi + + echo "# End of DTC configuration v0.12 : please don't touch this line !" >> $TMP_FILE + + # now to insert it at the end of the actual main.cf + cat < $TMP_FILE >>$PATH_POSTFIX_CONF + rm $TMP_FILE + # over-write the configuration for SASL + if [ -e $SASLTMP_FILE ]; then + cat $SASLTMP_FILE > $PATH_POSTFIX_ETC/sasl/smtpd.conf + rm $SASLTMP_FILE + fi + fi + fi -rm -f $PATH_QMAIL_CTRL/rcpthosts -touch $PATH_DTC_ETC/rcpthosts -ln -s $PATH_DTC_ETC/rcpthosts $PATH_QMAIL_CTRL/rcpthosts -touch $PATH_QMAIL_CTRL/virtualdomains -if ! [ -f $PATH_QMAIL_CTRL/virtualdomains.DTC.backup ] +# +# prepare mlmmj environment to work with dtc +# +if [ -f "/usr/bin/mlmmj-make-ml" ] then - cp -f $PATH_QMAIL_CTRL/virtualdomains $PATH_QMAIL_CTRL/virtualdomains.DTC.backup + mkdir -p /etc/mlmmj/lists + chown -R root:65534 /etc/mlmmj/lists + chmod -R g+w /etc/mlmmj/lists fi -rm -f $PATH_QMAIL_CTRL/virtualdomains -touch $PATH_DTC_ETC/virtualdomains -ln -s $PATH_DTC_ETC/virtualdomains $PATH_QMAIL_CTRL/virtualdomains -if ! [ -f /var/qmail/users/assign.DTC.backup ] +# This avoid hanging when (re)starting daemons under debian +if [ "$UNIX_TYPE" = "debian" ] then - cp -f /var/qmail/users/assign /var/qmail/users/assign.DTC.backup + db_stop fi -rm -f /var/qmail/users/assign -touch $PATH_DTC_ETC/assign -ln -s $PATH_DTC_ETC/assign /var/qmail/users/assign -# Complete mistake ! Please forgive me ! # -#if ! [ -f $PATH_QMAIL_CTRL/locals.DTC.backup ] -#then -# touch $PATH_QMAIL_CTRL/locals -# cp -f $PATH_QMAIL_CTRL/locals $PATH_QMAIL_CTRL/locals.DTC.backup -#fi -#rm -f $PATH_QMAIL_CTRL/locals -#touch $PATH_DTC_ETC/rcpthosts -#ln -s $PATH_DTC_ETC/rcpthosts $PATH_QMAIL_CTRL/locals +# Install courier mysql authenticaion +# +if [ -f "$PATH_COURIER_CONF_PATH/authdaemonrc" ] +then + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "===> Adding directives to Courier authdaemonrc" + fi + if grep "Configured by DTC" $PATH_COURIER_CONF_PATH/authdaemonrc >/dev/null + then + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "authdaemonrc has been configure before: skipping include insertion !" + fi + else + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "Inserting DTC configuration inside "$PATH_COURIER_CONF_PATH/authdaemonrc + fi + if ! [ -f $PATH_COURIER_CONF_PATH.DTC.backup ] + then + cp -f $PATH_COURIER_CONF_PATH/authdaemonrc $PATH_COURIER_CONF_PATH.DTC.backup + fi + TMP_FILE=`${MKTEMP} DTC_install.courier.conf.XXXXXX` || exit 1 + echo "# Configured by DTC v0.12 : Please don't touch this line !" > $TMP_FILE + echo "authmodulelist=\"authmysql authpam\"" >> $TMP_FILE + echo "# End of DTC configuration v0.12 : please don't touch this line !" >> $TMP_FILE + # now append this to the existing configuration file + cat < $TMP_FILE >> $PATH_COURIER_CONF_PATH/authdaemonrc + rm $TMP_FILE + echo " +# DB details for dtc mysql DB +MYSQL_SERVER $conf_mysql_host +MYSQL_PORT 3306 +MYSQL_DATABASE $conf_mysql_db +MYSQL_USERNAME dtcdaemons +MYSQL_PASSWORD ${MYSQL_DTCDAEMONS_PASS} +MYSQL_USER_TABLE pop_access +MYSQL_LOGIN_FIELD id +MYSQL_CRYPT_PWFIELD crypt +MYSQL_HOME_FIELD home +MYSQL_UID_FIELD uid +MYSQL_GID_FIELD gid +MYSQL_DEFAULT_DOMAIN $main_domain_name + +# use the experimental query +MYSQL_SELECT_CLAUSE SELECT concat(id, '@', mbox_host), crypt, passwd, uid, gid, home, '', quota_size, '' FROM pop_access WHERE (id = '\$(local_part)' AND mbox_host = '\$(domain)') OR (id = SUBSTRING_INDEX('\$(local_part)', '%', 1) AND mbox_host = SUBSTRING_INDEX('\$(local_part)', '%', -1)) + +MYSQL_CHPASS_CLAUSE UPDATE pop_access SET passwd='\$(newpass)', crypt='\$(newpass_crypt)' WHERE (id = '\$(local_part)' AND mbox_host = '\$(domain)') OR (id = SUBSTRING_INDEX('\$(local_part)', '%', 1) AND mbox_host = SUBSTRING_INDEX('\$(local_part)', '%', -1)) +" > $PATH_COURIER_CONF_PATH/authmysqlrc + if [ -x "/etc/init.d/courier-authdaemon" ] ; then + if [ -x /usr/sbin/invoke-rc.d ]; then + /usr/sbin/invoke-rc.d courier-authdaemon restart + else + /etc/init.d/courier-authdaemon restart + fi + fi + if [ -x "/etc/init.d/courier-imap" ] ; then + if [ -x /usr/sbin/invoke-rc.d ]; then + /usr/sbin/invoke-rc.d courier-imap restart + else + /etc/init.d/courier-imap restart + fi + fi + if [ -x "/etc/init.d/courier-pop" ] ; then + if [ -x /usr/sbin/invoke-rc.d ]; then + /usr/sbin/invoke-rc.d courier-pop restart + else + /etc/init.d/courier-pop restart + fi + fi + fi +fi -touch /etc/poppasswd -if ! [ -f /etc/poppasswd.DTC.backup ] +# Generate the OpenSSL test certificate if it does not exists +if [ ""$conf_gen_ssl_cert = "true" ]; then + if [ ! -e $PATH_DTC_ETC"/ssl" ]; then + mkdir -p $PATH_DTC_ETC"/ssl" + fi + cwd=`pwd` + cd $PATH_DTC_ETC"/ssl" + if [ ! -e "./"new.cert.csr ]; then + if [ ! -e "./"new.cert.cert ]; then + if [ ! -e "./"new.cert.key ]; then + CERTPASS_TMP_FILE=`${MKTEMP} certfilepass.XXXXXX` || exit 1 + echo $conf_gen_ssl_cert"" >$CERTPASS_TMP_FILE + ( echo $conf_cert_countrycode; + echo "the state"; + echo $conf_cert_locality; + echo $conf_cert_organization; + echo $conf_cert_unit; + echo $dtc_admin_subdomain"."$main_domain_name; + echo $conf_cert_email; + echo $conf_cert_challenge_pass; + echo $conf_cert_organization; ) | openssl req -passout file:$CERTPASS_TMP_FILE -new > new.cert.csr + openssl rsa -passin file:$CERTPASS_TMP_FILE -in privkey.pem -out new.cert.key + openssl x509 -in new.cert.csr -out new.cert.cert -req -signkey new.cert.key -days 3650 + rm $CERTPASS_TMP_FILE + fi + fi + fi + cd $cwd +fi + +# +# Install dovecot mysql authenticaion +# +if [ -f $PATH_DOVECOT_CONF ] then - cp -f /etc/poppasswd /etc/poppasswd.DTC.backup + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "===> Adding directives to dovecot.conf" + fi + if grep "Configured by DTC" $PATH_DOVECOT_CONF >/dev/null + then + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "dovecot.conf has been configure before: skipping include insertion !" + fi + else + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "Inserting DTC configuration inside "$PATH_DOVECOT_CONF + fi + if ! [ -f $PATH_DOVECOT_CONF.DTC.backup ] + then + cp -f $PATH_DOVECOT_CONF $PATH_DOVECOT_CONF.DTC.backup + fi + TMP_FILE=`${MKTEMP} DTC_install.dovecot.conf.XXXXXX` || exit 1 + echo "# Configured by DTC v0.12 : Please don't touch this line !" > $TMP_FILE + echo "auth_userdb = mysql $PATH_DTC_ETC/dovecot-mysql.conf" >> $TMP_FILE + echo "auth_passdb = mysql $PATH_DTC_ETC/dovecot-mysql.conf" >> $TMP_FILE + echo "# End of DTC configuration v0.12 : please don't touch this line !" >> $TMP_FILE + # now append this to the existing configuration file + cat < $TMP_FILE >> $PATH_DOVECOT_CONF + rm $TMP_FILE + echo " +# DB details for dtc mysql DB +db_host = $conf_mysql_host +db_port = 3306 +db_unix_socket = $MYSQL_DB_SOCKET_PATH +db = $conf_mysql_db +db_user = dtcdaemons +db_passwd = ${MYSQL_DTCDAEMONS_PASS} +db_client_flags = 0 + +default_pass_scheme = PLAIN +password_query = SELECT passwd FROM pop_access WHERE id = '%n' AND mbox_host = '%d' +user_query = SELECT home, uid, gid FROM pop_access WHERE id = '%n' AND mbox_host = '%d' +" > $PATH_DTC_ETC/dovecot-mysql.conf + # need to restart dovecot too + if [ -x "/etc/init.d/dovecot" ] ; then + /etc/init.d/dovecot restart + else + if [ -x /usr/sbin/invoke-rc.d ]; then + /usr/sbin/invoke-rc.d dovecot restart + fi + fi + fi fi -rm -f /etc/poppasswd -touch $PATH_DTC_ETC/poppasswd -ln -s $PATH_DTC_ETC/poppasswd /etc/poppasswd + # # Install proftpd.conf to access to the database # -echo "===> Adding directives to proftpd.conf" -if grep "Configured by DTC" $PATH_PROFTPD_CONF +if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "===> Adding directives to proftpd.conf" +fi +if grep "Configured by DTC" $PATH_PROFTPD_CONF >/dev/null then - echo "proftpd.conf has been configured before : skiping include inssertion !" + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "proftpd.conf has been configured before : skiping include inssertion !" + fi else - echo "Inserting DTC configuration inside "$PATH_PROFTPD_CONF + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "Inserting DTC configuration inside "$PATH_PROFTPD_CONF + fi if ! [ -f $PATH_PROFTPD_CONF.DTC.backup ] then cp -f $PATH_PROFTPD_CONF $PATH_PROFTPD_CONF.DTC.backup fi - echo "# Configured by DTC v0.10 : Please don't touch this line !" >/tmp/DTC_config_proftpd.conf + TMP_FILE=`${MKTEMP} DTC_install.proftp.conf.XXXXXX` || exit 1 + echo "# Configured by DTC v0.10 : Please don't touch this line !" > $TMP_FILE # This directive is not used anymore in newer version of proftpd -# echo "#UserReverseDNS off" >>/tmp/DTC_config_proftpd.conf - echo "IdentLookups off" >>/tmp/DTC_config_proftpd.conf - echo "SQLAuthenticate on" >>/tmp/DTC_config_proftpd.conf - echo "SQLConnectInfo "$conf_mysql_db"@"$conf_mysql_host" "$conf_mysql_login" "$conf_mysql_pass >>/tmp/DTC_config_proftpd.conf - echo "SQLAuthTypes Plaintext" >>/tmp/DTC_config_proftpd.conf - echo "SQLUserInfo ftp_access login password uid gid homedir shell" >>/tmp/DTC_config_proftpd.conf +# echo "#UserReverseDNS off" >> $TMP_FILE + echo "IdentLookups off" >> $TMP_FILE + echo "DefaultRoot ~" >> $TMP_FILE + echo "SQLAuthenticate on" >> $TMP_FILE + echo "SQLConnectInfo "$conf_mysql_db"@"$conf_mysql_host" dtcdaemons "${MYSQL_DTCDAEMONS_PASS} >> $TMP_FILE + echo "SQLAuthTypes Plaintext" >> $TMP_FILE + echo "SQLUserInfo ftp_access login password uid gid homedir shell" >> $TMP_FILE echo "# // Transfer Log to Proftpd SQLLog RETR,STOR transfer1 SQLNamedQuery transfer1 INSERT \"'%u', '%f', '%b', '%h', '%a', '%m', '%T',now(), 'c', NULL\" ftp_logs @@ -612,37 +1963,222 @@ SQLNamedQuery ulbytescount UPDATE \"ul_bytes=ul_bytes+%b WHERE login='%u SQLLog STOR ulcount SQLNamedQuery ulcount UPDATE \"ul_count=ul_count+1 WHERE login='%u'\" ftp_access -# End of DTC configuration v0.10 : please don't touch this line !" >>/tmp/DTC_config_proftpd.conf - cat </tmp/DTC_config_proftpd.conf >>$PATH_PROFTPD_CONF - rm /tmp/DTC_config_proftpd.conf +# End of DTC configuration v0.10 : please don't touch this line !" >> $TMP_FILE + cat < $TMP_FILE >>$PATH_PROFTPD_CONF + rm $TMP_FILE + # This restarts proftpd if under debian like system + # work has to be done under other OS to restart the ftp daemon + if [ -x "/etc/init.d/proftpd" ] ; then + if [ -x /usr/sbin/invoke-rc.d ]; then + /usr/sbin/invoke-rc.d proftpd restart + else + /etc/init.d/proftpd restart + fi + fi +fi + +# +# Install and configuration of FreeRadius 1.0 +# +if [ -e ""$FREERADIUS_ETC ] ;then + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "DTC has found you are using Freeradius and it's now configuring it" + fi + + FREERADIUS_CONF=$FREERADIUS_ETC/radiusd.conf + FREERADIUS_SQL_DOT_CONF=$FREERADIUS_ETC/sql.conf + + # Backup of freeradius config files + if [ -e $FREERADIUS_CONF ] ;then + if ! [ -e $FREERADIUS_CONF".DTCbackup" ] ;then + cp $FREERADIUS_CONF $FREERADIUS_CONF".DTCbackup" + fi + fi + + if [ -e $FREERADIUS_SQL_DOT_CONF ] ;then + if ! [ -e $FREERADIUS_SQL_DOT_CONF".DTCbackup" ] ;then + cp $FREERADIUS_SQL_DOT_CONF $FREERADIUS_SQL_DOT_CONF".DTCbackup" + fi + fi + + TMP_FILE=`${MKTEMP} DTC_install.radius.conf.XXXXXX` || exit 1 + TMP_FILE2=`${MKTEMP} DTC_install.radius.conf.XXXXXX` || exit 1 + TMP_FILE3=`${MKTEMP} DTC_install.radius.conf.XXXXXX` || exit 1 + TMP_FILE4=`${MKTEMP} DTC_install.radius.conf.XXXXXX` || exit 1 + TMP_FILE5=`${MKTEMP} DTC_install.radius.conf.XXXXXX` || exit 1 + TMP_FILE6=`${MKTEMP} DTC_install.radius.conf.XXXXXX` || exit 1 + + if [ -e /var/log/radacct ] ;then + chown -R nobody /var/log/radacct + fi + + sed "s/#user = nobody/user = nobody/" $FREERADIUS_CONF >$TMP_FILE + if grep "group = nobody" $TMP_FILE >/dev/null ;then + sed "s/#group = nobody/group = nobody/" $TMP_FILE >$TMP_FILE2 + else + sed "s/#group = nogroup/group = nogroup/" $TMP_FILE >$TMP_FILE2 + fi + sed "s/log_auth = no/log_auth = yes/" $TMP_FILE2 >$TMP_FILE3 + sed "s/log_auth_badpass = no/log_auth_badpass = yes/" $TMP_FILE3 >$TMP_FILE4 + sed "s/log_auth_goodpass = no/log_auth_goodpass = yes/" $TMP_FILE4 >$TMP_FILE5 + sed "s/# sql/ sql/" $TMP_FILE5 >$TMP_FILE6 + + cat <$TMP_FILE6 >$FREERADIUS_CONF + + rm $TMP_FILE $TMP_FILE2 $TMP_FILE3 $TMP_FILE4 $TMP_FILE5 $TMP_FILE6 + + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "===> Adding directives to sql.conf" + fi + + if grep "Configured by DTC" $FREERADIUS_SQL_DOT_CONF >/dev/null + then + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "sql.conf has been configured before : skiping include inssertion !" + fi + else + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "Inserting DTC configuration inside "$FREERADIUS_SQL_DOT_CONF + fi + + TMP_FILE1=`${MKTEMP} DTC_install.sql.conf.XXXXXX` || exit 1 + TMP_FILE2=`${MKTEMP} DTC_install.sql.conf.XXXXXX` || exit 1 + TMP_FILE3=`${MKTEMP} DTC_install.sql.conf.XXXXXX` || exit 1 + TMP_FILE4=`${MKTEMP} DTC_install.sql.conf.XXXXXX` || exit 1 + TMP_FILE5=`${MKTEMP} DTC_install.sql.conf.XXXXXX` || exit 1 + + # Remove the default config + grep -v "server =" $FREERADIUS_SQL_DOT_CONF >$TMP_FILE1 + grep -v "login =" $TMP_FILE1 >$TMP_FILE2 + grep -v "password =" $TMP_FILE2 >$TMP_FILE3 + grep -v "radius_db = " $TMP_FILE3 >$TMP_FILE4 + grep -v "}" $TMP_FILE4 >$TMP_FILE5 + + # Install the DTC db config + TMP_FILE=`${MKTEMP} DTC_install.sql.conf.XXXXXX` || exit 1 + echo "# Configured by DTC v0.10 : Please don't touch this line ! + # Connect info + server = "$conf_mysql_host" + login = "$conf_mysql_login" + password = "$conf_mysql_pass"" >> $TMP_FILE5 +# echo "SQLConnectInfo "$conf_mysql_db"@"$conf_mysql_host" "$conf_mysql_login" "$conf_mysql_pass >> $TMP_FILE4 + echo " # Database table configuration + radius_db = "$conf_mysql_db" +# End of DTC configuration v0.10 : please don't touch this line ! +} +" >> $TMP_FILE5 + + cat <$TMP_FILE5 >$FREERADIUS_SQL_DOT_CONF + rm $TMP_FILE $TMP_FILE1 $TMP_FILE2 $TMP_FILE3 $TMP_FILE4 $TMP_FILE5 + fi +fi + +# +# Generate default config file for awstats (if we have it installed) +# + +if [ -f $PATH_AWSTATS_ETC/awstats.conf ]; then + # now if we don't already have a dtc awstats config, create one based on the installed package config + if ! [ -f $PATH_AWSTATS_ETC/awstats.dtc.conf ]; then + # we will use the environment variables while calling awstats... + # Parameter="__ENVNAME__" + cp $PATH_AWSTATS_ETC/awstats.conf $PATH_AWSTATS_ETC/awstats.dtc.conf + perl -i -p -e 's/^LogFile=\"[^\"]*\"/LogFile=\"__AWSTATS_LOG_FILE__\"/' $PATH_AWSTATS_ETC/awstats.dtc.conf + perl -i -p -e 's/^SiteDomain=\"[^\"]*\"/SiteDomain=\"__AWSTATS_FULL_DOMAIN__\"/' $PATH_AWSTATS_ETC/awstats.dtc.conf + perl -i -p -e 's/^DirData=\"[^\"]*\"/DirData=\"__AWSTATS_DIR_DATA__\"/' $PATH_AWSTATS_ETC/awstats.dtc.conf + perl -i -p -e 's/^CreateDirDataIfNotExists=0/CreateDirDataIfNotExists=1/' $PATH_AWSTATS_ETC/awstats.dtc.conf + fi fi # -# Install the cron php4 script in the /etc/crontab +# Install the cron php4 script in the $PATH_CRONTAB_CONF # -echo "===> Installing cron script in /etc/crontab" -if grep "Configured by DTC" /etc/crontab + +# just in case we haven't specified PATH_CRONTAB_CONF, default to /etc/crontab +if [ -z ""$PATH_CRONTAB_CONF ]; then + PATH_CRONTAB_CONF=/etc/crontab +fi + +if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "===> Installing cron script in "$PATH_CRONTAB_CONF +fi +if grep "Configured by DTC " $PATH_CRONTAB_CONF >/dev/null then - echo "/etc/crontab has been configured before : skinping include inssertion" + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "/etc/crontab has been configured before : skinping include inssertion" + fi else - echo "Inserting DTC cronjob in /etc/crontab" - if ! [ -f /etc/crontab.DTC.backup ] + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "Inserting DTC cronjob in "$PATH_CRONTAB_CONF + fi + if ! [ -f $PATH_CRONTAB_CONF.DTC.backup ] then - cp -f /etc/crontab /etc/crontab.DTC.backup + cp -f $PATH_CRONTAB_CONF $PATH_CRONTAB_CONF.DTC.backup fi - echo "# Configured by DTC v0.10 : Please don't touch this line !" >/tmp/DTC_config_crontab - echo "00,10,20,30,40,50 * * * * root cd $PATH_DTC_ADMIN; $PATH_PHP_CGI $PATH_DTC_ADMIN/cron.php >>/var/log/dtc.log" >>/tmp/DTC_config_crontab - cat </tmp/DTC_config_crontab >>/etc/crontab - rm /tmp/DTC_config_crontab + TMP_FILE=`${MKTEMP} DTC_install.crontab.XXXXXX` || exit 1 + echo "# Configured by DTC v0.10 : Please don't touch this line !" > $TMP_FILE + echo "00,10,20,30,40,50 * * * * root cd $PATH_DTC_ADMIN; $PATH_PHP_CGI $PATH_DTC_ADMIN/cron.php >>/var/log/dtc.log" >> $TMP_FILE + cat < $TMP_FILE >>/etc/crontab + rm $TMP_FILE fi -cd $PATH_DTC_ADMIN; $PATH_PHP_CGI $PATH_DTC_ADMIN/cron.php +# add the default password to .htpasswd if it doesn't exist already +if [ -e $conf_hosting_path/.htpasswd ]; then + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "OK, you have your "$conf_hosting_path"/.htpasswd setup already!" + fi +else + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "Creating "$conf_hosting_path"/.htpasswd with username '$conf_adm_login' and password '$conf_adm_pass'" + fi + if [ -e "/usr/local/bin/htpasswd" ] ;then + HTPASSWD="/usr/local/bin/htpasswd" + else + if [ -e "/usr/bin/htpasswd" ] ;then + HTPASSWD="/usr/bin/htpasswd" + else + HTPASSWD="htpasswd" + fi + fi + $HTPASSWD -cb "$conf_hosting_path"/.htpasswd "$conf_adm_login" $conf_adm_pass +fi + +if [ -e $PATH_DTC_ADMIN/.htaccess ]; then + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "OK, you have your "$PATH_DTC_ADMIN"/.htaccess setup already!" + fi +else + if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "Creating "$PATH_DTC_ADMIN"/.htaccess file." + fi + echo "AuthName \"DTC root control panel login!\" +AuthType Basic +AuthUserFile "$conf_hosting_path"/.htpasswd +require valid-user" >$PATH_DTC_ADMIN/.htaccess +fi + +if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "***********************************************************" + echo "*** Please wait while DTC configures all the daemons... ***" + echo "***********************************************************" + + cd $PATH_DTC_ADMIN; $PATH_PHP_CGI $PATH_DTC_ADMIN/cron.php + echo "--- --- --- INSTALLATION FINISHED --- --- ---" +else + cd $PATH_DTC_ADMIN; $PATH_PHP_CGI $PATH_DTC_ADMIN/cron.php 2>&1 >/var/log/dtc.log + echo "done!" +fi -echo "--- --- --- INSTALLATION FINISHED --- --- ---" -echo "DTC has finished to install. You can point your favorite" -echo "browser to: http(s)://"$dtc_admin_subdomain"."$main_domain_name"/dtcadmin/" -echo "Dont forget to edit the forwarders part of your bind" -echo "configuration if not done already !" echo "" -echo "Please visit DTC home:" +echo "Browse to: \"http(s)://"$dtc_admin_subdomain"."$main_domain_name"/dtcadmin/\"" +echo "with login/pass of the main domain admin." +echo "Remember to relaunch this installer if you" +echo "install some other mail servers, whatever" +echo "it is (qmail, postfix, courier, etc...)." +if [ ""$VERBOSE_INSTALL = "yes" ] ;then + echo "" + echo "Visit DTC Home page" +fi echo "http://www.gplhost.com/?rub=softwares&sousrub=dtc" + +exit 0 diff --git a/sysutils/dtc/pkg-descr b/sysutils/dtc/pkg-descr index 5972cff98c0c..2530fbfeae6f 100644 --- a/sysutils/dtc/pkg-descr +++ b/sysutils/dtc/pkg-descr @@ -1,13 +1,18 @@ -A hosting web GUI for admin and accounting apache/named/proftpd/qmail -Domain Technologie Control (DTC) is a set of PHP scripts and a web -interface that manage a MySQL database that handles all the host -information. It generates backup scripts, statistic calculation scripts, and -config files for bind, Apache, qmail, and proftpd, using a single system -UID/GID. With DTC, you can delegate the task of creating subdomains, email, -and FTP accounts to users for the domain names they own, and monitor -bandwidth per user and service. +A GPL web control panel for admin and accounting hosting services. +Domain Technologie Control (DTC) is a GPL control panel for hosting. Using a +web GUI for admin and accounting all hosting services, DTC can delegate the +task of creating subdomains, email, and FTP accounts to users for the domain +names they own. DTC manages a MySQL database containing all the hosting +informations. It has support for many programs (bind 8 and 9 and +compatibles, MySQL, Apache 1.3, php4, qmail, postfix 2, courier, dovecot, +proftpd, webalizer, mod-log-sql, etc...) thrue config files and/or MySQL +plugin (when service is non-critical). It can also generates backup scripts, +calculation scripts, and config files using a single system UID/GID, and +monitor all trafic accounting per user and per service. Since version 0.12, +DTC is fully skinable and translated in 7 language (Chinese, English, +Spanish, French, Deuch, German and Russian). -WWW: http://www.gplhost.com/?rub=software&sousrub=dtc +WWW: http://www.gplhost.com/?rub=softwares&sousrub=dtc - Thomas GOIRAND thomas@goirand.fr diff --git a/sysutils/dtc/pkg-plist b/sysutils/dtc/pkg-plist index 3382025c814c..7e670ff3be72 100644 --- a/sysutils/dtc/pkg-plist +++ b/sysutils/dtc/pkg-plist @@ -1,45 +1,64 @@ +%%DTCROOT%%/Makefile +%%DTCROOT%%/admin/checkbind.sh +%%DTCROOT%%/admin/404.php %%DTCROOT%%/admin/dtcrm/main.php +%%DTCROOT%%/admin/dtcrm/product_manager.php %%DTCROOT%%/admin/dtcrm/submit_to_sql.php -%%DTCROOT%%/admin/.htaccess -%%DTCROOT%%/admin/404.php +%%DTCROOT%%/admin/bw_per_month.php %%DTCROOT%%/admin/cron.php %%DTCROOT%%/admin/deamons_state.php %%DTCROOT%%/admin/deamons_state_strings.php %%DTCROOT%%/admin/favicon.ico %%DTCROOT%%/admin/index.php +%%DTCROOT%%/admin/view_waitingusers.php %%DTCROOT%%/admin/genfiles/gen_backup_script.php %%DTCROOT%%/admin/genfiles/gen_email_account.php +%%DTCROOT%%/admin/genfiles/gen_maildrop_userdb.php %%DTCROOT%%/admin/genfiles/gen_named_files.php %%DTCROOT%%/admin/genfiles/gen_perso_vhost.php +%%DTCROOT%%/admin/genfiles/gen_postfix_email_account.php %%DTCROOT%%/admin/genfiles/gen_pro_vhost.php +%%DTCROOT%%/admin/genfiles/gen_qmail_email_account.php +%%DTCROOT%%/admin/genfiles/gen_sasl.sh %%DTCROOT%%/admin/genfiles/gen_webalizer_stat.php %%DTCROOT%%/admin/genfiles/genfiles.php -%%DTCROOT%%/admin/genfiles/.#gen_backup_script.php.1.1 -%%DTCROOT%%/admin/inc/database.png -%%DTCROOT%%/admin/inc/dns.png -%%DTCROOT%%/admin/inc/domain.png +%%DTCROOT%%/admin/genfiles/remote_mail_list.php +%%DTCROOT%%/admin/genfiles/gen_awstats.php +%%DTCROOT%%/admin/genfiles/gen_mailfilter.sh +%%DTCROOT%%/admin/inc/domains.png +%%DTCROOT%%/admin/inc/ftp-accounts.png %%DTCROOT%%/admin/inc/draw_user_admin.php %%DTCROOT%%/admin/inc/dtc_config.php %%DTCROOT%%/admin/inc/dtc_config_strings.php -%%DTCROOT%%/admin/inc/floppy.png +%%DTCROOT%%/admin/inc/mailboxs.png %%DTCROOT%%/admin/inc/folder.png %%DTCROOT%%/admin/inc/help.png -%%DTCROOT%%/admin/inc/home.png %%DTCROOT%%/admin/inc/img.php -%%DTCROOT%%/admin/inc/mail.png -%%DTCROOT%%/admin/inc/man.png +%%DTCROOT%%/admin/inc/my-account.png %%DTCROOT%%/admin/inc/nav.php -%%DTCROOT%%/admin/inc/stat.png +%%DTCROOT%%/admin/inc/package-installer.png %%DTCROOT%%/admin/inc/submit_root_querys.php -%%DTCROOT%%/admin/inc/tool.png -%%DTCROOT%%/admin/inc/tst_icon.png +%%DTCROOT%%/admin/inc/adddomain.png +%%DTCROOT%%/admin/inc/arial.ttf +%%DTCROOT%%/admin/inc/databases.png +%%DTCROOT%%/admin/inc/mailing-lists.png +%%DTCROOT%%/admin/inc/nameservers.png +%%DTCROOT%%/admin/inc/nickhandles.png +%%DTCROOT%%/admin/inc/password.png +%%DTCROOT%%/admin/inc/reseller.png +%%DTCROOT%%/admin/inc/stats.png +%%DTCROOT%%/admin/inc/subdomains.png +%%DTCROOT%%/admin/inc/tools.png %%DTCROOT%%/admin/tables/admin.sql +%%DTCROOT%%/admin/tables/backup.sql %%DTCROOT%%/admin/tables/clients.sql %%DTCROOT%%/admin/tables/commande.sql %%DTCROOT%%/admin/tables/config.sql %%DTCROOT%%/admin/tables/cron_job.sql %%DTCROOT%%/admin/tables/domain.sql %%DTCROOT%%/admin/tables/email_accouting.sql +%%DTCROOT%%/admin/tables/fetchmail.sql +%%DTCROOT%%/admin/tables/freeradius.sql %%DTCROOT%%/admin/tables/ftp_access.sql %%DTCROOT%%/admin/tables/ftp_accounting.sql %%DTCROOT%%/admin/tables/ftp_logs.sql @@ -47,12 +66,30 @@ %%DTCROOT%%/admin/tables/handle.sql %%DTCROOT%%/admin/tables/http_accounting.sql %%DTCROOT%%/admin/tables/nameservers.sql +%%DTCROOT%%/admin/tables/new_admin.sql %%DTCROOT%%/admin/tables/paiement.sql +%%DTCROOT%%/admin/tables/pending_queries.sql %%DTCROOT%%/admin/tables/pop_access.sql %%DTCROOT%%/admin/tables/product.sql +%%DTCROOT%%/admin/tables/secpayconf.sql %%DTCROOT%%/admin/tables/smtp_logs.sql %%DTCROOT%%/admin/tables/subdomain.sql +%%DTCROOT%%/admin/tables/whitelist.sql %%DTCROOT%%/admin/tables/whois.sql +%%DTCROOT%%/admin/tables/mailinglist.sql +%%DTCROOT%%/admin/dtc_db.php +%%DTCROOT%%/admin/restor_db.php +%%DTCROOT%%/client/bw_per_month.php +%%DTCROOT%%/client/dynip.php +%%DTCROOT%%/client/favicon.ico +%%DTCROOT%%/client/img2.php +%%DTCROOT%%/client/index.php +%%DTCROOT%%/client/list_domains.php +%%DTCROOT%%/client/login.php +%%DTCROOT%%/client/new_account.php +%%DTCROOT%%/client/new_account_form.php +%%DTCROOT%%/client/paypal.php +%%DTCROOT%%/client/secpaycallback_worldpay.php %%DTCROOT%%/client/inc/database.png %%DTCROOT%%/client/inc/dns.png %%DTCROOT%%/client/inc/domain.png @@ -63,24 +100,106 @@ %%DTCROOT%%/client/inc/img.php %%DTCROOT%%/client/inc/mail.png %%DTCROOT%%/client/inc/man.png +%%DTCROOT%%/client/inc/package-installer.png %%DTCROOT%%/client/inc/stat.png %%DTCROOT%%/client/inc/tool.png %%DTCROOT%%/client/inc/tst_icon.png -%%DTCROOT%%/client/dynip.php -%%DTCROOT%%/client/favicon.ico -%%DTCROOT%%/client/img2.php -%%DTCROOT%%/client/index.php -%%DTCROOT%%/client/secpaycallback_worldpay.php +%%DTCROOT%%/client/inc/adddomain.png +%%DTCROOT%%/client/inc/arial.ttf +%%DTCROOT%%/client/inc/databases.png +%%DTCROOT%%/client/inc/domains.png +%%DTCROOT%%/client/inc/ftp-accounts.png +%%DTCROOT%%/client/inc/mailboxs.png +%%DTCROOT%%/client/inc/mailing-lists.png +%%DTCROOT%%/client/inc/my-account.png +%%DTCROOT%%/client/inc/nameservers.png +%%DTCROOT%%/client/inc/nickhandles.png +%%DTCROOT%%/client/inc/password.png +%%DTCROOT%%/client/inc/reseller.png +%%DTCROOT%%/client/inc/stats.png +%%DTCROOT%%/client/inc/subdomains.png +%%DTCROOT%%/client/inc/tools.png +%%DTCROOT%%/doc/changelog +%%DTCROOT%%/doc/INSTALL +%%DTCROOT%%/doc/LICENSE +%%DTCROOT%%/doc/bind_conf/etc/bind/db.1.2.3.4 +%%DTCROOT%%/doc/bind_conf/etc/bind/db.0 +%%DTCROOT%%/doc/bind_conf/etc/bind/db.local +%%DTCROOT%%/doc/bind_conf/etc/bind/db.127 +%%DTCROOT%%/doc/bind_conf/etc/bind/db.255 +%%DTCROOT%%/doc/bind_conf/etc/bind/db.root +%%DTCROOT%%/doc/bind_conf/etc/named.conf +%%DTCROOT%%/doc/bind_conf/db.root +%%DTCROOT%%/doc/changelog.Debian +%%DTCROOT%%/doc/copyright +%%DTCROOT%%/doc/.#todo.1.8 +%%DTCROOT%%/doc/todo +%%DTCROOT%%/doc/upgrade_sql_from_beta.sql +%%DTCROOT%%/doc/daemonconf_howto/ftp_http_logging_to_mysql +%%DTCROOT%%/doc/daemonconf_howto/my_init.d_qmail.startup.script +%%DTCROOT%%/doc/daemonconf_howto/qmail_anti_spam_measures +%%DTCROOT%%/doc/html/en/addzone.png +%%DTCROOT%%/doc/html/en/1.html +%%DTCROOT%%/doc/html/en/2.html +%%DTCROOT%%/doc/html/en/3.html +%%DTCROOT%%/doc/html/en/4.html +%%DTCROOT%%/doc/html/en/5.html +%%DTCROOT%%/doc/html/en/clientconfig.png +%%DTCROOT%%/doc/html/en/conffilegen.png +%%DTCROOT%%/doc/html/en/confprinc.png +%%DTCROOT%%/doc/html/en/confzone.png +%%DTCROOT%%/doc/html/en/doc.css +%%DTCROOT%%/doc/html/en/domainconf.png +%%DTCROOT%%/doc/html/en/dtc.png +%%DTCROOT%%/doc/html/en/dtc_cluster.png +%%DTCROOT%%/doc/html/en/dtc_logo.gif +%%DTCROOT%%/doc/html/en/ftps.png +%%DTCROOT%%/doc/html/en/index.example.php +%%DTCROOT%%/doc/html/en/index.html +%%DTCROOT%%/doc/html/en/mailboxs.png +%%DTCROOT%%/doc/html/en/menudtc.png +%%DTCROOT%%/doc/html/en/newadmin.png +%%DTCROOT%%/doc/html/en/page_top.html +%%DTCROOT%%/doc/html/fr/addzone.png +%%DTCROOT%%/doc/html/fr/1.html +%%DTCROOT%%/doc/html/fr/2.html +%%DTCROOT%%/doc/html/fr/3.html +%%DTCROOT%%/doc/html/fr/4.html +%%DTCROOT%%/doc/html/fr/5.html +%%DTCROOT%%/doc/html/fr/clientconfig.png +%%DTCROOT%%/doc/html/fr/conffilegen.png +%%DTCROOT%%/doc/html/fr/confprinc.png +%%DTCROOT%%/doc/html/fr/confzone.png +%%DTCROOT%%/doc/html/fr/doc.css +%%DTCROOT%%/doc/html/fr/domainconf.png +%%DTCROOT%%/doc/html/fr/dtc.png +%%DTCROOT%%/doc/html/fr/dtc_logo.gif +%%DTCROOT%%/doc/html/fr/ftps.png +%%DTCROOT%%/doc/html/fr/index.html +%%DTCROOT%%/doc/html/fr/index.php +%%DTCROOT%%/doc/html/fr/mailboxs.png +%%DTCROOT%%/doc/html/fr/menudtc.png +%%DTCROOT%%/doc/html/fr/newadmin.png +%%DTCROOT%%/doc/html/fr/page_top.html +%%DTCROOT%%/doc/ssl_cert.sh.txt +%%DTCROOT%%/email/index.php +%%DTCROOT%%/email/api.php +%%DTCROOT%%/email/inc/img.php +%%DTCROOT%%/email/login.php +%%DTCROOT%%/email/submit_to_sql_dtcemail.php +%%DTCROOT%%/email/gfx +%%DTCROOT%%/email/imgcache +%%DTCROOT%%/shared/404_template/index.php +%%DTCROOT%%/shared/404_template/404.php +%%DTCROOT%%/shared/autoSQLconfig.php +%%DTCROOT%%/shared/dtc_lib.php +%%DTCROOT%%/shared/upgrade_sql.php %%DTCROOT%%/shared/drawlib/anotherDtc.php %%DTCROOT%%/shared/drawlib/cc_code_popup.php %%DTCROOT%%/shared/drawlib/dtc_functions.php %%DTCROOT%%/shared/drawlib/skin.php %%DTCROOT%%/shared/drawlib/skinLib.php %%DTCROOT%%/shared/drawlib/tree_menu.php -%%DTCROOT%%/shared/.htaccess -%%DTCROOT%%/shared/autoSQLconfig.php -%%DTCROOT%%/shared/dtc_lib.php -%%DTCROOT%%/shared/upgrade_sql.php %%DTCROOT%%/shared/dtcrm/srs/CHANGELOG %%DTCROOT%%/shared/dtcrm/srs/OPS.php %%DTCROOT%%/shared/dtcrm/srs/country_codes.php @@ -106,11 +225,19 @@ %%DTCROOT%%/shared/dtcrm/srs_registernames.php %%DTCROOT%%/shared/dtcrm/submit_to_sql.php %%DTCROOT%%/shared/dtcrm/todo +%%DTCROOT%%/shared/dtcrm/strings.php %%DTCROOT%%/shared/gfx/dtc_logo.gif %%DTCROOT%%/shared/gfx/dtc.css %%DTCROOT%%/shared/gfx/bar/middle_n.png +%%DTCROOT%%/shared/gfx/bar/end.gif %%DTCROOT%%/shared/gfx/bar/end.png +%%DTCROOT%%/shared/gfx/bar/middle_green.gif +%%DTCROOT%%/shared/gfx/bar/middle_orange.gif +%%DTCROOT%%/shared/gfx/bar/middle_red.gif %%DTCROOT%%/shared/gfx/bar/middle_s.png +%%DTCROOT%%/shared/gfx/bar/middle_umpty.gif +%%DTCROOT%%/shared/gfx/bar/middle_yellow.gif +%%DTCROOT%%/shared/gfx/bar/start.gif %%DTCROOT%%/shared/gfx/bar/start.png %%DTCROOT%%/shared/gfx/dtc/all_scripts.gif %%DTCROOT%%/shared/gfx/dtc/generate_backup.gif @@ -121,134 +248,216 @@ %%DTCROOT%%/shared/gfx/dtc/generate_web2.gif %%DTCROOT%%/shared/gfx/dtc/reinit_named.gif %%DTCROOT%%/shared/gfx/dtc_logo_small.gif +%%DTCROOT%%/shared/gfx/stock_add_24.png +%%DTCROOT%%/shared/gfx/stock_apply_20.png +%%DTCROOT%%/shared/gfx/stock_save_24.png +%%DTCROOT%%/shared/gfx/stock_trash_24.png +%%DTCROOT%%/shared/gfx/language/en/pub/banner_alight.gif +%%DTCROOT%%/shared/gfx/language/en/button_en.gif %%DTCROOT%%/shared/gfx/language/de.gif %%DTCROOT%%/shared/gfx/language/dtc.gif %%DTCROOT%%/shared/gfx/language/en.gif +%%DTCROOT%%/shared/gfx/language/es.gif %%DTCROOT%%/shared/gfx/language/fr.gif +%%DTCROOT%%/shared/gfx/language/hu.gif +%%DTCROOT%%/shared/gfx/language/it.gif %%DTCROOT%%/shared/gfx/language/nl.gif %%DTCROOT%%/shared/gfx/language/ru.gif -%%DTCROOT%%/shared/gfx/language/en/pub/banner_alight.gif -%%DTCROOT%%/shared/gfx/language/en/button_en.gif +%%DTCROOT%%/shared/gfx/language/zh.gif %%DTCROOT%%/shared/gfx/language/fr/pub/banner_alight.gif %%DTCROOT%%/shared/gfx/language/fr/button_fr.gif %%DTCROOT%%/shared/gfx/language/nl/pub/banner_alight.gif %%DTCROOT%%/shared/gfx/language/nl/button_en.gif %%DTCROOT%%/shared/gfx/language/ru/pub/banner_alight.gif %%DTCROOT%%/shared/gfx/language/ru/button_en.gif -%%DTCROOT%%/shared/gfx/language/es.gif +%%DTCROOT%%/shared/gfx/language/pl.png +%%DTCROOT%%/shared/gfx/menu/admins.png +%%DTCROOT%%/shared/gfx/menu/bw_icon.png %%DTCROOT%%/shared/gfx/menu/config.gif +%%DTCROOT%%/shared/gfx/menu/config_panel.png +%%DTCROOT%%/shared/gfx/menu/crm.png +%%DTCROOT%%/shared/gfx/menu/daemons.png +%%DTCROOT%%/shared/gfx/menu/product_manager.png %%DTCROOT%%/shared/gfx/menu/recycle.gif %%DTCROOT%%/shared/gfx/menu/users.gif +%%DTCROOT%%/shared/gfx/menu/user-editor.png %%DTCROOT%%/shared/gfx/securepay/poweredByWorldPay.gif -%%DTCROOT%%/shared/gfx/skin/notitle/darkblue/background.gif -%%DTCROOT%%/shared/gfx/skin/notitle/darkblue/border_1.gif -%%DTCROOT%%/shared/gfx/skin/notitle/darkblue/border_2.gif -%%DTCROOT%%/shared/gfx/skin/notitle/darkblue/border_3.gif -%%DTCROOT%%/shared/gfx/skin/notitle/darkblue/border_4.gif -%%DTCROOT%%/shared/gfx/skin/notitle/darkblue/corner_1.gif -%%DTCROOT%%/shared/gfx/skin/notitle/darkblue/corner_2.gif -%%DTCROOT%%/shared/gfx/skin/notitle/darkblue/corner_3.gif -%%DTCROOT%%/shared/gfx/skin/notitle/darkblue/corner_4.gif -%%DTCROOT%%/shared/gfx/skin/notitle/darkblue/skin.css -%%DTCROOT%%/shared/gfx/skin/notitle/darkblue/skin.php -%%DTCROOT%%/shared/gfx/skin/simple/green/background.gif -%%DTCROOT%%/shared/gfx/skin/simple/green/border_1.gif -%%DTCROOT%%/shared/gfx/skin/simple/green/border_2.gif -%%DTCROOT%%/shared/gfx/skin/simple/green/border_3.gif -%%DTCROOT%%/shared/gfx/skin/simple/green/border_4.gif -%%DTCROOT%%/shared/gfx/skin/simple/green/corner_1.gif -%%DTCROOT%%/shared/gfx/skin/simple/green/corner_2.gif -%%DTCROOT%%/shared/gfx/skin/simple/green/corner_3.gif -%%DTCROOT%%/shared/gfx/skin/simple/green/corner_4.gif -%%DTCROOT%%/shared/gfx/skin/simple/green/skin.css -%%DTCROOT%%/shared/gfx/skin/simple/green/skin.php -%%DTCROOT%%/shared/gfx/skin/simple/green2/background.gif -%%DTCROOT%%/shared/gfx/skin/simple/green2/border_1.gif -%%DTCROOT%%/shared/gfx/skin/simple/green2/border_2.gif -%%DTCROOT%%/shared/gfx/skin/simple/green2/border_3.gif -%%DTCROOT%%/shared/gfx/skin/simple/green2/border_4.gif -%%DTCROOT%%/shared/gfx/skin/simple/green2/corner_1.gif -%%DTCROOT%%/shared/gfx/skin/simple/green2/corner_2.gif -%%DTCROOT%%/shared/gfx/skin/simple/green2/corner_3.gif -%%DTCROOT%%/shared/gfx/skin/simple/green2/corner_4.gif -%%DTCROOT%%/shared/gfx/skin/simple/green2/skin.css -%%DTCROOT%%/shared/gfx/skin/simple/green2/skin.php +%%DTCROOT%%/shared/gfx/skin/darkblue/background.gif +%%DTCROOT%%/shared/gfx/skin/darkblue/bgcolor.php +%%DTCROOT%%/shared/gfx/skin/darkblue/border_1.gif +%%DTCROOT%%/shared/gfx/skin/darkblue/border_2.gif +%%DTCROOT%%/shared/gfx/skin/darkblue/border_3.gif +%%DTCROOT%%/shared/gfx/skin/darkblue/border_4.gif +%%DTCROOT%%/shared/gfx/skin/darkblue/corner_1.gif +%%DTCROOT%%/shared/gfx/skin/darkblue/corner_2.gif +%%DTCROOT%%/shared/gfx/skin/darkblue/corner_3.gif +%%DTCROOT%%/shared/gfx/skin/darkblue/corner_4.gif +%%DTCROOT%%/shared/gfx/skin/darkblue/skin.css +%%DTCROOT%%/shared/gfx/skin/darkblue/skin.php +%%DTCROOT%%/shared/gfx/skin/frame/border_1.gif +%%DTCROOT%%/shared/gfx/skin/frame/border_2.gif +%%DTCROOT%%/shared/gfx/skin/frame/border_3.gif +%%DTCROOT%%/shared/gfx/skin/frame/border_4.gif +%%DTCROOT%%/shared/gfx/skin/frame/corner_1.gif +%%DTCROOT%%/shared/gfx/skin/frame/corner_2.gif +%%DTCROOT%%/shared/gfx/skin/frame/corner_3.gif +%%DTCROOT%%/shared/gfx/skin/frame/corner_4.gif +%%DTCROOT%%/shared/gfx/skin/frame/skin.css +%%DTCROOT%%/shared/gfx/skin/frame/skin.php +%%DTCROOT%%/shared/gfx/skin/green/background.gif +%%DTCROOT%%/shared/gfx/skin/green/border_1.gif +%%DTCROOT%%/shared/gfx/skin/green/border_2.gif +%%DTCROOT%%/shared/gfx/skin/green/border_3.gif +%%DTCROOT%%/shared/gfx/skin/green/border_4.gif +%%DTCROOT%%/shared/gfx/skin/green/corner_1.gif +%%DTCROOT%%/shared/gfx/skin/green/corner_2.gif +%%DTCROOT%%/shared/gfx/skin/green/corner_3.gif +%%DTCROOT%%/shared/gfx/skin/green/corner_4.gif +%%DTCROOT%%/shared/gfx/skin/green/skin.css +%%DTCROOT%%/shared/gfx/skin/green/skin.php +%%DTCROOT%%/shared/gfx/skin/green2/background.gif +%%DTCROOT%%/shared/gfx/skin/green2/border_1.gif +%%DTCROOT%%/shared/gfx/skin/green2/border_2.gif +%%DTCROOT%%/shared/gfx/skin/green2/border_3.gif +%%DTCROOT%%/shared/gfx/skin/green2/border_4.gif +%%DTCROOT%%/shared/gfx/skin/green2/corner_1.gif +%%DTCROOT%%/shared/gfx/skin/green2/corner_2.gif +%%DTCROOT%%/shared/gfx/skin/green2/corner_3.gif +%%DTCROOT%%/shared/gfx/skin/green2/corner_4.gif +%%DTCROOT%%/shared/gfx/skin/green2/skin.css +%%DTCROOT%%/shared/gfx/skin/green2/skin.php +%%DTCROOT%%/shared/gfx/skin/green_gpl/icons/debian.gif +%%DTCROOT%%/shared/gfx/skin/green_gpl/icons/dolar.gif +%%DTCROOT%%/shared/gfx/skin/green_gpl/icons/dtc.gif +%%DTCROOT%%/shared/gfx/skin/green_gpl/icons/dtc_logo.gif +%%DTCROOT%%/shared/gfx/skin/green_gpl/icons/earth.gif +%%DTCROOT%%/shared/gfx/skin/green_gpl/icons/gplhost.gif +%%DTCROOT%%/shared/gfx/skin/green_gpl/icons/icann-logo_small.gif +%%DTCROOT%%/shared/gfx/skin/green_gpl/icons/phpmyadmin.png +%%DTCROOT%%/shared/gfx/skin/green_gpl/background.png +%%DTCROOT%%/shared/gfx/skin/green_gpl/bgcolor.php +%%DTCROOT%%/shared/gfx/skin/green_gpl/border_bottom.png +%%DTCROOT%%/shared/gfx/skin/green_gpl/border_left.png +%%DTCROOT%%/shared/gfx/skin/green_gpl/border_right.png +%%DTCROOT%%/shared/gfx/skin/green_gpl/corner_bottom_left.png +%%DTCROOT%%/shared/gfx/skin/green_gpl/corner_bottom_right.png +%%DTCROOT%%/shared/gfx/skin/green_gpl/corner_top_left.png +%%DTCROOT%%/shared/gfx/skin/green_gpl/corner_top_right.png +%%DTCROOT%%/shared/gfx/skin/green_gpl/no_title_corner_top_left.png +%%DTCROOT%%/shared/gfx/skin/green_gpl/no_title_corner_top_right.png +%%DTCROOT%%/shared/gfx/skin/green_gpl/no_title_title_3_background.png +%%DTCROOT%%/shared/gfx/skin/green_gpl/skin.css +%%DTCROOT%%/shared/gfx/skin/green_gpl/skin.php +%%DTCROOT%%/shared/gfx/skin/green_gpl/title_1_icon.png +%%DTCROOT%%/shared/gfx/skin/green_gpl/title_2_transi.png +%%DTCROOT%%/shared/gfx/skin/green_gpl/title_3_background.png +%%DTCROOT%%/shared/gfx/skin/green_gpl/title_4_end.png +%%DTCROOT%%/shared/gfx/skin/iglobal/background.gif +%%DTCROOT%%/shared/gfx/skin/iglobal/bgcolor.php +%%DTCROOT%%/shared/gfx/skin/iglobal/border_bottom.gif +%%DTCROOT%%/shared/gfx/skin/iglobal/border_left.gif +%%DTCROOT%%/shared/gfx/skin/iglobal/border_right.gif +%%DTCROOT%%/shared/gfx/skin/iglobal/border_top.gif +%%DTCROOT%%/shared/gfx/skin/iglobal/corner_bottom_left.gif +%%DTCROOT%%/shared/gfx/skin/iglobal/corner_bottom_right.gif +%%DTCROOT%%/shared/gfx/skin/iglobal/corner_top_left.gif +%%DTCROOT%%/shared/gfx/skin/iglobal/corner_top_right.gif +%%DTCROOT%%/shared/gfx/skin/iglobal/skin.css +%%DTCROOT%%/shared/gfx/skin/iglobal/skin.php +%%DTCROOT%%/shared/gfx/skin/muedgrey/amp_style.css +%%DTCROOT%%/shared/gfx/skin/muedgrey/background.gif +%%DTCROOT%%/shared/gfx/skin/muedgrey/bgcolor.php +%%DTCROOT%%/shared/gfx/skin/muedgrey/border_1.gif +%%DTCROOT%%/shared/gfx/skin/muedgrey/border_2.gif +%%DTCROOT%%/shared/gfx/skin/muedgrey/border_3.gif +%%DTCROOT%%/shared/gfx/skin/muedgrey/border_4.gif +%%DTCROOT%%/shared/gfx/skin/muedgrey/corner_1.gif +%%DTCROOT%%/shared/gfx/skin/muedgrey/corner_2.gif +%%DTCROOT%%/shared/gfx/skin/muedgrey/corner_3.gif +%%DTCROOT%%/shared/gfx/skin/muedgrey/corner_4.gif +%%DTCROOT%%/shared/gfx/skin/muedgrey/degrade.jpg +%%DTCROOT%%/shared/gfx/skin/muedgrey/skin.css +%%DTCROOT%%/shared/gfx/skin/muedgrey/skin.php +%%DTCROOT%%/shared/gfx/skin/ruffdogs_mozilla/background.png +%%DTCROOT%%/shared/gfx/skin/ruffdogs_mozilla/bgcolor.php +%%DTCROOT%%/shared/gfx/skin/ruffdogs_mozilla/border_bottom.png +%%DTCROOT%%/shared/gfx/skin/ruffdogs_mozilla/ruffdogs.css +%%DTCROOT%%/shared/gfx/skin/ruffdogs_mozilla/skin.css +%%DTCROOT%%/shared/gfx/skin/ruffdogs_mozilla/skin.php +%%DTCROOT%%/shared/gfx/skin/ruffdogs_mozilla/title_1_icon.png +%%DTCROOT%%/shared/gfx/skin/ruffdogs_mozilla/title_2_transi.png +%%DTCROOT%%/shared/gfx/skin/ruffdogs_mozilla/title_3_background.png +%%DTCROOT%%/shared/gfx/skin/tex/bgcolor.php +%%DTCROOT%%/shared/gfx/skin/tex/bgtitlewin.png +%%DTCROOT%%/shared/gfx/skin/tex/bgwin.png +%%DTCROOT%%/shared/gfx/skin/tex/skin.css +%%DTCROOT%%/shared/gfx/skin/tex/skin.php +%%DTCROOT%%/shared/gfx/skin/tex/pagetop.html +%%DTCROOT%%/shared/gfx/pagetop/dtc_banner.gif +%%DTCROOT%%/shared/gfx/pagetop/dtc_banner_end.gif +%%DTCROOT%%/shared/gfx/pagetop/dtc_logo.gif +%%DTCROOT%%/shared/gfx/pagetop/logoend.gif +%%DTCROOT%%/shared/gfx/pagetop/logofond.gif +%%DTCROOT%%/shared/gfx/pagetop/logostart.gif +%%DTCROOT%%/shared/gfx/tucows.jpg +%%DTCROOT%%/shared/inc/forms/admin_stats.php +%%DTCROOT%%/shared/inc/forms/database.php +%%DTCROOT%%/shared/inc/forms/dns.php +%%DTCROOT%%/shared/inc/forms/domain_info.php +%%DTCROOT%%/shared/inc/forms/domain_stats.php +%%DTCROOT%%/shared/inc/forms/email.php +%%DTCROOT%%/shared/inc/forms/ftp.php +%%DTCROOT%%/shared/inc/forms/lists.php +%%DTCROOT%%/shared/inc/forms/my_account.php +%%DTCROOT%%/shared/inc/forms/packager.php +%%DTCROOT%%/shared/inc/forms/root_admin.php +%%DTCROOT%%/shared/inc/forms/subdomain.php +%%DTCROOT%%/shared/inc/forms/reseller.php %%DTCROOT%%/shared/inc/accounting.php %%DTCROOT%%/shared/inc/dbconect.php %%DTCROOT%%/shared/inc/draw.php %%DTCROOT%%/shared/inc/fetch.php +%%DTCROOT%%/shared/inc/fetchmail.php %%DTCROOT%%/shared/inc/submit_to_sql.php +%%DTCROOT%%/shared/inc/sql/database.php +%%DTCROOT%%/shared/inc/sql/dns.php +%%DTCROOT%%/shared/inc/sql/domain_info.php +%%DTCROOT%%/shared/inc/sql/email.php +%%DTCROOT%%/shared/inc/sql/ftp.php +%%DTCROOT%%/shared/inc/sql/subdomain.php +%%DTCROOT%%/shared/inc/sql/reseller.php +%%DTCROOT%%/shared/inc/sql/lists.php +%%DTCROOT%%/shared/inc/.#submit_to_sql.php.1.26 +%%DTCROOT%%/shared/inc/tree_mem_to_db.php +%%DTCROOT%%/shared/package-installer/phpbb/phpBB-2.0.17.tar.bz2 +%%DTCROOT%%/shared/package-installer/phpbb/dtc-pkg-info.php +%%DTCROOT%%/shared/package-installer/phpbb/dtc-pkg-install.php +%%DTCROOT%%/shared/package-installer/horde/dtc-pkg-info.php +%%DTCROOT%%/shared/package-installer/horde/horde-3.0.4.tar.gz +%%DTCROOT%%/shared/package-installer/horde/dtc-pkg-install.php +%%DTCROOT%%/shared/package-installer/oscommerce/dtc-pkg-info.php +%%DTCROOT%%/shared/package-installer/oscommerce/dtc-pkg-install.php +%%DTCROOT%%/shared/package-installer/oscommerce/oscommerce-2.2ms2.tar.gz +%%DTCROOT%%/shared/package-installer/phpnuke/dtc-pkg-info.php +%%DTCROOT%%/shared/package-installer/phpnuke/dtc-pkg-install.php +%%DTCROOT%%/shared/package-installer/phpnuke/phpnuke-7.7.tar.gz +%%DTCROOT%%/shared/package-installer/drupal/drupal-4.6.3.tar.gz +%%DTCROOT%%/shared/package-installer/drupal/dtc-pkg-info.php +%%DTCROOT%%/shared/package-installer/drupal/dtc-pkg-install.php +%%DTCROOT%%/shared/securepay/gateways/paypal.php +%%DTCROOT%%/shared/securepay/gateways/worldpay.php %%DTCROOT%%/shared/securepay/RENAME_ME_paiement_config.php %%DTCROOT%%/shared/securepay/paiement.php %%DTCROOT%%/shared/securepay/pay_functions.php -%%DTCROOT%%/shared/securepay/paypal.php -%%DTCROOT%%/shared/securepay/worldpay.php +%%DTCROOT%%/shared/template/dtc_logo.gif %%DTCROOT%%/shared/template/index.php +%%DTCROOT%%/shared/template/favicon.ico %%DTCROOT%%/shared/vars/global_vars.php %%DTCROOT%%/shared/vars/lang.php %%DTCROOT%%/shared/vars/strings.php %%DTCROOT%%/shared/vars/table_names.php +%%DTCROOT%%/shared/default_admin_site.php %%DTCROOT%%/shared/dtc_version.php -%%DTCROOT%%/doc/changelog -%%DTCROOT%%/doc/INSTALL -%%DTCROOT%%/doc/LICENSE -%%DTCROOT%%/doc/bind_conf/etc/bind/db.1.2.3.4 -%%DTCROOT%%/doc/bind_conf/etc/bind/db.0 -%%DTCROOT%%/doc/bind_conf/etc/bind/db.local -%%DTCROOT%%/doc/bind_conf/etc/bind/db.127 -%%DTCROOT%%/doc/bind_conf/etc/bind/db.255 -%%DTCROOT%%/doc/bind_conf/etc/bind/db.root -%%DTCROOT%%/doc/bind_conf/etc/named.conf -%%DTCROOT%%/doc/bind_conf/db.root -%%DTCROOT%%/doc/changelog.Debian -%%DTCROOT%%/doc/copyright -%%DTCROOT%%/doc/todo -%%DTCROOT%%/doc/upgrade_sql_from_beta.sql -%%DTCROOT%%/doc/daemonconf_howto/ftp_http_logging_to_mysql -%%DTCROOT%%/doc/daemonconf_howto/my_init.d_qmail.startup.script -%%DTCROOT%%/doc/daemonconf_howto/qmail_anti_spam_measures -%%DTCROOT%%/doc/html/en/addzone.png -%%DTCROOT%%/doc/html/en/1.html -%%DTCROOT%%/doc/html/en/2.html -%%DTCROOT%%/doc/html/en/3.html -%%DTCROOT%%/doc/html/en/4.html -%%DTCROOT%%/doc/html/en/5.html -%%DTCROOT%%/doc/html/en/clientconfig.png -%%DTCROOT%%/doc/html/en/conffilegen.png -%%DTCROOT%%/doc/html/en/confprinc.png -%%DTCROOT%%/doc/html/en/confzone.png -%%DTCROOT%%/doc/html/en/doc.css -%%DTCROOT%%/doc/html/en/domainconf.png -%%DTCROOT%%/doc/html/en/dtc.png -%%DTCROOT%%/doc/html/en/dtc_logo.gif -%%DTCROOT%%/doc/html/en/ftps.png -%%DTCROOT%%/doc/html/en/index.html -%%DTCROOT%%/doc/html/en/index.php -%%DTCROOT%%/doc/html/en/mailboxs.png -%%DTCROOT%%/doc/html/en/menudtc.png -%%DTCROOT%%/doc/html/en/newadmin.png -%%DTCROOT%%/doc/html/en/page_top.html -%%DTCROOT%%/doc/html/fr/addzone.png -%%DTCROOT%%/doc/html/fr/1.html -%%DTCROOT%%/doc/html/fr/2.html -%%DTCROOT%%/doc/html/fr/3.html -%%DTCROOT%%/doc/html/fr/4.html -%%DTCROOT%%/doc/html/fr/5.html -%%DTCROOT%%/doc/html/fr/clientconfig.png -%%DTCROOT%%/doc/html/fr/conffilegen.png -%%DTCROOT%%/doc/html/fr/confprinc.png -%%DTCROOT%%/doc/html/fr/confzone.png -%%DTCROOT%%/doc/html/fr/doc.css -%%DTCROOT%%/doc/html/fr/domainconf.png -%%DTCROOT%%/doc/html/fr/dtc.png -%%DTCROOT%%/doc/html/fr/dtc_logo.gif -%%DTCROOT%%/doc/html/fr/ftps.png -%%DTCROOT%%/doc/html/fr/index.html -%%DTCROOT%%/doc/html/fr/index.php -%%DTCROOT%%/doc/html/fr/mailboxs.png -%%DTCROOT%%/doc/html/fr/menudtc.png -%%DTCROOT%%/doc/html/fr/newadmin.png -%%DTCROOT%%/doc/html/fr/page_top.html %%DTCROOT%%/admin/gfx %%DTCROOT%%/admin/imgcache %%DTCROOT%%/client/gfx @@ -257,16 +466,32 @@ sbin/dtc-install sbin/dtc-deinstall @dirrm %%DTCROOT%%/shared/vars @dirrm %%DTCROOT%%/shared/template +@dirrm %%DTCROOT%%/shared/securepay/gateways @dirrm %%DTCROOT%%/shared/securepay +@dirrm %%DTCROOT%%/shared/package-installer/phpnuke +@dirrm %%DTCROOT%%/shared/package-installer/phpbb +@dirrm %%DTCROOT%%/shared/package-installer/oscommerce +@dirrm %%DTCROOT%%/shared/package-installer/horde +@dirrm %%DTCROOT%%/shared/package-installer/drupal +@dirrm %%DTCROOT%%/shared/package-installer +@dirrm %%DTCROOT%%/shared/inc/sql +@dirrm %%DTCROOT%%/shared/inc/forms @dirrm %%DTCROOT%%/shared/inc +@dirrm %%DTCROOT%%/shared/imgcache @dirrm %%DTCROOT%%/shared/gfx/usermenu -@dirrm %%DTCROOT%%/shared/gfx/skin/simple/green2 -@dirrm %%DTCROOT%%/shared/gfx/skin/simple/green -@dirrm %%DTCROOT%%/shared/gfx/skin/simple -@dirrm %%DTCROOT%%/shared/gfx/skin/notitle/darkblue -@dirrm %%DTCROOT%%/shared/gfx/skin/notitle +@dirrm %%DTCROOT%%/shared/gfx/skin/tex +@dirrm %%DTCROOT%%/shared/gfx/skin/ruffdogs_mozilla +@dirrm %%DTCROOT%%/shared/gfx/skin/muedgrey +@dirrm %%DTCROOT%%/shared/gfx/skin/iglobal +@dirrm %%DTCROOT%%/shared/gfx/skin/green_gpl/icons +@dirrm %%DTCROOT%%/shared/gfx/skin/green_gpl +@dirrm %%DTCROOT%%/shared/gfx/skin/green2 +@dirrm %%DTCROOT%%/shared/gfx/skin/green +@dirrm %%DTCROOT%%/shared/gfx/skin/frame +@dirrm %%DTCROOT%%/shared/gfx/skin/darkblue @dirrm %%DTCROOT%%/shared/gfx/skin @dirrm %%DTCROOT%%/shared/gfx/securepay +@dirrm %%DTCROOT%%/shared/gfx/pagetop @dirrm %%DTCROOT%%/shared/gfx/menu @dirrm %%DTCROOT%%/shared/gfx/language/ru/pub @dirrm %%DTCROOT%%/shared/gfx/language/ru @@ -283,7 +508,10 @@ sbin/dtc-deinstall @dirrm %%DTCROOT%%/shared/dtcrm/srs @dirrm %%DTCROOT%%/shared/dtcrm @dirrm %%DTCROOT%%/shared/drawlib +@dirrm %%DTCROOT%%/shared/404_template @dirrm %%DTCROOT%%/shared +@dirrm %%DTCROOT%%/email/inc +@dirrm %%DTCROOT%%/email @dirrm %%DTCROOT%%/doc/html/fr @dirrm %%DTCROOT%%/doc/html/en @dirrm %%DTCROOT%%/doc/html @@ -293,6 +521,7 @@ sbin/dtc-deinstall @dirrm %%DTCROOT%%/doc/bind_conf @dirrm %%DTCROOT%%/doc @dirrm %%DTCROOT%%/client/inc +@dirrm %%DTCROOT%%/client/gateways @dirrm %%DTCROOT%%/client @dirrm %%DTCROOT%%/admin/tables @dirrm %%DTCROOT%%/admin/inc |