CFLAGS= OFLAGS=-pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -fPIC -I/usr/include/python2.7 WFLAGS=-Waggregate-return -Wall -Wcast-align -Wcast-qual -Wconversion -Werror -Wmissing-declarations -Wmissing-prototypes -Wnested-externs -Wpointer-arith -Wredundant-decls -Wstrict-prototypes -Wwrite-strings SOFLAGS=-pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions CC=gcc SHELL=/bin/bash tool := postconfirmd # The user that the postconfirmd daemon will run as user := mail prefix := /usr/local shared := /usr/share module := postconfirm sources = *.py *.c postconfirmd.8 postconfirm.conf confirm.email.template postconfirm.init wrapper INSTALL binaries = postconfirmc fdpass.so # ---------------------------------------------------------------------- include Makefile.common % : %.c $(CC) $(CFLAGS) $(WFLAGS) -o $@ $(LDFLAGS) $< %.o : %.c $(CC) $(OFLAGS) $(WFLAGS) -o $@ -c $< %.so : %.o $(CC) $(SOFLAGS) -o $@ $(LDFLAGS) $< test: logger -i -t "postconfirm" "test: mark 1" sudo -u $(user) postconfirmc --stop || echo postconfirmd not running sudo rm -fv /var/run/postconfirm/confirmed # no confirmed addresses sleep 1 sudo -u $(user) postconfirmd logger -i -t "postconfirm" "test: mark 3" for msg in msg/*; do from=$$(head -n 1 $$msg | awk '{print $$2}'); echo "From: $$from"; cat $$msg | formail -I "List-Id: " | sudo -u $(user) SENDER="$$from" RECIPIENT=testlist@grenache.levkowetz.com postconfirmc; code=$$?; echo "Result: $$code"; [ $$code == 1 ]; done cat testfile2.msg | formail -I "List-Id: " | sudo -u $(user) SENDER=henrik-two@levkowetz.com RECIPIENT=testlist@grenache.levkowetz.com postconfirmc; code=$$?; echo Result: $$code; [ $$code == 0 ] logger -i -t "postconfirm" "test: mark 4" # sleep 3 # echo -e "\$$\nR\n~f\n.\n\nx\n" | sudo mail -N # sleep 3 # sudo -u $(user) SENDER=henrik@levkowetz.com RECIPIENT=testlist@grenache.levkowetz.com postconfirmc <<< "From: henrik@levkowetz.com\nSubject: Hello $$(date)\n\nHello"; code=$$?; echo Result: $$code; [ $$code == 0 ] # sudo -u $(user) postconfirmc --stop install:: postconfirmc postconfirmd postconfirmd.py postconfirm.conf fdpass.so logger -i -t "postconfirm" "install: mark 1" sudo install -o root -d /etc/$(module) $(shared)/$(module)/ sudo install -o $(user) -d /var/run/$(module) /var/cache/$(module)/mail /var/cache/$(module)/pending $prefix/sbin/ # [ -f /etc/$(module)/postconfirm.conf ] || sudo install -o root postconfirm.conf /etc/$(module)/ [ -f /etc/$(module)/confirm.email.template ] || sudo install -o root confirm.email.template /etc/$(module)/ # if [ ! -f /etc/$(module)/hash.key ]; then head -c 128 /dev/urandom > hash.key; sudo install -o $(user) -m 600 hash.key /etc/$(module)/; rm hash.key; fi # sudo install -o root -T postconfirm.init /etc/init.d/postconfirmd sudo update-rc.d postconfirmd defaults 30 70 sudo install -o root postconfirmc $(prefix)/bin/ sudo install -o root *.py *.so wrapper $(shared)/$(module)/ sudo python -c "import compileall; compileall.compile_dir('$(shared)/$(module)/');" sudo ln -sf $(shared)/$(module)/$(tool).py $(prefix)/sbin/$(tool) sudo ln -sf $(shared)/$(module)/wrapper $(shared)/$(module)/mailman logger -i -t "postconfirm" "install: mark 2" sudo /etc/init.d/postconfirmd stop logger -i -t "postconfirm" "install: mark 3" sleep 1 logger -i -t "postconfirm" "install: mark 4" sudo /etc/init.d/postconfirmd start logger -i -t "postconfirm" "install: mark 5" upload:: scp -P 25377 $(tool)-$(version).tgz core3.amsl.com://usr/local/share/