- 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
This commit is contained in:
Adam Tkac 2009-06-17 15:55:38 +00:00
parent 7ffd8214d5
commit 91895cfac2
5 changed files with 91 additions and 21 deletions

View File

@ -1,3 +1,2 @@
bind-9.6.1.tar.gz
config-4.tar.bz2
bind-chroot.tar.bz2
bind-9.6.1rc1.tar.gz

View File

@ -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

View File

@ -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

View File

@ -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.

View File

@ -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