# Notes on this project # Things to do: # fancier hi-q or pipette; handle triangular piping # skrewt: read, use, and write envelope info # skrewt: integrate call to spamc # skrewt: integrate call to qmail-queue # skrewt: integrate greylisting CC= /usr/bin/g++ CFLAGS = -std=gnu++0x -Wall -g -I $(HOME)/lib/include #?? exhibits = checkpassword.patch hi-q.c pido.c pop3.conf smtp.conf \ #?? smtp.rules spamc-zap.patch spamd qmail .PHONY : shipit clean list-src ALWAYS foo dirs setup imgs \ zip wc html all hacha hevea tcprules logmark .SECONDARY : # do not remove any intermediate files # sources for main programs that go in /var/qmail/bin qmain = pido.c hi-q.c skrewt.c hi-test.c mail-scan.c \ greylist.c wripper.c ward.c qprogs = $(qmain:%.c=%) # sources for other main programs: moremain = wripper.c bash-c.c ltgrey.c fixown.c pipette.c moreprogs = $(moremain:%.c=%) nonmain = libltgrey.c sources = $(qmain) $(moremain) $(nonmain) beware_other = checkpassword.c spamc.c ## dependency-finding scheme (with local mods) based on: ## http://www.gnu.org/manual/make-3.77/html_mono/make.html#SEC42 ## (see also include statement at end of this makefile) %.d : %.c @$(SHELL) -ec '$(CXX) -MM $(CXXFLAGS) $< \ | sed '\''s/\($*\)\.o[ :]*/\1.o $@ : /g'\'' > $@; \ [ -s $@ ] || rm -f $@' all: $(qprogs) $(moreprogs) fixown2 ward show: : --- $(qprogs) +++ $(moreprogs) fixown: fixown.o utils.o $(CC) $^ -o $@ chmod o-rwx $@ ./fixown2 $@ fixown2: fixown.o utils.o $(CC) $^ -o $@ chmod o-rwx $@ ./fixown $@ pipette: pipette.o utils.o $(CC) $^ -o $@ skrewt: skrewt.o utils.o sepofra.o $(CC) $^ -lboost_filesystem-mt -lboost_system -lspf2 -o $@ ./fixown $@ ward: ward.o libskrewt.o utils.o sepofra.o $(CC) $^ -lboost_filesystem-mt -lboost_system -lspf2 -o $@ ./fixown $@ greylist: greylist.o utils.o $(CC) $^ -lboost_filesystem-mt -lboost_system -o $@ ./fixown $@ ltgrey: ltgrey.o utils.o libltgrey.o $(CC) $^ -lboost_filesystem-mt -lboost_system -o $@ ./fixown $@ wripper: wripper.o $(CC) $^ -o $@ ./fixown $@ mail-scan: mail-scan.o utils.o $(CC) $^ -lboost_regex -o $@ hi-test: hi-test.o utils.o $(CC) $^ -lboost_regex -o $@ install: install $(qprogs) /var/qmail/bin/ install -gdaemon -m2755 wripper /usr/lib/mailman/mail/ install bash-c /usr/local/bin/ cp filters.conf aufilters.conf /var/qmail/control/ install -m700 -d /var/qmail/rbin chown qmaild /var/qmail/rbin chgrp qmail /var/qmail/rbin install -m755 ../checkpasswd/checkpassword /var/qmail/rbin/ chown root /var/qmail/rbin/checkpassword chmod u+s /var/qmail/rbin/checkpassword cp smtp.conf /etc/stunnel/ cp pop3.conf /etc/stunnel/ install qmail-tls-check_certs /var/qmail/bin/ install spamassassin /etc/init.d/ install qmail /etc/init.d/ install spamassassin.default /etc/default/spamassassin install tcprules.make /etc/tcpserver/makefile /etc/tcpserver/smtp.rules : ./mk_smtp_rules $@ logmark: logger -t jsd -p mail.info ========================= # Command to let everybody out of the penalty box: parole: greylist -scan |grep penalty | while read addr rest ; do TCPREMOTEIP=$addr greylist -p 1 -v ; done todo: echo \ pass message-ID to greylist program \ ... also provide a way for certain recipients to bypass some checks \ ... both will require major restructuring, "cat" process \ ... IPv6 reverse-DNS recors \ ... "clean up bad DNS reports nnnn --> () ==> ()" \ ..... ALWAYS: @echo ... ##?? include $(chapters:.htm=.d) ##?? include $(fancy:%.htm=aux/%.fig) include $(sources:.c=.d)