# # use gmake instead BSD make # CONFIGURE_DIR=.. M4_DIR=../m4 ACCESS_DIR=.. ACLS_DIR=../acls FEATURES_DIR=../features HACKS_DIR=../hacks SITE_DIR=../site SYSTEMFILTERS_DIR=../system_filters DELIVERIES_DIR=../deliveries VIRT_DOMAINS_DIR=../virt_domains PERL_DIR=../perl BIN_DIR=../bin PERIODIC_DIR=../periodic PERIODIC_M4_DIR=../m4/periodic PERIODIC_SITE_DIR=../site/periodic SAMPLES_DIR=../samples COUNTRIES_DIR=../countries ### for make #MAP_SRC=../mailertable ../aliases ../virt_aliases ../virtusertasble ${VIRT_DOMAINS_DIR}/*.aliases ${VIRT_DOMAINS_DIR}/*.virtusertable #MAP_OBJ= #.for _f in ${MAP_SRC} userdb #.if exists(${_f}) #MAP_OBJ+=${_f}.db #.endif #.endfor ### for gmake XARGS_L_I += $(shell test "`uname`" = "FreeBSD" && echo -n 'xargs -L 1 -I ') XARGS_L += $(shell test "`uname`" = "FreeBSD" && echo -n 'xargs -L 1 ') EXIM_USER += $(shell test "`uname`" = "FreeBSD" && echo -n 'mailnull') XARGS_L_I += $(shell test "`uname`" = "Linux" && echo -n 'xargs -l1 -i') XARGS_L += $(shell test "`uname`" = "Linux" && echo -n 'xargs -l1 ') EXIM_USER += $(shell test "`uname`" = "Linux" && echo -n 'exim') MAP_OBJ += $(shell test -f ../mailertable && echo ../mailertable.db) MAP_OBJ += $(shell test -f ../aliases && echo ../aliases.db) MAP_OBJ += $(shell test -f ../virt_aliases && echo ../virt_aliases.db) MAP_OBJ += $(shell test -f ../virtusertable && echo ../virtusertable.db) MAP_OBJ += $(shell ls ${VIRT_DOMAINS_DIR}/*.aliases 2>/dev/null | ${XARGS_L_I}map echo ${VIRT_DOMAINS_DIR}/map.db) MAP_OBJ += $(shell ls ${VIRT_DOMAINS_DIR}/*.virtusertable 2>/dev/null | ${XARGS_L_I}map echo ${VIRT_DOMAINS_DIR}/map.db) INIT_SCRIPT += $(shell test -f /etc/rc.d/exim && echo /etc/rc.d/exim) INIT_SCRIPT += $(shell test -f /usr/local/etc/rc.d/exim.sh && echo /usr/local/etc/rc.d/exim.sh) INIT_SCRIPT += $(shell test -f /etc/rc.d/init.d/exim && echo /etc/rc.d/init.d/exim) #INIT_SCRIPT += $(shell test -f /sbin/service && echo /sbin/service exim) build : pre-install configure system_filter exim.pl periodic build-all : pre-install configure system_filter exim.pl periodic ${MAP_OBJ} db : ${MAP_OBJ} all : build-all reload : ${INIT_SCRIPT} reload restart : ${INIT_SCRIPT} restart start : ${INIT_SCRIPT} start stop : ${INIT_SCRIPT} stop ##### configure ##### configure : ${CONFIGURE_DIR}/configure ${CONFIGURE_DIR}/configure : ${M4_DIR}/configure.mc ${SITE_DIR}/conf ${M4_DIR}/conf.default ${ACLS_DIR}/* ${FEATURES_DIR}/* ${SITE_DIR}/* ${DELIVERIES_DIR}/* dnsbls.lists if [ -f ${CONFIGURE_DIR}/configure ]; then cat ${CONFIGURE_DIR}/configure > ${CONFIGURE_DIR}/configure.bak; chmod 640 ${CONFIGURE_DIR}/configure.bak; fi m4 \ -DconfACLS_DIR="${ACLS_DIR}" \ -DconfFEATURES_DIR="${FEATURES_DIR}" \ -DconfHACKS_DIR="${HACKS_DIR}" \ -DconfM4_DIR="${M4_DIR}" \ -DconfACCESS_DIR="${ACCESS_DIR}" \ -DconfSITE_DIR="${SITE_DIR}" \ -DconfSYSTEMFILTERS_DIR="${SYSTEMFILTERS_DIR}" \ -DconfDELIVERIES_DIR="${DELIVERIES_DIR}" \ ${M4_DIR}/configure.mc \ | perl -n -e 's/\s+([\r\n])/$$1/; if(/^[\r\n]*$$/){$$empty=1;}else{if($$empty){print("\n");$$empty=0}print $$_}' \ | perl -n -e 'print $$_ unless (/^\s*\\\s*$$/)' \ > $@.tmp cat $@.tmp > $@ rm -rf $@.tmp chmod 640 $@ ( echo "\ include(confFEATURES_DIR\`/cfhead.m4')\ include(confM4_DIR\`/conf.default')\ include(confSITE_DIR/\`conf')\ chown ifdef(\`confEXIM_USER',confEXIM_USER,${EXIM_USER}) $@" ; \ echo "chgrp ifdef(\`confEXIM_GROUP',confEXIM_GROUP,mail) $@" ; \ ) | m4 \ -DconfM4_DIR="${M4_DIR}" \ -DconfFEATURES_DIR="${FEATURES_DIR}" \ -DconfSITE_DIR="${SITE_DIR}" \ | perl -n -e 's/\s+([\r\n])/$$1/; if(/^[\r\n]*$$/){$$empty=1;}else{if($$empty){print("\n");$$empty=0}print $$_}' \ > ${CONFIGURE_DIR}/chown.sh /bin/sh ${CONFIGURE_DIR}/chown.sh rm ${CONFIGURE_DIR}/chown.sh ##### DNSBL list ##### #dnsbls.lists : ${ACLS_DIR}/dnsbls.* dnsbls.lists : ${ACLS_DIR}/dnsbls.defer.dialup ${ACLS_DIR}/dnsbls.pass.dialup ${ACLS_DIR}/dnsbls.defer ${ACLS_DIR}/dnsbls.pass ${ACLS_DIR}/dnsbls.warn ${ACLS_DIR}/dnsbls.defer.dialup : ${SITE_DIR}/dnsbls.list cat ${SITE_DIR}/dnsbls.list | \ perl -n -e 'print $$_ unless(/^\s*[#\r\n]/)' | \ perl -n -e 'print($$1."\n") if(/^(.+?)\s*:\s*deny\s*:\s*defer\s*:\s*dialup/i)' | \ perl -e '@lines=;$$list=join("", @lines);chomp($$list);$$list=~s/\n/ \\\n\t\t\t\t: /gms;print($$list)' \ > $@ ${ACLS_DIR}/dnsbls.pass.dialup : ${SITE_DIR}/dnsbls.list cat ${SITE_DIR}/dnsbls.list | \ perl -n -e 'print $$_ unless(/^\s*[#\r\n]/)' | \ perl -n -e 'print($$1."\n") if(/^(.+?)\s*:\s*deny\s*:\s*pass\s*:\s*dialup/i)' | \ perl -e '@lines=;$$list=join("", @lines);chomp($$list);$$list=~s/\n/ \\\n\t\t\t\t: /gms;print($$list)' \ > $@ ${ACLS_DIR}/dnsbls.defer : ${SITE_DIR}/dnsbls.list cat ${SITE_DIR}/dnsbls.list | \ perl -n -e 'print $$_ unless(/^\s*[#\r\n]/)' | \ perl -n -e 'print($$1."\n") if(/^(.+?)\s*:\s*deny\s*:\s*defer\s*$$/i)' | \ perl -e '@lines=;$$list=join("", @lines);chomp($$list);$$list=~s/\n/ \\\n\t\t\t\t: /gms;print($$list)' \ > $@ ${ACLS_DIR}/dnsbls.pass : ${SITE_DIR}/dnsbls.list cat ${SITE_DIR}/dnsbls.list | \ perl -n -e 'print $$_ unless(/^\s*[#\r\n]/)' | \ perl -n -e 'print($$1."\n") if(/^(.+?)\s*:\s*deny\s*:\s*pass\s*$$/i)' | \ perl -e '@lines=;$$list=join("", @lines);chomp($$list);$$list=~s/\n/ \\\n\t\t\t\t: /gms;print($$list)' \ > $@ ${ACLS_DIR}/dnsbls.warn : ${SITE_DIR}/dnsbls.list cat ${SITE_DIR}/dnsbls.list | \ perl -n -e 'print $$_ unless(/^\s*[#\r\n]/)' | \ perl -n -e 'print($$1."\n") if(/^(.+?)\s*:\s*warn/i)' | \ perl -e '@lines=;$$list=join("", @lines);chomp($$list);$$list=~s/\n/ \\\n\t\t\t\t: /gms;print($$list)' \ > $@ ##### system filters ##### system_filter : ${CONFIGURE_DIR}/system_filter ### for gmake SYSTEMFILTERS += $(shell ls ${SYSTEMFILTERS_DIR}/* 2>/dev/null | ${XARGS_L} echo) SYSTEMFILTERS_SITE += $(shell ls ${SITE_DIR}/system_filter* 2>/dev/null | ${XARGS_L} echo) ${CONFIGURE_DIR}/system_filter : ${M4_DIR}/system_filter.mc ${SYSTEMFILTERS} ${SYSTEMFILTERS_SITE} ${SITE_DIR}/conf ${M4_DIR}/conf.default ${SYSTEMFILTERS_DIR}/warnings ${SYSTEMFILTERS_DIR}/quarantine ${FEATURES_DIR}/spamassassin.m4 m4 \ -DconfACLS_DIR="${ACLS_DIR}" \ -DconfFEATURES_DIR="${FEATURES_DIR}" \ -DconfHACKS_DIR="${HACKS_DIR}" \ -DconfM4_DIR=${M4_DIR} \ -DconfACCESS_DIR="${ACCESS_DIR}" \ -DconfSITE_DIR="${SITE_DIR}" \ -DconfSYSTEMFILTERS_DIR="${SYSTEMFILTERS_DIR}" \ ${M4_DIR}/system_filter.mc | \ perl -n -e 's/\s+([\r\n])/$$1/; if(/^[\r\n]*$$/){$$empty=1;}else{if($$empty){print("\n");$$empty=0}print $$_}' \ > ${CONFIGURE_DIR}/system_filter ${SYSTEMFILTERS_DIR}/warnings : ${SYSTEMFILTERS_DIR}/warnings.list ${M4_DIR}/warnings.mc echo -n > ${SYSTEMFILTERS_DIR}/warnings perl -ne ' \ chomp; s/\|/###/g; @f=split(/\s*###\s*/); \ if (open(M4, "|m4 ". \ "-DWARN_FIELD=$$f[$$[] ". \ "-DWARN_DIR=$$f[$$[+1] ". \ "-DWARN_MESSAGE=\"$$f[$$[+2]\" ". \ "${M4_DIR}/warnings.mc")) { \ while () {print $$_} \ }' ${SYSTEMFILTERS_DIR}/warnings.list >> ${SYSTEMFILTERS_DIR}/warnings ${SYSTEMFILTERS_DIR}/quarantine : ${SYSTEMFILTERS_DIR}/quarantine.list ${M4_DIR}/quarantine.mc echo -n > ${SYSTEMFILTERS_DIR}/quarantine perl -ne ' \ chomp; s/\|/###/g; @f=split(/\s*###\s*/); \ if (open(M4, "|m4 ". \ "-DWARN_FIELD=$$f[$$[] ". \ "-DWARN_DIR=$$f[$$[+1] ". \ "-DWARN_MESSAGE=\"$$f[$$[+2]\" ". \ "${M4_DIR}/quarantine.mc")) { \ while () {print $$_} \ }' ${SYSTEMFILTERS_DIR}/quarantine.list >> ${SYSTEMFILTERS_DIR}/quarantine ##### exim.pl ##### exim.pl : ${CONFIGURE_DIR}/exim.pl ### for gmake SITE_PERL += $(shell ls ${SITE_DIR}/*.pl 2>/dev/null | ${XARGS_L} echo) ${CONFIGURE_DIR}/exim.pl : ${CONFIGURE_DIR}/configure ${SITE_PERL} echo -n > ${CONFIGURE_DIR}/exim.pl if [ ! -z "${SITE_PERL}" ]; then cat ${SITE_PERL} > ${CONFIGURE_DIR}/exim.pl; fi perl -n -e 'print "$$1\n" if (/\$$\{perl\{([^\}\r\n]+)\}/)' < ${CONFIGURE_DIR}/configure \ | sort | uniq \ | ${XARGS_L_I}perl_func cat ${PERL_DIR}/perl_func.pl \ >> ${CONFIGURE_DIR}/exim.pl chown ${EXIM_USER} ${CONFIGURE_DIR}/exim.pl chgrp mail ${CONFIGURE_DIR}/exim.pl chmod 750 ${CONFIGURE_DIR}/exim.pl ##### STARTTLS key/certificate ##### exim.pem : ../exim.pem ../exim.pem : openssl req -newkey rsa:1024 -x509 -nodes -days 365 -out $@ -keyout $@ chown ${EXIM_USER} $@ ; \ chmod 600 $@ ##### DBM files ##### ### for gmake %.db : % exim_dbmbuild $< $@ ../%.db : ../% exim_dbmbuild $< $@ ##### synchronization ##### SYNC_SRC_HOST=rsync.mta.org.ua SYNC_SRC_DIR=exim-4.50-conf sync : sync_m4 sync_acls sync_deliveries sync_features sync_perl sync_system_filters sync_samples sync_bin sync_patches sync_redhat sync_hacks sync_m4 : if [ -f ${CONFIGURE_DIR}/m4/CHANGES ]; then \ mv ${CONFIGURE_DIR}/m4/CHANGES /tmp/exim-4.50-conf-CHANGES; \ fi; \ rsync -avz --delete rsync://${SYNC_SRC_HOST}/${SYNC_SRC_DIR}/m4/ ${CONFIGURE_DIR}/m4/ --exclude '*m4/CHANGES.bak' if [ -f /tmp/exim-4.50-conf-CHANGES ]; then \ mv /tmp/exim-4.50-conf-CHANGES ${CONFIGURE_DIR}/m4/CHANGES.bak ; \ fi sync_acls : rsync -avz --delete rsync://${SYNC_SRC_HOST}/${SYNC_SRC_DIR}/acls/ ${CONFIGURE_DIR}/acls/ sync_deliveries : rsync -avz --delete rsync://${SYNC_SRC_HOST}/${SYNC_SRC_DIR}/deliveries/ ${CONFIGURE_DIR}/deliveries/ sync_features : rsync -avz --delete rsync://${SYNC_SRC_HOST}/${SYNC_SRC_DIR}/features/ ${CONFIGURE_DIR}/features/ sync_hacks : rsync -avz --delete rsync://${SYNC_SRC_HOST}/${SYNC_SRC_DIR}/hacks/ ${CONFIGURE_DIR}/hacks/ sync_perl : rsync -avz --delete rsync://${SYNC_SRC_HOST}/${SYNC_SRC_DIR}/perl/ ${CONFIGURE_DIR}/perl/ sync_system_filters : rsync -avz --delete rsync://${SYNC_SRC_HOST}/${SYNC_SRC_DIR}/system_filters/ ${CONFIGURE_DIR}/system_filters/ sync_samples : rsync -avz --delete rsync://${SYNC_SRC_HOST}/${SYNC_SRC_DIR}/samples/ ${CONFIGURE_DIR}/samples/ sync_bin : rsync -avz --delete rsync://${SYNC_SRC_HOST}/${SYNC_SRC_DIR}/bin/ ${CONFIGURE_DIR}/bin/ sync_patches : rsync -avz --delete rsync://${SYNC_SRC_HOST}/${SYNC_SRC_DIR}/patches/ ${CONFIGURE_DIR}/patches/ sync_redhat : rsync -avz --delete rsync://${SYNC_SRC_HOST}/${SYNC_SRC_DIR}/redhat/ ${CONFIGURE_DIR}/redhat/ \ --exclude '*/Makefile.local' --exclude 'make.conf' if [ ! -f ${CONFIGURE_DIR}/redhat/make.conf ]; then \ touch ${CONFIGURE_DIR}/redhat/make.conf ; \ fi sync_countries : # синхронизация списков сетей по странам cat ${M4_DIR}/sync_countries.sh.m4 \ | m4 \ -DconfACLS_DIR="${ACLS_DIR}" \ -DconfFEATURES_DIR="${FEATURES_DIR}" \ -DconfHACKS_DIR="${HACKS_DIR}" \ -DconfM4_DIR="${M4_DIR}" \ -DconfACCESS_DIR="${ACCESS_DIR}" \ -DconfSITE_DIR="${SITE_DIR}" \ -DconfSYSTEMFILTERS_DIR="${SYSTEMFILTERS_DIR}" \ -DconfDELIVERIES_DIR="${DELIVERIES_DIR}" \ -DconfCOUNTRIES_DIR="${COUNTRIES_DIR}" \ | perl -n -e 's/\s+([\r\n])/$$1/; if(/^[\r\n]*$$/){$$empty=1;}else{if($$empty){print("\n");$$empty=0}print $$_}' \ > ${BIN_DIR}/sync_countries.sh /bin/sh ${BIN_DIR}/sync_countries.sh ##### access-relay-greylist ##### access-relay-greylist : ${ACCESS_DIR}/access-relay-greylist ### for gmake COUNTRIES_LIST += $(shell ls ${COUNTRIES_DIR}/*.txt 2>/dev/null | ${XARGS_L} echo) ${ACCESS_DIR}/access-relay-greylist : ${M4_DIR}/make_access_relay_greylist.sh.m4 ${SITE_DIR}/conf ${M4_DIR}/conf.default ${COUNTRIES_DIR}/*.txt cat ${M4_DIR}/make_access_relay_greylist.sh.m4 \ | m4 \ -DconfCONFIGURE_DIR="${CONFIGURE_DIR}" \ -DconfACLS_DIR="${ACLS_DIR}" \ -DconfFEATURES_DIR="${FEATURES_DIR}" \ -DconfHACKS_DIR="${HACKS_DIR}" \ -DconfM4_DIR="${M4_DIR}" \ -DconfACCESS_DIR="${ACCESS_DIR}" \ -DconfSITE_DIR="${SITE_DIR}" \ -DconfSYSTEMFILTERS_DIR="${SYSTEMFILTERS_DIR}" \ -DconfDELIVERIES_DIR="${DELIVERIES_DIR}" \ -DconfCOUNTRIES_DIR="${COUNTRIES_DIR}" \ | perl -n -e 's/\s+([\r\n])/$$1/; if(/^[\r\n]*$$/){$$empty=1;}else{if($$empty){print("\n");$$empty=0}print $$_}' \ > ${BIN_DIR}/make_access_relay_greylist.sh /bin/sh ${BIN_DIR}/make_access_relay_greylist.sh ##### install ##### install : pre-install post-install preinstall : pre-install postinstall : post-install pre-install : # создание каталогов if [ ! -d ${SITE_DIR} ]; then mkdir ${SITE_DIR}; fi if [ ! -d ${PERIODIC_DIR} ]; then mkdir ${PERIODIC_DIR}; fi if [ ! -d ${PERIODIC_SITE_DIR} ]; then mkdir ${PERIODIC_SITE_DIR}; fi # переименование/перенос/удаление вспомагательных конфигов if [ -f ${CONFIGURE_DIR}/hosts-reject ]; then mv ${CONFIGURE_DIR}/hosts-reject ${CONFIGURE_DIR}/hosts-dropfrom; fi if [ -f ${CONFIGURE_DIR}/hosts-rejected ]; then mv ${CONFIGURE_DIR}/hosts-rejected ${CONFIGURE_DIR}/hosts-dropfrom; fi if [ -f ${CONFIGURE_DIR}/dnsbls.list ]; then mv ${CONFIGURE_DIR}/dnsbls.list ${SITE_DIR}/dnsbls.list; fi if [ -f ${CONFIGURE_DIR}/recipients_abuse ]; then mv ${CONFIGURE_DIR}/recipients_abuse ${CONFIGURE_DIR}/recipients_spam_friends; fi if [ -f ${CONFIGURE_DIR}/domains-sharedpop ]; then rm -rf ${CONFIGURE_DIR}/domains-sharedpop; fi # конвертация вспомагательных конфигов if [ -f ${CONFIGURE_DIR}/skip_verify_sender_addr ]; then \ ( \ cat ${SAMPLES_DIR}/skip_verify_sender_mail; \ perl -e 'while (<>) { \ if ((!/^\s*[#\n\r]/) and (/(.+)\@(.+)/)) { \ $$addr{$$2}.=$$1."\n"; \ } \ } \ foreach $$domain (sort(keys(%addr))) { \ print($$domain."\t"); \ foreach (split(/\n/, $$addr{$$domain})) { \ print(" : ".$$_); \ } \ print("\n"); \ }') < ${CONFIGURE_DIR}/skip_verify_sender_addr > ${CONFIGURE_DIR}/skip_verify_sender_mail; \ rm ${CONFIGURE_DIR}/skip_verify_sender_addr; \ fi # создание минимального набора вспомагательных конфигов if [ ! -f ${SITE_DIR}/Makefile ]; then cd ${SITE_DIR}; ln -s ${M4_DIR}/Makefile; fi if [ ! -f ${SITE_DIR}/conf.default ]; then cd ${SITE_DIR}; ln -s ${M4_DIR}/conf.default; fi if [ ! -f ${SITE_DIR}/conf ]; then cp ${SAMPLES_DIR}/site/conf ${SITE_DIR}/conf; fi if [ ! -f ${SITE_DIR}/retry_rules ]; then cp ${SAMPLES_DIR}/site/retry_rules ${SITE_DIR}/retry_rules; fi if [ ! -f ${SITE_DIR}/rewrite_rules ]; then cp ${SAMPLES_DIR}/site/rewrite_rules ${SITE_DIR}/rewrite_rules; fi if [ ! -f ${SITE_DIR}/system_filter ]; then cp ${SAMPLES_DIR}/site/system_filter ${SITE_DIR}/system_filter; fi if [ ! -f ${SITE_DIR}/dnsbls.list ]; then cp ${SAMPLES_DIR}/site/dnsbls.list ${SITE_DIR}/dnsbls.list; fi cat ${M4_DIR}/pre-install.mc \ | m4 \ -DconfFEATURES_DIR="${FEATURES_DIR}" \ -DconfHACKS_DIR="${HACKS_DIR}" \ -DconfM4_DIR="${M4_DIR}" \ -DconfSITE_DIR="${SITE_DIR}" \ -DconfSYSTEMFILTERS_DIR="${SYSTEMFILTERS_DIR}" \ -DconfSAMPLES_DIR="${SAMPLES_DIR}" \ | perl -n -e 's/\s+([\r\n])/$$1/; if(/^[\r\n]*$$/){$$empty=1;}else{if($$empty){print("\n");$$empty=0}print $$_}' \ > ${BIN_DIR}/pre-install.sh /bin/sh ${BIN_DIR}/pre-install.sh # rm ${BIN_DIR}/pre-install.sh post-install : for f in `perl -n -e 'print($$1."\n") if (/^[^#]*?CONFDIR\/([\w\d_\-\.]+)/)' < ${CONFIGURE_DIR}/configure | perl -p -e 's/\.db$$//' | sort | uniq | grep -v .pem\$$ | grep -v .pl\$$` ; do \ if [ ! -f ${CONFIGURE_DIR}/$${f} ]; then \ if [ -f ${SAMPLES_DIR}/$${f} ]; then \ echo "> cp ${SAMPLES_DIR}/$${f} ${CONFIGURE_DIR}/$${f}"; \ cp ${SAMPLES_DIR}/$${f} ${CONFIGURE_DIR}/$${f}; \ else \ echo "file ${SAMPLES_DIR}/$${f} not found"; \ fi; \ fi; \ done # создание каталогов, смена владельцев, прав доступа, создание кешей cat ${M4_DIR}/install.mc \ | m4 \ -DconfACLS_DIR="${ACLS_DIR}" \ -DconfFEATURES_DIR="${FEATURES_DIR}" \ -DconfHACKS_DIR="${HACKS_DIR}" \ -DconfM4_DIR="${M4_DIR}" \ -DconfACCESS_DIR="${ACCESS_DIR}" \ -DconfSITE_DIR="${SITE_DIR}" \ -DconfSYSTEMFILTERS_DIR="${SYSTEMFILTERS_DIR}" \ -DconfDELIVERIES_DIR="${DELIVERIES_DIR}" \ | perl -n -e 's/\s+([\r\n])/$$1/; if(/^[\r\n]*$$/){$$empty=1;}else{if($$empty){print("\n");$$empty=0}print $$_}' \ > ${BIN_DIR}/install.sh /bin/sh ${BIN_DIR}/install.sh # rm ${BIN_DIR}/install.sh ##### periodic ##### # создание файлов для запуска из планировщика задач periodic : ${PERIODIC_DIR}/clear_quarantine.sh ${PERIODIC_DIR}/clear_scan.sh ${PERIODIC_DIR}/delete_old_warnings.sh ${PERIODIC_DIR}/greylist_del_expired.sh ${PERIODIC_DIR}/proxycheck_del_expired.sh ${PERIODIC_DIR}/clear_quarantine.sh : ${PERIODIC_M4_DIR}/clear_quarantine.mc ${SITE_DIR}/conf ${M4_DIR}/conf.default cat ${PERIODIC_M4_DIR}/clear_quarantine.mc \ | m4 \ -DconfACLS_DIR="${ACLS_DIR}" \ -DconfM4_DIR="${M4_DIR}" \ -DconfSITE_DIR="${SITE_DIR}" \ -DconfFEATURES_DIR="${FEATURES_DIR}" \ | perl -n -e 's/\s+([\r\n])/$$1/; if(/^[\r\n]*$$/){$$empty=1;}else{if($$empty){print("\n");$$empty=0}print $$_}' \ > $@ chmod +x $@ ${PERIODIC_DIR}/clear_scan.sh : ${PERIODIC_M4_DIR}/clear_scan.mc ${SITE_DIR}/conf ${M4_DIR}/conf.default cat ${PERIODIC_M4_DIR}/clear_scan.mc \ | m4 \ -DconfACLS_DIR="${ACLS_DIR}" \ -DconfM4_DIR="${M4_DIR}" \ -DconfSITE_DIR="${SITE_DIR}" \ -DconfFEATURES_DIR="${FEATURES_DIR}" \ | perl -n -e 's/\s+([\r\n])/$$1/; if(/^[\r\n]*$$/){$$empty=1;}else{if($$empty){print("\n");$$empty=0}print $$_}' \ > $@ chmod +x $@ ${PERIODIC_DIR}/delete_old_warnings.sh : ${PERIODIC_M4_DIR}/delete_old_warnings.mc ${SITE_DIR}/conf ${M4_DIR}/conf.default cat ${PERIODIC_M4_DIR}/delete_old_warnings.mc \ | m4 \ -DconfACLS_DIR="${ACLS_DIR}" \ -DconfM4_DIR="${M4_DIR}" \ -DconfSITE_DIR="${SITE_DIR}" \ -DconfFEATURES_DIR="${FEATURES_DIR}" \ | perl -n -e 's/\s+([\r\n])/$$1/; if(/^[\r\n]*$$/){$$empty=1;}else{if($$empty){print("\n");$$empty=0}print $$_}' \ > $@ chmod +x $@ ${PERIODIC_DIR}/greylist_del_expired.sh : ${PERIODIC_M4_DIR}/greylist_del_expired.mc ${SITE_DIR}/conf ${M4_DIR}/conf.default cat ${PERIODIC_M4_DIR}/greylist_del_expired.mc \ | m4 \ -DconfACLS_DIR="${ACLS_DIR}" \ -DconfM4_DIR="${M4_DIR}" \ -DconfSITE_DIR="${SITE_DIR}" \ -DconfFEATURES_DIR="${FEATURES_DIR}" \ -DconfBIN_DIR=`pwd`/"${BIN_DIR}" \ | perl -n -e 's/\s+([\r\n])/$$1/; if(/^[\r\n]*$$/){$$empty=1;}else{if($$empty){print("\n");$$empty=0}print $$_}' \ > $@ chmod +x $@ ${PERIODIC_DIR}/proxycheck_del_expired.sh : ${PERIODIC_M4_DIR}/proxycheck_del_expired.mc ${SITE_DIR}/conf ${M4_DIR}/conf.default cat ${PERIODIC_M4_DIR}/proxycheck_del_expired.mc \ | m4 \ -DconfACLS_DIR="${ACLS_DIR}" \ -DconfM4_DIR="${M4_DIR}" \ -DconfSITE_DIR="${SITE_DIR}" \ -DconfFEATURES_DIR="${FEATURES_DIR}" \ -DconfBIN_DIR=`pwd`/"${BIN_DIR}" \ | perl -n -e 's/\s+([\r\n])/$$1/; if(/^[\r\n]*$$/){$$empty=1;}else{if($$empty){print("\n");$$empty=0}print $$_}' \ > $@ chmod +x $@ install-periodic : cat ${M4_DIR}/install-periodic.mc \ | m4 \ -DconfACLS_DIR="${ACLS_DIR}" \ -DconfFEATURES_DIR="${FEATURES_DIR}" \ -DconfHACKS_DIR="${HACKS_DIR}" \ -DconfM4_DIR="${M4_DIR}" \ -DconfACCESS_DIR="${ACCESS_DIR}" \ -DconfSITE_DIR="${SITE_DIR}" \ -DconfSYSTEMFILTERS_DIR="${SYSTEMFILTERS_DIR}" \ -DconfDELIVERIES_DIR="${DELIVERIES_DIR}" \ -DconfPERIODIC_DIR=`pwd`/"${PERIODIC_DIR}" \ -DconfPERIODIC_SITE_DIR=`pwd`/"${PERIODIC_SITE_DIR}" \ | perl -n -e 's/\s+([\r\n])/$$1/; if(/^[\r\n]*$$/){$$empty=1;}else{if($$empty){print("\n");$$empty=0}print $$_}' \ > ${BIN_DIR}/install-periodic.sh /bin/sh ${BIN_DIR}/install-periodic.sh # rm ${BIN_DIR}/install-periodic.sh