1a86e146c47eba557a8351c6bc1de1628b914e17
[bind9-cn.git] / debian / postinst
1 #!/bin/sh
2 # postinst script for bind9-cn
3 #
4 # see: dh_installdeb(1)
5
6 set -e
7
8 # summary of how this script can be called:
9 #        * <postinst> `configure' <most-recently-configured-version>
10 #        * <old-postinst> `abort-upgrade' <new version>
11 #        * <conflictor's-postinst> `abort-remove' `in-favour' <package>
12 #          <new-version>
13 #        * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
14 #          <failed-install-package> <version> `removing'
15 #          <conflicting-package> <version>
16 # for details, see http://www.debian.org/doc/debian-policy/ or
17 # the debian-policy package
18 #
19
20 case "$1" in
21     configure|reconfigure)
22       # continue below
23     ;;
24
25     *)
26         exit 0
27     ;;
28 esac
29
30 # import CN-functions
31 . /usr/share/carnet-tools/functions.sh
32
33 echo "CN: Making sample configurations in /usr/share/doc/bind9-cn/examples"
34 echo "CN: Make sure you change them appropriately *before* running Bind9 service!"
35
36 #variables
37 cp_get_ifaddr
38 CARNET_IPADDR=$RET
39 cp_get_netaddr
40 CARNET_NETADDR=$RET
41 CARNET_HOSTNAME=`hostname`
42 CARNET_DOMAINNAME=`hostname --domain`
43 CARNET_REV=`echo $CARNET_IPADDR | awk -F. '{ print $3 "." $2 "." $1 ".in-addr.arpa" }'`
44 SERNO=`date +%Y%m%d01`
45 BROJ=`echo $CARNET_IPADDR | cut -d. -f4`
46
47 echo "CN: Generating Bind9 examples in /usr/share/doc/bind9-cn/examples"
48
49 # make example named.conf.local
50 cat > /usr/share/doc/bind9-cn/examples/named.conf.local <<EOF
51 zone "$CARNET_DOMAINNAME" in {
52     type master;
53     file "/etc/bind/hosts.db";
54 };
55
56 zone "$CARNET_REV" in {
57     type master;
58     file "/etc/bind/hosts.rev";
59 };
60 EOF
61
62 # make example named.conf.options
63 cat > /usr/share/doc/bind9-cn/examples/named.conf.options <<EOF
64 acl "xfer" {
65     161.53.2.70;
66     161.53.123.3;
67     161.53.3.7;
68     127.0.0.1;
69 };
70
71 acl "trusted" {
72     $CARNET_NETADDR;
73     127.0.0.0/8;
74 };
75
76 options {
77     directory "/etc/bind";
78     auth-nxdomain no;
79     allow-transfer { xfer; };
80     allow-recursion { trusted; };
81     version "No version.";
82     transfer-format many-answers;
83     max-transfer-time-in 90;
84     interface-interval 0;
85     notify yes;
86     listen-on-v6 { none; };
87 };
88
89 logging {
90     category lame-servers { null; };
91 };
92 EOF
93
94 # make example hosts.db
95 cat > /usr/share/doc/bind9-cn/examples/hosts.db <<EOF
96 \$TTL 86400
97 @  SOA  $CARNET_HOSTNAME.$CARNET_DOMAINNAME. hostmaster.$CARNET_HOSTNAME.$CARNET_DOMAINNAME. (
98     $SERNO   ; Serial
99     28800    ; Refresh
100     7200     ; Retry
101     604800   ; Expire
102     86400 )  ; Minimum
103     NS  $CARNET_HOSTNAME.$CARNET_DOMAINNAME.
104     NS  bjesomar.srce.hr.
105     A   $CARNET_IPADDR
106     MX  5   $CARNET_HOSTNAME.$CARNET_DOMAINNAME.
107
108 localhost.$CARNET_DOMAINNAME.   A       127.0.0.1
109 $CARNET_HOSTNAME.$CARNET_DOMAINNAME.      A     $CARNET_IPADDR
110
111 dns         CNAME   $CARNET_HOSTNAME.$CARNET_DOMAINNAME.
112 ns          CNAME   $CARNET_HOSTNAME.$CARNET_DOMAINNAME.
113 www         CNAME   $CARNET_HOSTNAME.$CARNET_DOMAINNAME.
114 proxy       CNAME   $CARNET_HOSTNAME.$CARNET_DOMAINNAME.
115 mail        CNAME   $CARNET_HOSTNAME.$CARNET_DOMAINNAME.
116 smtp        CNAME   $CARNET_HOSTNAME.$CARNET_DOMAINNAME.
117 pop         CNAME   $CARNET_HOSTNAME.$CARNET_DOMAINNAME.
118 imap        CNAME   $CARNET_HOSTNAME.$CARNET_DOMAINNAME.
119 ftp         CNAME   $CARNET_HOSTNAME.$CARNET_DOMAINNAME.
120 ntp         CNAME   $CARNET_HOSTNAME.$CARNET_DOMAINNAME.
121 EOF
122
123 # make example hosts.rev
124 cat > /usr/share/doc/bind9-cn/examples/hosts.rev <<EOF
125 \$TTL 86400
126 @  SOA  $CARNET_HOSTNAME.$CARNET_DOMAINNAME. hostmaster.$CARNET_HOSTNAME.$CARNET_DOMAINNAME. (
127     $SERNO       ; Serial
128     28800   ; Refresh
129     7200    ; Retry
130     604800  ; Expire
131     86400 ) ; Minimum
132     NS  $CARNET_HOSTNAME.$CARNET_DOMAINNAME.
133     NS  bjesomar.srce.hr.
134
135 $BROJ   PTR   $CARNET_HOSTNAME.$CARNET_DOMAINNAME.
136 EOF
137
138 # make example hosts
139 cat > /usr/share/doc/bind9-cn/examples/hosts <<EOF
140 # /etc/hosts - names & shortcuts to various hosts
141 127.0.0.1       localhost.$CARNET_DOMAINNAME localhost
142 $CARNET_IPADDR      $CARNET_HOSTNAME.$CARNET_DOMAINNAME $CARNET_HOSTNAME
143 EOF
144
145 # make example resolv.conf
146 cat > /usr/share/doc/bind9-cn/examples/resolv.conf <<EOF
147 search $CARNET_DOMAINNAME
148 nameserver 127.0.0.1
149 nameserver 161.53.123.3
150 nameserver 161.53.160.3
151 EOF
152
153 # check if named.conf has lame server logging
154 script='/^logging/,/^}/ { if ($0 ~ /category lame-servers/) { print "yes"; exit } }'
155 lameconf=
156 if [ -e /etc/bind/named.conf.options -a -e /etc/bind/named.conf ]; then
157   lameconf=$(cat /etc/bind/named.conf /etc/bind/named.conf.options | awk "$script")
158 else
159     if [ -e /etc/bind/named.conf ]; then
160       lameconf=$(awk "$script" /etc/bind/named.conf)
161     fi
162 fi
163 if [ "x$lameconf" != "xyes" ]; then
164   if [ ! -e /etc/bind/named.conf.options ]; then
165     touch /etc/bind/named.conf.options
166   fi
167   cp /etc/bind/named.conf.options /etc/bind/named.conf.options.$$
168   cp-update bind9-cn /etc/bind/named.conf.options.$$ <<EOF
169 logging {
170     category lame-servers { null; };
171 };
172 EOF
173   cp_mv /etc/bind/named.conf.options.$$ /etc/bind/named.conf.options
174     
175   # reload
176   echo "CN: Added lame-servers logging exclusion to named.conf.options"
177   rndc reload || echo "CN: Reload didn't work, please check manually"
178 fi
179
180 if [ -e /etc/bind/named.conf.options ] && \
181     fgrep -q 'query-source address * port 53' \
182         /etc/bind/named.conf.options; then
183         fgrep -v 'query-source address * port 53' \
184             /etc/bind/named.conf.options > /etc/bind/named.conf.options.$$
185     cp_mv /etc/bind/named.conf.options.$$ /etc/bind/named.conf.options
186     echo "CN: Removing obsolete query-source directive"
187     rndc reload || echo "CN: Reload didn't work, please check manually"
188 fi
189
190 # dh_installdeb will replace this with shell code automatically
191 # generated by other debhelper scripts.
192
193 #DEBHELPER#
194
195 exit 0