[c5c522c] | 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 |
---|
| 11 | if [ -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 |
---|
| 17 | fi |
---|
| 18 | |
---|
| 19 | # Set initial variables: |
---|
| 20 | NAME=netqmail |
---|
| 21 | VERSION=1.05 |
---|
| 22 | BUILD=1DatuX |
---|
| 23 | |
---|
| 24 | |
---|
| 25 | ## Location to download the sources |
---|
| 26 | SRC_LOC="http://ds9a.nl/qmail/$NAME-$VERSION.tar.gz" |
---|
| 27 | |
---|
| 28 | PKG=$TMP/package_$NAME |
---|
| 29 | |
---|
| 30 | ## Lets Grab the Source if needed |
---|
| 31 | if [ -a $CWD/$NAME-$VERSION.tar.gz ]; then |
---|
| 32 | echo "Source present not downloading" |
---|
| 33 | else |
---|
| 34 | $WGET $SRC_LOC || true |
---|
| 35 | fi |
---|
| 36 | |
---|
| 37 | if [ ! -d $TMP ]; then |
---|
| 38 | mkdir -p $TMP # location to build the source |
---|
| 39 | fi |
---|
| 40 | |
---|
| 41 | rm -rf $PKG |
---|
| 42 | mkdir -p $PKG |
---|
| 43 | |
---|
| 44 | cd $TMP |
---|
[b9261a1] | 45 | rm -rf $NAME-$VERSION |
---|
[c5c522c] | 46 | tar xzvf $CWD/$NAME-$VERSION.tar.gz || exit 1 |
---|
| 47 | |
---|
| 48 | |
---|
| 49 | |
---|
| 50 | # Maak die godverredommese users and groups aan!! :-) |
---|
| 51 | groupadd -g 55 nofiles |
---|
| 52 | useradd -g nofiles -u 50 -d /home/system/qmail/alias alias -s /sbin/false |
---|
| 53 | useradd -g nofiles -u 51 -d /var/qmail qmaild -s /usr/bin/false |
---|
| 54 | useradd -g nofiles -u 52 -d /var/qmail qmaill -s /usr/bin/false |
---|
| 55 | useradd -g nofiles -u 53 -d /var/qmail qmailp -s /usr/bin/false |
---|
| 56 | groupadd -g 56 qmail |
---|
| 57 | useradd -g qmail -u 54 -d /var/qmail qmailq -s /usr/bin/false |
---|
| 58 | useradd -g qmail -u 55 -d /var/qmail qmailr -s /usr/bin/false |
---|
| 59 | useradd -g qmail -u 56 -d /var/qmail qmails -s /usr/bin/false |
---|
| 60 | |
---|
| 61 | # Directory's maken |
---|
| 62 | make_dirs() { |
---|
| 63 | mkdir -p /var/qmail/supervise/qmail-send/log |
---|
| 64 | mkdir -p /var/qmail/supervise/qmail-smtpd/log |
---|
| 65 | #mkdir -p /var/qmail/supervise/qmail-pop3d/log |
---|
| 66 | mkdir -p /var/log/qmail/qmail-send |
---|
| 67 | mkdir -p /var/log/qmail/qmail-smtpd |
---|
| 68 | #mkdir -p /var/log/qmail/qmail-pop3d |
---|
| 69 | mkdir -p /var/qmail/alias |
---|
| 70 | mkdir -p /var/qmail/control |
---|
| 71 | mkdir -p /var/qmail/users |
---|
| 72 | mkdir -p /home/system/qmail |
---|
| 73 | |
---|
| 74 | # Files touchen |
---|
| 75 | touch /var/qmail/control/rcpthosts |
---|
| 76 | touch /var/qmail/control/defaultdomain |
---|
| 77 | touch /var/qmail/control/virtualdomains |
---|
| 78 | touch /var/qmail/control/locals |
---|
| 79 | #touch /var/qmail/alias/.qmail-postmaster |
---|
| 80 | #touch /var/qmail/alias/.qmail-root |
---|
| 81 | # qmqpservers bestand maken |
---|
| 82 | echo "127.0.0.1" > /var/qmail/control/qmqpservers |
---|
| 83 | # default alias file voor delivery via dspam naar cyrus |
---|
| 84 | echo '|/usr/bin/syn3-dagent "$LOCAL" "$SENDER"' > /var/qmail/alias/.qmail-default |
---|
| 85 | # assign bestand aanmaken om delivery naar een maildir te overiden |
---|
| 86 | echo '+:alias:50:55:/var/qmail/alias:-:: |
---|
| 87 | .' > /var/qmail/users/assign |
---|
| 88 | |
---|
| 89 | # Rechten goed zetten |
---|
| 90 | chmod +t /var/qmail/supervise/qmail-send |
---|
| 91 | chmod +t /var/qmail/supervise/qmail-smtpd |
---|
| 92 | #chmod +t /var/qmail/supervise/qmail-pop3d |
---|
| 93 | chmod 644 /var/qmail/alias/.qmail* |
---|
| 94 | |
---|
[b9261a1] | 95 | chown -R qmaill /var/log/qmail |
---|
[c5c522c] | 96 | } |
---|
| 97 | |
---|
| 98 | compile() { |
---|
| 99 | cd $NAME-$VERSION || exit 1 |
---|
| 100 | |
---|
| 101 | |
---|
| 102 | #algemene patches netqmail |
---|
| 103 | ./collate.sh || exit 1 |
---|
| 104 | |
---|
| 105 | #qmail tap patch |
---|
| 106 | patch -F 3 -d $NAME-$VERSION -p1 < $CWD/qmail-tap.diff || exit 1 |
---|
| 107 | |
---|
| 108 | #qmail dns patch |
---|
| 109 | patch -F 3 -d $NAME-$VERSION -p1 < $CWD/qmail-103.patch || exit 1 |
---|
| 110 | |
---|
| 111 | |
---|
| 112 | #qmail spp patch |
---|
| 113 | echo "SPP" |
---|
| 114 | tar -xzf $CWD/qmail-spp-0.42.tar.gz || exit 1 |
---|
| 115 | patch -d $NAME-$VERSION -F3 -p0 < qmail-spp-0.42/netqmail-spp.diff || exit 1 |
---|
| 116 | |
---|
| 117 | #### spp plugins |
---|
| 118 | mkdir -p $PKG/var/qmail/plugins |
---|
| 119 | |
---|
| 120 | #helo plugin: |
---|
| 121 | gcc -o helodnscheck $CWD/helodnscheck2.c -lresolv || exit 1 |
---|
| 122 | mv helodnscheck $PKG/var/qmail/plugins || exit 1 |
---|
| 123 | |
---|
| 124 | gcc -Wall -o qmail-spp-spf $CWD/qmail-spp-spf-20091020.c -lspf2 -I/usr/include/spf2 || exit 1 |
---|
| 125 | mv qmail-spp-spf $PKG/var/qmail/plugins || exit 1 |
---|
| 126 | |
---|
| 127 | |
---|
[b9261a1] | 128 | chmod +x $PKG/var/qmail/plugins/* |
---|
[c5c522c] | 129 | |
---|
| 130 | #compile it |
---|
| 131 | cd $NAME-$VERSION |
---|
| 132 | #large inode support |
---|
| 133 | sed 's/O2$/O2 -D_FILE_OFFSET_BITS=64/' conf-cc -i || exit 1 |
---|
| 134 | make setup check || exit 1 |
---|
| 135 | |
---|
| 136 | # Default qmail rules |
---|
[b9261a1] | 137 | cat <<END > /home/system/qmail/tcp.smtp |
---|
[c5c522c] | 138 | 127.0.0.1:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-queue" |
---|
| 139 | 127.0.0.2:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" |
---|
| 140 | 127.0.0.3:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" |
---|
| 141 | 172.16.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" |
---|
| 142 | 172.17.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" |
---|
| 143 | 172.18.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" |
---|
| 144 | 172.19.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" |
---|
| 145 | 172.20.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" |
---|
| 146 | 172.21.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" |
---|
| 147 | 172.22.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" |
---|
| 148 | 172.23.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" |
---|
| 149 | 172.24.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" |
---|
| 150 | 172.25.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" |
---|
| 151 | 172.26.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" |
---|
| 152 | 172.27.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" |
---|
| 153 | 172.28.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" |
---|
| 154 | 172.29.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" |
---|
| 155 | 172.30.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" |
---|
| 156 | 172.31.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" |
---|
| 157 | 192.168.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" |
---|
| 158 | 10.:allow,RELAYCLIENT="",QMAILQUEUE="bin/qmail-qmqpc" |
---|
| 159 | :allow,QMAILQUEUE="bin/qmail-qmqpc" |
---|
| 160 | END |
---|
| 161 | #tcprules /home/system/qmail/tcp.smtp.cdb /home/system/qmail/tcp.smtp.tmp < /home/system/qmail/tcp.smtp |
---|
| 162 | |
---|
| 163 | echo 5 > /var/qmail/control/concurrencyincoming |
---|
| 164 | chmod 644 /var/qmail/control/concurrencyincoming |
---|
| 165 | |
---|
| 166 | |
---|
| 167 | #locals is een link naar me |
---|
| 168 | rm /var/qmail/control/locals |
---|
[b9261a1] | 169 | ln -s me /var/qmail/control/locals |
---|
[c5c522c] | 170 | } |
---|
| 171 | |
---|
| 172 | make_scripts() { |
---|
| 173 | # Create a qmail run script |
---|
| 174 | cat > /var/qmail/rc << END |
---|
| 175 | #!/bin/sh |
---|
| 176 | exec env - PATH="/var/qmail/bin:\$PATH" \ |
---|
| 177 | qmail-start '' splogger qmail |
---|
| 178 | END |
---|
| 179 | chmod +x /var/qmail/rc |
---|
| 180 | |
---|
| 181 | # Create a qmail-send supervise (including log) run script |
---|
| 182 | cat > /var/qmail/supervise/qmail-send/run << END |
---|
| 183 | #!/bin/sh |
---|
| 184 | #dynamic update of hostname |
---|
| 185 | hostname -f > /var/qmail/control/me |
---|
| 186 | #zet de assign file om naar binair formaat. |
---|
| 187 | /var/qmail/bin/qmail-newu |
---|
| 188 | exec /var/qmail/rc |
---|
| 189 | END |
---|
| 190 | chmod +x /var/qmail/supervise/qmail-send/run |
---|
| 191 | |
---|
| 192 | cat > /var/qmail/supervise/qmail-send/log/run << END |
---|
| 193 | #!/bin/sh |
---|
| 194 | exec /usr/bin/setuidgid qmaill /usr/bin/multilog t s2500000 /var/log/qmail/qmail-send |
---|
| 195 | END |
---|
| 196 | chmod +x /var/qmail/supervise/qmail-send/log/run |
---|
| 197 | |
---|
| 198 | # Create a qmail-smtpd supervise (including log) run script |
---|
| 199 | cat > /var/qmail/supervise/qmail-smtpd/run << END |
---|
| 200 | #!/bin/sh |
---|
| 201 | QMAILDUID=\`id -u qmaild\` |
---|
| 202 | NOFILESGID=\`id -g qmaild\` |
---|
| 203 | MAXSMTPD=\`cat /var/qmail/control/concurrencyincoming\` |
---|
| 204 | LOCAL=\`head -1 /var/qmail/control/me\` |
---|
| 205 | if [ -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 |
---|
| 209 | fi |
---|
| 210 | if [ ! -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 |
---|
| 214 | fi |
---|
| 215 | exec /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 |
---|
| 217 | END |
---|
| 218 | chmod +x /var/qmail/supervise/qmail-smtpd/run |
---|
| 219 | |
---|
| 220 | cat > /var/qmail/supervise/qmail-smtpd/log/run << END |
---|
| 221 | #!/bin/sh |
---|
| 222 | exec /usr/bin/setuidgid qmaill /usr/bin/multilog t s2500000 /var/log/qmail/qmail-smtpd |
---|
| 223 | END |
---|
| 224 | chmod +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 | |
---|
| 245 | prepare() { |
---|
| 246 | #niet met symlink, ivm package removal |
---|
| 247 | mkdir -p $PKG/service |
---|
| 248 | mkdir -p $PKG/var/log |
---|
| 249 | mkdir -p $PKG/var/qmail |
---|
| 250 | mkdir -p $PKG/etc |
---|
| 251 | mkdir -p $PKG/home/system/qmail |
---|
| 252 | mv /var/qmail/control $PKG/home/system/qmail |
---|
| 253 | mv /var/qmail/alias $PKG/home/system/qmail |
---|
| 254 | mv /var/qmail/queue $PKG/home/system/qmail |
---|
| 255 | mv /var/qmail/users $PKG/home/system/qmail |
---|
| 256 | cp -a /var/qmail $PKG/var |
---|
| 257 | cp -a /var/log/qmail $PKG/var/log |
---|
| 258 | ln -sf /home/system/qmail/queue $PKG/var/qmail/queue |
---|
| 259 | ln -sf /home/system/qmail/control $PKG/var/qmail/control |
---|
| 260 | ln -sf /home/system/qmail/alias $PKG/var/qmail/alias |
---|
| 261 | ln -sf /home/system/qmail/users $PKG/var/qmail/users |
---|
| 262 | ln -sf /home/system/qmail $PKG/etc/qmail |
---|
| 263 | ln -sf /var/qmail/supervise/qmail-send $PKG/service/qmail-send |
---|
| 264 | ln -sf /var/qmail/supervise/qmail-smtpd $PKG/service/qmail-smtpd |
---|
| 265 | #ln -s /var/qmail/supervise/qmail-pop3d $PKG/service/qmail-pop3d |
---|
| 266 | cp -a $CWD/qmail.permissions $PKG/etc |
---|
| 267 | cp -a $CWD/qmail.rc.config $PKG/etc |
---|
| 268 | cp -a $CWD/qmailctl $PKG/var/qmail/bin/ |
---|
| 269 | cp -a /home/system/qmail/tcp.smtp $PKG/home/system/qmail/ |
---|
| 270 | cp -a /home/system/qmail/tcp.smtp.cdb $PKG/home/system/qmail/ |
---|
| 271 | mkdir -p $PKG/usr/sbin |
---|
| 272 | ln -s /var/qmail/bin/sendmail $PKG/usr/sbin/sendmail || exit 1 |
---|
| 273 | cat $TMP/$NAME-$VERSION/$NAME-$VERSION/config-fast.sh | sed "s/QMAIL/\/var\/qmail/" > $PKG/var/qmail/bin/config-fast |
---|
| 274 | chmod 600 $PKG/etc/qmail.permissions |
---|
| 275 | chmod 600 $PKG/etc/qmail.rc.config |
---|
| 276 | chmod 755 $PKG/var/qmail/bin/qmailctl |
---|
| 277 | chmod 755 $PKG/var/qmail/bin/config-fast |
---|
| 278 | |
---|
[b9261a1] | 279 | mkdir -p $PKG/usr/bin |
---|
[c5c522c] | 280 | cp $CWD/syn3-dagent $PKG/usr/bin || exit 1 |
---|
| 281 | chmod 755 $PKG/usr/bin/syn3-dagent || exit 1 |
---|
| 282 | } |
---|
| 283 | |
---|
| 284 | description() { |
---|
[b9261a1] | 285 | mkdir -p $PKG/install |
---|
| 286 | cat > $PKG/install/slack-desc << END |
---|
| 287 | |-----handy-ruler------------------------------------------------------| |
---|
[c5c522c] | 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: |
---|
| 299 | END |
---|
| 300 | } |
---|
| 301 | |
---|
| 302 | runscript() { |
---|
| 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 |
---|
| 310 | mkdir -p $PKG/etc/postinst.d |
---|
| 311 | cat > $PKG/etc/postinst.d/post.qmail << END |
---|
| 312 | #!/bin/sh |
---|
| 313 | svc -d /service/qmail-* |
---|
[b9261a1] | 314 | svcstop /service/nscd/ |
---|
[c5c522c] | 315 | /var/qmail/bin/qmailctl user |
---|
[b9261a1] | 316 | svcreset /service/nscd/ |
---|
[c5c522c] | 317 | touch /var/qmail/control/smtpplugins |
---|
| 318 | svc -dx /service/qmail-* |
---|
| 319 | #update old config? |
---|
| 320 | if ! grep "127.0.0.3" /etc/qmail/tcp.smtp; then |
---|
| 321 | mv /etc/qmail/tcp.smtp.new /etc/qmail/tcp.smtp |
---|
| 322 | fi |
---|
| 323 | |
---|
| 324 | |
---|
| 325 | #regenerate cdb |
---|
| 326 | tcprules /etc/qmail/tcp.smtp.cdb /etc/qmail/tcp.smtp.tmp < /etc/qmail/tcp.smtp |
---|
| 327 | |
---|
| 328 | END |
---|
| 329 | chmod +x $PKG/etc/postinst.d/post.qmail |
---|
| 330 | } |
---|
| 331 | |
---|
| 332 | build() { |
---|
| 333 | # configfile moeten op .new eindigen |
---|
| 334 | find $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 |
---|
| 335 | |
---|
| 336 | |
---|
| 337 | # Build the package: |
---|
| 338 | cd $PKG |
---|
| 339 | echo $VERSION > $CWD/$NAME.version |
---|
| 340 | echo $ARCH > $CWD/$NAME.arch |
---|
| 341 | makepkg -l y -c n $CWD/$NAME.pkg |
---|
| 342 | |
---|
| 343 | echo "Your $NAME package is complete, make sure you open it up before installing it." |
---|
| 344 | } |
---|
| 345 | |
---|
| 346 | cleanup() { |
---|
| 347 | # Delete the temporary users and groups |
---|
| 348 | userdel alias |
---|
| 349 | userdel qmaild |
---|
| 350 | userdel qmaill |
---|
| 351 | userdel qmailp |
---|
| 352 | userdel qmailq |
---|
| 353 | userdel qmailr |
---|
| 354 | userdel qmails |
---|
| 355 | groupdel nofiles |
---|
| 356 | groupdel qmail |
---|
| 357 | } |
---|
| 358 | |
---|
| 359 | make_dirs || exit 1 |
---|
| 360 | compile || exit 1 |
---|
| 361 | make_scripts || exit 1 |
---|
| 362 | prepare || exit 1 |
---|
| 363 | description || exit 1 |
---|
| 364 | runscript || exit 1 |
---|
| 365 | build || exit 1 |
---|
| 366 | #cleanup || exit 1 |
---|