summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAdam Tkac <atkac@fedoraproject.org>2009-06-17 15:55:38 +0000
committerAdam Tkac <atkac@fedoraproject.org>2009-06-17 15:55:38 +0000
commit91895cfac2da5493ec35c91f8fbe9a6de42adf5d (patch)
tree9d56f5653849487c1650db9318aaab3985c14cbb
parent7ffd8214d5aea71f99b5e1484935a185ec0715f1 (diff)
downloadbind-91895cfac2da5493ec35c91f8fbe9a6de42adf5d.tar.gz
bind-91895cfac2da5493ec35c91f8fbe9a6de42adf5d.tar.xz
bind-91895cfac2da5493ec35c91f8fbe9a6de42adf5d.zip
- 9.6.1 releasebind-9_6_1-1_fc12
- simplify chroot maintenance. Important files and directories are mounted into chroot (see /etc/sysconfig/named for more info, #504596) - fix doc/named.conf.default perms
-rw-r--r--.cvsignore3
-rw-r--r--bind.spec43
-rwxr-xr-xnamed.init47
-rw-r--r--named.sysconfig16
-rw-r--r--sources3
5 files changed, 91 insertions, 21 deletions
diff --git a/.cvsignore b/.cvsignore
index 16afddb..f918ce1 100644
--- a/.cvsignore
+++ b/.cvsignore
@@ -1,3 +1,2 @@
+bind-9.6.1.tar.gz
config-4.tar.bz2
-bind-chroot.tar.bz2
-bind-9.6.1rc1.tar.gz
diff --git a/bind.spec b/bind.spec
index 8be9e60..2c228fd 100644
--- a/bind.spec
+++ b/bind.spec
@@ -3,10 +3,10 @@
#
#%define PATCHVER P1
-%define PREVER rc1
+#%define PREVER rc1
#%define VERSION %{version}
#%define VERSION %{version}-%{PATCHVER}
-%define VERSION %{version}%{PREVER}
+%define VERSION %{version}
%{?!SDB: %define SDB 1}
%{?!test: %define test 0}
@@ -20,7 +20,7 @@ Summary: The Berkeley Internet Name Domain (BIND) DNS (Domain Name System) serv
Name: bind
License: ISC
Version: 9.6.1
-Release: 0.4.%{PREVER}%{?dist}
+Release: 1%{?dist}
Epoch: 32
Url: http://www.isc.org/products/BIND/
Buildroot:%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -31,7 +31,6 @@ Source1: named.sysconfig
Source2: named.init
Source3: named.logrotate
Source5: rfc1912.txt
-Source6: bind-chroot.tar.bz2
Source7: bind-9.3.1rc1-sdb_tools-Makefile.in
Source8: dnszone.schema
Source12: README.sdb_pgsql
@@ -237,11 +236,6 @@ sed -i -e \
's/RELEASEVER=\(.*\)/RELEASEVER=\1-RedHat-%{version}-%{release}/' \
version
-# Substitute libtool -version-info parameter by -version-number
-for all in `find . |grep Makefile.in`; do
- sed -i 's/-version-info/-version-number/' $all
-done
-
libtoolize -c -f; aclocal -I m4 --force; autoheader -f; autoconf -f
%configure \
@@ -307,22 +301,24 @@ mkdir -p ${RPM_BUILD_ROOT}/var/run/named
mkdir -p ${RPM_BUILD_ROOT}/var/log
#chroot
-mkdir -p ${RPM_BUILD_ROOT}/%{chroot_prefix}
-tar --no-same-owner -jxvf %{SOURCE6} --directory ${RPM_BUILD_ROOT}/%{chroot_prefix}
+mkdir -p ${RPM_BUILD_ROOT}/%{chroot_prefix}/{dev,etc,var}
+mkdir -p ${RPM_BUILD_ROOT}/%{chroot_prefix}/var/{log,named,run/named,tmp}
+mkdir -p ${RPM_BUILD_ROOT}/%{chroot_prefix}/etc/{pki/dnssec-keys,named}
+mkdir -p ${RPM_BUILD_ROOT}/%{chroot_prefix}/var/named/{data,slaves,dynamic}
# these are required to prevent them being erased during upgrade of previous
# versions that included them (bug #130121):
touch ${RPM_BUILD_ROOT}/%{chroot_prefix}/dev/null
touch ${RPM_BUILD_ROOT}/%{chroot_prefix}/dev/random
touch ${RPM_BUILD_ROOT}/%{chroot_prefix}/dev/zero
touch ${RPM_BUILD_ROOT}/%{chroot_prefix}/etc/localtime
+
+touch ${RPM_BUILD_ROOT}/%{chroot_prefix}/etc/named.conf
#end chroot
make DESTDIR=${RPM_BUILD_ROOT} install
-touch ${RPM_BUILD_ROOT}%{_sysconfdir}/rndc.conf
install -m 755 contrib/named-bootconf/named-bootconf.sh ${RPM_BUILD_ROOT}%{_sbindir}/named-bootconf
install -m 755 %SOURCE2 ${RPM_BUILD_ROOT}/etc/rc.d/init.d/named
install -m 644 %SOURCE3 ${RPM_BUILD_ROOT}/etc/logrotate.d/named
-touch ${RPM_BUILD_ROOT}%{_sysconfdir}/rndc.key
mkdir -p ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig
install -m 644 %{SOURCE1} ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/named
%if %{SDB}
@@ -346,6 +342,9 @@ touch ${RPM_BUILD_ROOT}%{_localstatedir}/log/named.log
# configuration files:
tar -C ${RPM_BUILD_ROOT} -xjf %{SOURCE28}
+touch ${RPM_BUILD_ROOT}/etc/rndc.key
+touch ${RPM_BUILD_ROOT}/etc/rndc.conf
+mkdir ${RPM_BUILD_ROOT}/etc/named
install -m 644 %{SOURCE5} ./rfc1912.txt
install -m 644 %{SOURCE21} ./Copyright
@@ -354,7 +353,7 @@ install -m 644 %{SOURCE21} ./Copyright
mkdir -p sample/etc sample/var/named/{data,slaves}
install -m 644 %{SOURCE25} sample/etc/named.conf
# Copy default configuration to %%doc to make it usable from system-config-bind
-cp -fp ${RPM_BUILD_ROOT}/etc/named.conf named.conf.default
+install -m 644 ${RPM_BUILD_ROOT}/etc/named.conf named.conf.default
install -m 644 ${RPM_BUILD_ROOT}/etc/named.rfc1912.zones sample/etc/named.rfc1912.zones
install -m 644 ${RPM_BUILD_ROOT}/var/named/{named.ca,named.localhost,named.loopback,named.empty} sample/var/named
for f in my.internal.zone.db slaves/my.slave.internal.zone.db slaves/my.ddns.internal.zone.db my.external.zone.db; do
@@ -458,6 +457,7 @@ rm -rf ${RPM_BUILD_ROOT}
%files
# Hide configuration
%defattr(0640,root,named,0750)
+%dir %{_sysconfdir}/named
%dir %{_localstatedir}/named
%config(noreplace) %verify(not link) %{_sysconfdir}/named.conf
%config(noreplace) %verify(not link) %{_sysconfdir}/named.rfc1912.zones
@@ -558,13 +558,16 @@ rm -rf ${RPM_BUILD_ROOT}
%dir %{chroot_prefix}
%dir %{chroot_prefix}/dev
%dir %{chroot_prefix}/etc
+%dir %{chroot_prefix}/etc/named
+%dir %{chroot_prefix}/etc/pki/dnssec-keys
%dir %{chroot_prefix}/var
%dir %{chroot_prefix}/var/run
%dir %{chroot_prefix}/var/named
+%ghost %config(noreplace) %{chroot_prefix}/etc/named.conf
%defattr(0660,named,named,0770)
-%dir %{chroot_prefix}/var/named/slaves
-%dir %{chroot_prefix}/var/named/data
-%dir %{chroot_prefix}/var/named/dynamic
+%ghost %dir %{chroot_prefix}/var/named/slaves
+%ghost %dir %{chroot_prefix}/var/named/data
+%ghost %dir %{chroot_prefix}/var/named/dynamic
%dir %{chroot_prefix}/var/run/named
%dir %{chroot_prefix}/var/tmp
%dir %{chroot_prefix}/var/log
@@ -575,6 +578,12 @@ rm -rf ${RPM_BUILD_ROOT}
%ghost %{chroot_prefix}/etc/localtime
%changelog
+* Wed Jun 17 2009 Adam Tkac <atkac redhat com> 32:9.6.1-1
+- 9.6.1 release
+- simplify chroot maintenance. Important files and directories are mounted into
+ chroot (see /etc/sysconfig/named for more info, #504596)
+- fix doc/named.conf.default perms
+
* Wed May 27 2009 Adam Tkac <atkac redhat com> 32:9.6.1-0.4.rc1
- 9.6.1rc1 release
diff --git a/named.init b/named.init
index 9ceada4..517e292 100755
--- a/named.init
+++ b/named.init
@@ -47,6 +47,47 @@ fi
[ /etc/sysconfig/dnssec -nt /etc/named.conf ] && \
/usr/sbin/dnssec-configure -b --norestart --dnssec="$DNSSEC" --dlv="$DLV"
+ROOTDIR_MOUNT='/etc/named /etc/pki/dnssec-keys /var/named /etc/named.conf
+/etc/named.dnssec.keys /etc/named.rfc1912.zones /etc/rndc.conf /etc/rndc.key'
+
+mount_chroot_conf()
+{
+ if [ -n "$ROOTDIR" ]; then
+ for all in $ROOTDIR_MOUNT; do
+ # Skip nonexistant files
+ [ -e "$all" ] || continue
+
+ # If mount source is a file
+ if ! [ -d "$all" ]; then
+ # mount it only if it is not present in chroot or it is empty
+ if ! [ -e "$ROOTDIR$all" ] ||
+ [ `ls -s "$ROOTDIR$all" | awk '{ print $1 };'` -eq 0 ]; then
+ touch "$ROOTDIR$all"
+ mount --bind "$all" "$ROOTDIR$all"
+ fi
+ else
+ # Mount source is a directory. Mount it only if directory in chroot is
+ # empty.
+ [ `ls -1A $ROOTDIR$all | wc -l` -eq 0 ] && \
+ mount --bind "$all" "$ROOTDIR$all"
+ fi
+ done
+ fi
+}
+
+umount_chroot_conf()
+{
+ for all in $ROOTDIR_MOUNT; do
+ # Check if file is mount target. Do not use /proc/mounts because detecting
+ # of modified mounted files can fail.
+ if mount | grep -q '.* on '"$ROOTDIR$all"' .*'; then
+ umount "$ROOTDIR$all"
+ # Remove temporary created files
+ [ -f "$all" ] && rm -f "$ROOTDIR$all"
+ fi
+ done
+}
+
# Check if all what named needs running
start()
{
@@ -70,6 +111,8 @@ start()
named_conf=${named_conf:-/etc/named.conf};
+ mount_chroot_conf
+
if [ ! -r $ROOTDIR$named_conf ]; then
echo 'Cannot find configuration file. You could create it by system-config-bind'
exit 6;
@@ -117,12 +160,14 @@ start()
failure
echo
[ -x /usr/bin/logger ] && echo "$named_err" | /usr/bin/logger -pdaemon.error -tnamed;
+ umount_chroot_conf
exit 2;
fi;
echo
if [ $RETVAL -eq 0 ]; then
touch /var/lock/subsys/named;
else
+ umount_chroot_conf
exit 7;
fi
return 0;
@@ -148,6 +193,8 @@ stop() {
fi;
done
+ umount_chroot_conf
+
# remove pid files
if [ $RETVAL -eq 0 ]; then
rm -f /var/lock/subsys/named
diff --git a/named.sysconfig b/named.sysconfig
index 421dfa1..6ae9539 100644
--- a/named.sysconfig
+++ b/named.sysconfig
@@ -6,6 +6,22 @@
# you must set up the chroot environment
# (install the bind-chroot package) before
# doing this.
+# NOTE:
+# Those directories are automatically mounted to chroot if they are
+# empty in the ROOTDIR directory. It will simplify maintenance of your
+# chroot environment.
+# - /var/named
+# - /etc/pki/dnssec-keys
+# - /etc/named
+#
+# Those files are mounted as well if target file doesn't exist in
+# chroot.
+# - /etc/named.conf
+# - /etc/rndc.conf
+# - /etc/rndc.key
+# - /etc/named.rfc1912.zones
+# - /etc/named.dnssec.keys
+#
#
# OPTIONS="whatever" -- These additional options will be passed to named
# at startup. Don't add -t here, use ROOTDIR instead.
diff --git a/sources b/sources
index be782aa..415026c 100644
--- a/sources
+++ b/sources
@@ -1,3 +1,2 @@
+516ac74d8eaaef30ad4c99ada8b715cd bind-9.6.1.tar.gz
de68e10e91e05ab100be879b5bcaa6cb config-4.tar.bz2
-4faa4395b955e5f8a3d50f308b9fabc8 bind-chroot.tar.bz2
-43121369fa9c218d565ae685960660e2 bind-9.6.1rc1.tar.gz