source: npl/mailserver/netqmail/netqmail.SlackBuild @ c5c522c

gcc484ntopperl-5.22
Last change on this file since c5c522c was c5c522c, checked in by Edwin Eefting <edwin@datux.nl>, 8 years ago

initial commit, transferred from cleaned syn3 svn tree

  • Property mode set to 100755
File size: 10.8 KB
Line 
1#!/bin/sh
2#DEP:ucspi_tcp
3#DEP:slackpackage
4#DEP:libspf2
5#NEED:groff
6
7#Gemodificeerd door edwin voor mailserver productlijn.
8#mail gaat nu via amavis en word delivered via dspam.
9
10## Include the slackware-pkg conf file
11if [ -a /etc/slack-package.conf ]; then
12. /etc/slack-package.conf
13  else
14  echo "Sorry you need to have the slack-package.conf file to run these"
15  echo "please install the slackbuilds package from LinuxPackages.net"
16  exit 1
17fi
18
19# Set initial variables:
20NAME=netqmail
21VERSION=1.05
22BUILD=1DatuX
23
24
25## Location to download the sources
26SRC_LOC="http://ds9a.nl/qmail/$NAME-$VERSION.tar.gz"
27
28PKG=$TMP/package_$NAME
29
30## Lets Grab the Source if needed
31if [ -a $CWD/$NAME-$VERSION.tar.gz ]; then
32  echo "Source present not downloading"
33  else
34  $WGET $SRC_LOC || true
35fi
36
37if [ ! -d $TMP ]; then
38  mkdir -p $TMP # location to build the source
39fi
40
41rm -rf $PKG
42mkdir -p $PKG
43
44cd $TMP
45rm -rf $NAME-$VERSION
46tar xzvf $CWD/$NAME-$VERSION.tar.gz || exit 1
47
48
49
50# Maak die godverredommese users and groups aan!! :-)
51groupadd -g 55 nofiles
52useradd -g nofiles -u 50 -d /home/system/qmail/alias alias -s /sbin/false
53useradd -g nofiles -u 51 -d /var/qmail qmaild -s /usr/bin/false
54useradd -g nofiles -u 52 -d /var/qmail qmaill -s /usr/bin/false
55useradd -g nofiles -u 53 -d /var/qmail qmailp -s /usr/bin/false
56groupadd -g 56 qmail
57useradd -g qmail -u 54 -d /var/qmail qmailq -s /usr/bin/false
58useradd -g qmail -u 55 -d /var/qmail qmailr -s /usr/bin/false
59useradd -g qmail -u 56 -d /var/qmail qmails -s /usr/bin/false
60
61# Directory's maken
62make_dirs() {
63mkdir -p /var/qmail/supervise/qmail-send/log
64mkdir -p /var/qmail/supervise/qmail-smtpd/log
65#mkdir -p /var/qmail/supervise/qmail-pop3d/log
66mkdir -p /var/log/qmail/qmail-send
67mkdir -p /var/log/qmail/qmail-smtpd
68#mkdir -p /var/log/qmail/qmail-pop3d
69mkdir -p /var/qmail/alias
70mkdir -p /var/qmail/control
71mkdir -p /var/qmail/users
72mkdir -p /home/system/qmail
73
74# Files touchen
75touch /var/qmail/control/rcpthosts
76touch /var/qmail/control/defaultdomain
77touch /var/qmail/control/virtualdomains
78touch /var/qmail/control/locals
79#touch /var/qmail/alias/.qmail-postmaster
80#touch /var/qmail/alias/.qmail-root
81# qmqpservers bestand maken
82echo "127.0.0.1" > /var/qmail/control/qmqpservers
83# default alias file voor delivery via dspam naar cyrus
84echo '|/usr/bin/syn3-dagent "$LOCAL" "$SENDER"' > /var/qmail/alias/.qmail-default
85# assign bestand aanmaken om delivery naar een maildir te overiden
86echo '+:alias:50:55:/var/qmail/alias:-::
87.' > /var/qmail/users/assign
88
89# Rechten goed zetten
90chmod +t /var/qmail/supervise/qmail-send
91chmod +t /var/qmail/supervise/qmail-smtpd
92#chmod +t /var/qmail/supervise/qmail-pop3d
93chmod 644 /var/qmail/alias/.qmail*
94
95chown -R qmaill /var/log/qmail
96}
97
98compile() {
99cd $NAME-$VERSION || exit 1
100
101
102#algemene patches netqmail
103./collate.sh || exit 1
104
105#qmail tap patch
106patch -F 3 -d $NAME-$VERSION -p1 < $CWD/qmail-tap.diff  || exit 1
107
108#qmail dns patch
109patch -F 3 -d $NAME-$VERSION -p1 < $CWD/qmail-103.patch  || exit 1
110
111
112#qmail spp patch
113echo "SPP"
114tar -xzf $CWD/qmail-spp-0.42.tar.gz || exit 1
115patch -d $NAME-$VERSION -F3 -p0 < qmail-spp-0.42/netqmail-spp.diff || exit 1
116
117#### spp plugins
118mkdir -p $PKG/var/qmail/plugins
119
120#helo plugin:
121gcc -o helodnscheck $CWD/helodnscheck2.c -lresolv || exit 1
122mv helodnscheck $PKG/var/qmail/plugins || exit 1
123
124gcc -Wall -o qmail-spp-spf $CWD/qmail-spp-spf-20091020.c -lspf2 -I/usr/include/spf2 || exit 1
125mv qmail-spp-spf $PKG/var/qmail/plugins || exit 1
126
127
128chmod +x $PKG/var/qmail/plugins/*
129
130#compile it
131cd $NAME-$VERSION
132#large inode support
133sed 's/O2$/O2 -D_FILE_OFFSET_BITS=64/' conf-cc -i || exit 1
134make setup check || exit 1
135
136# Default qmail rules
137cat <<END > /home/system/qmail/tcp.smtp
138127.0.0.1:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue"
139127.0.0.2:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc"
140127.0.0.3:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc"
141172.16.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc"
142172.17.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc"
143172.18.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc"
144172.19.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc"
145172.20.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc"
146172.21.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc"
147172.22.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc"
148172.23.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc"
149172.24.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc"
150172.25.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc"
151172.26.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc"
152172.27.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc"
153172.28.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc"
154172.29.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc"
155172.30.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc"
156172.31.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc"
157192.168.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc"
15810.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc"
159:allow,QMAILQUEUE="bin/qmail-qmqpc"
160END
161#tcprules /home/system/qmail/tcp.smtp.cdb /home/system/qmail/tcp.smtp.tmp < /home/system/qmail/tcp.smtp
162
163echo 5 > /var/qmail/control/concurrencyincoming
164chmod 644 /var/qmail/control/concurrencyincoming
165
166
167#locals is een link naar me
168rm /var/qmail/control/locals
169ln -s me /var/qmail/control/locals
170}
171
172make_scripts() {
173# Create a qmail run script
174cat > /var/qmail/rc << END
175#!/bin/sh
176exec env - PATH="/var/qmail/bin:\$PATH" \
177qmail-start ''  splogger qmail
178END
179chmod +x /var/qmail/rc
180
181# Create a qmail-send supervise (including log) run script
182cat > /var/qmail/supervise/qmail-send/run << END
183#!/bin/sh
184#dynamic update of hostname
185hostname -f > /var/qmail/control/me
186#zet de assign file om naar binair formaat.
187/var/qmail/bin/qmail-newu
188exec /var/qmail/rc
189END
190chmod +x /var/qmail/supervise/qmail-send/run
191
192cat > /var/qmail/supervise/qmail-send/log/run << END
193#!/bin/sh
194exec /usr/bin/setuidgid qmaill /usr/bin/multilog t s2500000 /var/log/qmail/qmail-send
195END
196chmod +x /var/qmail/supervise/qmail-send/log/run
197
198# Create a qmail-smtpd supervise (including log) run script
199cat > /var/qmail/supervise/qmail-smtpd/run << END
200#!/bin/sh
201QMAILDUID=\`id -u qmaild\`
202NOFILESGID=\`id -g qmaild\`
203MAXSMTPD=\`cat /var/qmail/control/concurrencyincoming\`
204LOCAL=\`head -1 /var/qmail/control/me\`
205if [ -z "\$QMAILDUID" -o -z "\$NOFILESGID" -o -z "\$MAXSMTPD" -o -z "\$LOCAL" ]; then
206    echo QMAILDUID, NOFILESGID, MAXSMTPD, or LOCAL is unset in
207    echo /var/qmail/supervise/qmail-smtpd/run
208    exit 1
209fi
210if [ ! -f /var/qmail/control/rcpthosts ]; then
211    echo "No /var/qmail/control/rcpthosts!"
212    echo "Refusing to start SMTP listener because it'll create an open relay"
213    exit 1
214fi
215exec /usr/bin/softlimit -m 150000000 /usr/bin/tcpserver -v -R -l "\$LOCAL" -x /etc/qmail/tcp.smtp.cdb \
216-c "\$MAXSMTPD" -u "\$QMAILDUID" -g "\$NOFILESGID" 0 smtp /usr/bin/rblsmtpd -r cbl.abuseat.org -r bl.spamcop.net /usr/bin/fixcrio /var/qmail/bin/qmail-smtpd 2>&1
217END
218chmod +x /var/qmail/supervise/qmail-smtpd/run
219
220cat > /var/qmail/supervise/qmail-smtpd/log/run << END
221#!/bin/sh
222exec /usr/bin/setuidgid qmaill /usr/bin/multilog t s2500000 /var/log/qmail/qmail-smtpd
223END
224chmod +x /var/qmail/supervise/qmail-smtpd/log/run
225
226# Create a qmail-pop3d supervise (including log) run script
227#cat > /var/qmail/supervise/qmail-pop3d/run << END
228##!/bin/sh
229#exec env - PATH="/var/qmail/bin:\$PATH" \
230# tcpserver -vR -l 0 \
231# 0 25110 \
232# qmail-popup "\`cat /var/qmail/control/me\`" \
233# checkpassword qmail-pop3d Maildir \
234# 2>&1
235#END
236#chmod +x /var/qmail/supervise/qmail-pop3d/run
237
238#cat > /var/qmail/supervise/qmail-pop3d/log/run << END
239##!/bin/sh
240#exec /usr/bin/setuidgid qmaill /usr/bin/multilog t s2500000 /var/log/qmail/qmail-pop3d
241#END
242#chmod +x /var/qmail/supervise/qmail-pop3d/log/run
243}
244
245prepare() {
246#niet met symlink, ivm package removal
247mkdir -p $PKG/service
248mkdir -p $PKG/var/log
249mkdir -p $PKG/var/qmail
250mkdir -p $PKG/etc
251mkdir -p $PKG/home/system/qmail
252mv /var/qmail/control $PKG/home/system/qmail
253mv /var/qmail/alias $PKG/home/system/qmail
254mv /var/qmail/queue $PKG/home/system/qmail
255mv /var/qmail/users $PKG/home/system/qmail
256cp -a /var/qmail $PKG/var
257cp -a /var/log/qmail $PKG/var/log
258ln -sf /home/system/qmail/queue $PKG/var/qmail/queue
259ln -sf /home/system/qmail/control $PKG/var/qmail/control
260ln -sf /home/system/qmail/alias $PKG/var/qmail/alias
261ln -sf /home/system/qmail/users $PKG/var/qmail/users
262ln -sf /home/system/qmail $PKG/etc/qmail
263ln -sf /var/qmail/supervise/qmail-send $PKG/service/qmail-send
264ln -sf /var/qmail/supervise/qmail-smtpd $PKG/service/qmail-smtpd
265#ln -s /var/qmail/supervise/qmail-pop3d $PKG/service/qmail-pop3d
266cp -a $CWD/qmail.permissions $PKG/etc
267cp -a $CWD/qmail.rc.config $PKG/etc
268cp -a $CWD/qmailctl $PKG/var/qmail/bin/
269cp -a /home/system/qmail/tcp.smtp $PKG/home/system/qmail/
270cp -a /home/system/qmail/tcp.smtp.cdb $PKG/home/system/qmail/
271mkdir -p $PKG/usr/sbin
272ln -s /var/qmail/bin/sendmail $PKG/usr/sbin/sendmail || exit 1
273cat $TMP/$NAME-$VERSION/$NAME-$VERSION/config-fast.sh | sed "s/QMAIL/\/var\/qmail/" > $PKG/var/qmail/bin/config-fast
274chmod 600 $PKG/etc/qmail.permissions
275chmod 600 $PKG/etc/qmail.rc.config
276chmod 755 $PKG/var/qmail/bin/qmailctl
277chmod 755 $PKG/var/qmail/bin/config-fast
278
279mkdir -p $PKG/usr/bin
280cp $CWD/syn3-dagent $PKG/usr/bin || exit 1
281chmod 755 $PKG/usr/bin/syn3-dagent || exit 1
282}
283
284description() {
285mkdir -p $PKG/install
286        cat > $PKG/install/slack-desc << END
287      |-----handy-ruler------------------------------------------------------|
288$NAME: $NAME $VERSION
289$NAME:
290$NAME: netqmail is a community-assembled distribution of qmail.
291$NAME: It includes the untouched source along with a single combined patch.
292$NAME: Modified by DatuX for Syn-3.
293$NAME:
294$NAME:
295$NAME:
296$NAME:
297$NAME:
298$NAME:
299END
300}
301
302runscript() {
303#cat > $PKG/install/doinst.sh << END
304##!/bin/sh
305#/sbin/postinst.sh
306#END
307#chmod +x $PKG/install/doinst.sh
308
309#postinstall
310mkdir -p $PKG/etc/postinst.d
311cat > $PKG/etc/postinst.d/post.qmail << END
312#!/bin/sh
313svc -d /service/qmail-*
314/var/qmail/bin/qmailctl user
315touch /var/qmail/control/smtpplugins
316svc -dx /service/qmail-*
317#update old config?
318if ! grep "127.0.0.3" /etc/qmail/tcp.smtp; then
319    mv /etc/qmail/tcp.smtp.new /etc/qmail/tcp.smtp
320fi
321
322
323#regenerate cdb
324tcprules /etc/qmail/tcp.smtp.cdb /etc/qmail/tcp.smtp.tmp < /etc/qmail/tcp.smtp
325
326END
327chmod +x $PKG/etc/postinst.d/post.qmail
328}
329
330build() {
331# configfile moeten op .new eindigen
332find $PKG/etc/qmail.* $PKG/home/system/qmail/control $PKG/home/system/qmail/users $PKG/home/system/qmail/tcp.* -type f -exec mv "{}" "{}.new" \; || exit 1
333
334
335# Build the package:
336cd $PKG
337echo $VERSION > $CWD/$NAME.version
338echo $ARCH > $CWD/$NAME.arch
339makepkg -l y -c n $CWD/$NAME.pkg
340
341echo "Your $NAME package is complete, make sure you open it up before installing it."
342}
343
344cleanup() {
345# Delete the temporary users and groups
346userdel alias
347userdel qmaild
348userdel qmaill
349userdel qmailp
350userdel qmailq
351userdel qmailr
352userdel qmails
353groupdel nofiles
354groupdel qmail
355}
356
357make_dirs || exit 1
358compile || exit 1
359make_scripts || exit 1
360prepare || exit 1
361description || exit 1
362runscript  || exit 1
363build || exit 1
364#cleanup || exit 1
Note: See TracBrowser for help on using the repository browser.