source: npl/mailserver/netqmail2/netqmail2.SlackBuild @ d36701a

gcc484perl-5.22
Last change on this file since d36701a 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: 9.2 KB
Line 
1#!/bin/sh
2#DEP:ucspi_tcp
3#DEP:slackpackage
4
5#2e instantie van qmail. (ze moeten allemaal apparte users etc. dus vandaar deze extra package. andere mogelijkheid is er niet om qmail 2x te starten)
6
7## Include the slackware-pkg conf file
8if [ -a /etc/slack-package.conf ]; then
9. /etc/slack-package.conf
10  else
11  echo "Sorry you need to have the slack-package.conf file to run these"
12  echo "please install the slackbuilds package from LinuxPackages.net"
13  exit 1
14fi
15
16# Set initial variables:
17NAME=netqmail2
18VERSION=1.05
19BUILD=1DatuX
20
21
22
23PKG=$TMP/package_$NAME
24
25
26if [ ! -d $TMP ]; then
27  mkdir -p $TMP # location to build the source
28fi
29
30rm -rf $PKG
31mkdir -p $PKG
32
33cd $TMP
34rm -rf netqmail-$VERSION
35tar xzvf $CWD/netqmail-$VERSION.tar.gz || exit 1
36
37
38
39# Maak die godverredommese users and groups aan!! :-)
40groupadd -g 65 nofiles2
41useradd -g nofiles2 -u 60 -d /home/system/qmail2/alias alias2 -s /usr/bin/false
42useradd -g nofiles2 -u 61 -d /var/qmail2 qmaild2 -s /usr/bin/false
43useradd -g nofiles2 -u 62 -d /var/qmail2 qmaill2 -s /usr/bin/false
44useradd -g nofiles2 -u 63 -d /var/qmail2 qmailp2 -s /usr/bin/false
45groupadd -g 66 qmail2
46useradd -g qmail2 -u 64 -d /var/qmail2 qmailq2 -s /usr/bin/false
47useradd -g qmail2 -u 65 -d /var/qmail2 qmailr2 -s /usr/bin/false
48useradd -g qmail2 -u 66 -d /var/qmail2 qmails2 -s /usr/bin/false
49
50# Directory's maken
51make_dirs() {
52mkdir -p /var/qmail2/supervise/qmail-send/log
53mkdir -p /var/qmail2/supervise/qmail-smtpd/log
54#mkdir -p /var/qmail2/supervise/qmail-pop3d/log
55mkdir -p /var/log/qmail2/qmail-send
56mkdir -p /var/log/qmail2/qmail-smtpd
57#mkdir -p /var/log/qmail2/qmail-pop3d
58mkdir -p /var/qmail2/alias
59mkdir -p /var/qmail2/control
60mkdir -p /var/qmail2/users
61mkdir -p /home/system/qmail2
62
63# Files touchen
64ln -sf ../../qmail/control/rcpthosts /var/qmail2/control/rcpthosts
65touch /var/qmail2/control/defaultdomain
66touch /var/qmail2/control/virtualdomains
67touch /var/qmail2/control/locals
68# assign bestand aanmaken om delivery naar een maildir te overiden
69echo '+:alias2:60:65:/var/qmail2/alias:-::
70.' > /var/qmail2/users/assign
71
72# Rechten goed zetten
73chmod +t /var/qmail2/supervise/qmail-send
74chmod +t /var/qmail2/supervise/qmail-smtpd
75#chmod +t /var/qmail2/supervise/qmail-pop3d
76chmod 644 /var/qmail2/alias/.qmail*
77
78chown -R qmaill2 /var/log/qmail2
79}
80
81compile() {
82cd netqmail-$VERSION || exit 1
83
84#algemene patches netqmail
85./collate.sh || exit 1
86
87#qmail tap patch
88patch -F 3 -d netqmail-$VERSION -p1 < $CWD/qmail-tap.diff  || exit 1
89
90#qmail spp patch
91tar -xzf $CWD/qmail-spp-0.42.tar.gz || exit 1
92patch -d netqmail-$VERSION -p0 < qmail-spp-0.42/netqmail-spp.diff || exit 1
93
94#compile it
95cd netqmail-$VERSION
96
97#andere qmail dir:
98echo /var/qmail2 > conf-qmail
99
100#andere users en groups
101echo "alias2
102qmaild2
103qmaill2
104root
105qmailp2
106qmailq2
107qmailr2
108qmails2" > conf-users
109
110echo "qmail2
111nofiles2" > conf-groups
112
113make setup check || exit 1
114
115# Default qmail rules
116cat <<END > /home/system/qmail2/tcp.smtp
117127.0.0.1:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue"
118172.16.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue"
119172.17.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue"
120172.18.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue"
121172.19.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue"
122172.20.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue"
123172.21.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue"
124172.22.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue"
125172.23.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue"
126172.24.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue"
127172.25.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue"
128172.26.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue"
129172.27.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue"
130172.28.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue"
131172.29.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue"
132172.30.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue"
133172.31.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue"
134192.168.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue"
13510.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue"
136:allow,QMAILQUEUE="bin/qmail-queue"
137END
138tcprules /home/system/qmail2/tcp.smtp.cdb /home/system/qmail2/tcp.smtp.tmp < /home/system/qmail2/tcp.smtp
139
140echo 200 > /var/qmail2/control/concurrencyincoming
141chmod 644 /var/qmail2/control/concurrencyincoming
142
143#by default all mail will be forwarded to the scanning qmail, that does the actual scanning and can thus take long
144#NOTE: 127.0.0.1 is excluded from scanning, so we send it to 127.0.0.2!
145echo ":127.0.0.2:26" > /var/qmail2/control/smtproutes
146chmod 644 /var/qmail2/control/smtproutes
147
148#maximum number of parallel 'scans' that the scanning qmail can handle
149echo 4 > /var/qmail2/control/concurrencyremote
150chmod 644 /var/qmail2/control/concurrencyremote
151
152
153#locals is een link naar me
154rm /var/qmail2/control/locals
155ln -s me /var/qmail2/control/locals
156}
157
158make_scripts() {
159# Create a qmail run script
160cat > /var/qmail2/rc << END
161#!/bin/sh
162exec env - PATH="/var/qmail2/bin:\$PATH" \
163qmail-start ''  splogger qmail2
164END
165chmod +x /var/qmail2/rc
166
167# Create a qmail-send supervise (including log) run script
168cat > /var/qmail2/supervise/qmail-send/run << END
169#!/bin/sh
170#dynamic update of hostname
171hostname -f > /var/qmail2/control/me
172#zet de assign file om naar binair formaat.
173/var/qmail2/bin/qmail-newu
174exec /var/qmail2/rc
175END
176chmod +x /var/qmail2/supervise/qmail-send/run
177
178cat > /var/qmail2/supervise/qmail-send/log/run << END
179#!/bin/sh
180exec /usr/bin/setuidgid qmaill2 /usr/bin/multilog t s2500000 /var/log/qmail2/qmail-send
181END
182chmod +x /var/qmail2/supervise/qmail-send/log/run
183
184# Create a qmail-smtpd supervise (including log) run script
185cat > /var/qmail2/supervise/qmail-smtpd/run << END
186#!/bin/sh
187QMAILDUID=\`id -u qmaild2\`
188NOFILESGID=\`id -g qmaild2\`
189MAXSMTPD=\`cat /var/qmail2/control/concurrencyincoming\`
190LOCAL=\`head -1 /var/qmail2/control/me\`
191if [ -z "\$QMAILDUID" -o -z "\$NOFILESGID" -o -z "\$MAXSMTPD" -o -z "\$LOCAL" ]; then
192    echo QMAILDUID, NOFILESGID, MAXSMTPD, or LOCAL is unset in
193    echo /var/qmail2/supervise/qmail-smtpd/run
194    exit 1
195fi
196if [ ! -f /var/qmail2/control/rcpthosts ]; then
197    echo "No /var/qmail2/control/rcpthosts!"
198    echo "Refusing to start SMTP listener because it'll create an open relay"
199    exit 1
200fi
201exec /usr/bin/softlimit -m 150000000 /usr/bin/tcpserver -v -R -l "\$LOCAL" -x /etc/qmail2/tcp.smtp.cdb \
202-c "\$MAXSMTPD" -u "\$QMAILDUID" -g "\$NOFILESGID" 0 smtp /usr/bin/rblsmtpd -r cbl.abuseat.org -r bl.spamcop.net /usr/bin/fixcrio /var/qmail2/bin/qmail-smtpd 2>&1
203END
204chmod +x /var/qmail2/supervise/qmail-smtpd/run
205
206cat > /var/qmail2/supervise/qmail-smtpd/log/run << END
207#!/bin/sh
208exec /usr/bin/setuidgid qmaill2 /usr/bin/multilog t s2500000 /var/log/qmail2/qmail-smtpd
209END
210chmod +x /var/qmail2/supervise/qmail-smtpd/log/run
211
212
213}
214
215prepare() {
216#niet met symlink, ivm package removal
217mkdir -p $PKG/service
218mkdir -p $PKG/var/log
219mkdir -p $PKG/var/qmail2
220mkdir -p $PKG/etc
221mkdir -p $PKG/home/system/qmail2
222mv /var/qmail2/control $PKG/home/system/qmail2
223mv /var/qmail2/alias $PKG/home/system/qmail2
224mv /var/qmail2/queue $PKG/home/system/qmail2
225mv /var/qmail2/users $PKG/home/system/qmail2
226cp -a /var/qmail2 $PKG/var
227cp -a /var/log/qmail2 $PKG/var/log
228ln -sf /home/system/qmail2/queue $PKG/var/qmail2/queue
229ln -sf /home/system/qmail2/control $PKG/var/qmail2/control
230ln -sf /home/system/qmail2/alias $PKG/var/qmail2/alias
231ln -sf /home/system/qmail2/users $PKG/var/qmail2/users
232ln -sf /home/system/qmail2 $PKG/etc/qmail2
233ln -sf /var/qmail2/supervise/qmail-send $PKG/service/qmail-send2
234ln -sf /var/qmail2/supervise/qmail-smtpd $PKG/service/qmail-smtpd2
235cp -a $CWD/qmail2.permissions $PKG/etc
236cp -a $CWD/qmail2.rc.config $PKG/etc
237cp -a $CWD/qmailctl $PKG/var/qmail2/bin/
238cp -a /home/system/qmail2/tcp.smtp $PKG/home/system/qmail2/
239cp -a /home/system/qmail2/tcp.smtp.cdb $PKG/home/system/qmail2/
240mkdir -p $PKG/usr/sbin
241ln -s /var/qmail2/bin/sendmail $PKG/usr/sbin/sendmail || exit 1
242cat $TMP/netqmail-$VERSION/netqmail-$VERSION/config-fast.sh | sed "s/QMAIL/\/var\/qmail2/" > $PKG/var/qmail2/bin/config-fast
243chmod 600 $PKG/etc/qmail2.permissions
244chmod 600 $PKG/etc/qmail2.rc.config
245chmod 755 $PKG/var/qmail2/bin/qmailctl
246chmod 755 $PKG/var/qmail2/bin/config-fast
247
248mkdir -p $PKG/usr/bin
249}
250
251description() {
252mkdir -p $PKG/install
253        cat > $PKG/install/slack-desc << END
254      |-----handy-ruler------------------------------------------------------|
255$NAME: $NAME $VERSION
256$NAME:
257$NAME: netqmail is a community-assembled distribution of qmail.
258$NAME: It includes the untouched source along with a single combined patch.
259$NAME: Modified by DatuX for Syn-3.
260$NAME:
261$NAME:
262$NAME:
263$NAME:
264$NAME:
265$NAME:
266END
267}
268
269runscript() {
270
271#postinstall
272mkdir -p $PKG/etc/postinst.d
273cat > $PKG/etc/postinst.d/post.qmail2 << END
274#!/bin/sh
275svc -d /service/qmail-*2
276/var/qmail2/bin/qmailctl user
277touch /var/qmail2/control/smtpplugins
278svc -dx /service/qmail-*2
279END
280chmod +x $PKG/etc/postinst.d/post.qmail2
281}
282
283build() {
284# configfile moeten op .new eindigen
285find $PKG/etc/qmail2.* $PKG/home/system/qmail2/control $PKG/home/system/qmail2/users $PKG/home/system/qmail2/tcp.* -type f -exec mv "{}" "{}.new" \; || exit 1
286
287
288# Build the package:
289cd $PKG
290echo $VERSION > $CWD/$NAME.version
291echo $ARCH > $CWD/$NAME.arch
292makepkg -l y -c n $CWD/$NAME.pkg
293
294echo "Your $NAME package is complete, make sure you open it up before installing it."
295}
296
297
298make_dirs || exit 1
299compile || exit 1
300make_scripts || exit 1
301prepare || exit 1
302description || exit 1
303runscript  || exit 1
304build || exit 1
Note: See TracBrowser for help on using the repository browser.