Hello community, here is the log from the commit of package bind for openSUSE:Factory checked in at 2018-02-10 17:52:20 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/bind (Old) and /work/SRC/openSUSE:Factory/.bind.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "bind" Sat Feb 10 17:52:20 2018 rev:131 rq:574246 version:9.11.2 Changes: -------- --- /work/SRC/openSUSE:Factory/bind/bind.changes 2018-01-26 13:37:52.677838854 +0100 +++ /work/SRC/openSUSE:Factory/.bind.new/bind.changes 2018-02-10 17:52:22.184724225 +0100 @@ -1,0 +2,5 @@ +Wed Feb 7 15:17:17 UTC 2018 - [email protected] + +- Implement systemd init scripts for bind and lwresd (fate#323155) + +------------------------------------------------------------------- ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ bind.spec ++++++ --- /var/tmp/diff_new_pack.9RFHjN/_old 2018-02-10 17:52:23.196687592 +0100 +++ /var/tmp/diff_new_pack.9RFHjN/_new 2018-02-10 17:52:23.200687447 +0100 @@ -43,7 +43,12 @@ %define GROUPADD_NAMED getent group %{NAMED_GID_NAME} >/dev/null || %{_sbindir}/groupadd -g %{NAMED_GID} -o -r %{NAMED_GID_NAME} %define USERADD_NAMED getent passwd %{NAMED_UID_NAME} >/dev/null || %{_sbindir}/useradd -r -o -g %{NAMED_GID_NAME} -u %{NAMED_UID} -s %{NAMED_SHELL} -c "%{NAMED_COMMENT}" -d %{NAMED_HOMEDIR} %{NAMED_UID_NAME} %define USERMOD_NAMED getent passwd %{NAMED_UID_NAME} >/dev/null || %{_sbindir}/usermod -s %{NAMED_SHELL} -d %{NAMED_HOMEDIR} %{NAMED_UID_NAME} +%if 0%{?suse_version} >= 1500 +%define with_systemd 1 +%else %define with_systemd 0 +%endif + #Compat macro for new _fillupdir macro introduced in Nov 2017 %if ! %{defined _fillupdir} %define _fillupdir %{_localstatedir}/adm/fillup-templates @@ -99,9 +104,11 @@ Provides: dns_daemon Obsoletes: bind8 < %{version} Obsoletes: bind9 < %{version} -%{?systemd_requires} %if %{with_systemd} BuildRequires: systemd-rpm-macros +BuildRequires: pkgconfig(libsystemd) +BuildRequires: pkgconfig(systemd) +%{?systemd_requires} %else Requires(post): %insserv_prereq %endif @@ -313,12 +320,11 @@ sed -e "s@__NSD__@/lib@g" \ -e "s@__BIND_PACKAGE_NAME__@%{name}@g" \ -e "s@__VENDOR__@%{VENDOR}@g" \ - -e "s@___lib__@%{_lib}@g" \ -e "s@__openssl__@$(pkg-config --variable=enginesdir libcrypto)@g" \ -i "${file}" } pushd vendor-files -for file in docu/README tools/createNamedConfInclude config/{README,named.conf} init/{named,lwresd} sysconfig/{named-common,named-named,syslog-named}; do +for file in docu/README tools/createNamedConfInclude config/{README,named.conf} init/{named,lwresd} system/{named.init,lwresd.init} sysconfig/{named-common,named-named,syslog-named}; do replaceStrings ${file} done popd @@ -349,6 +355,9 @@ --with-gssapi=yes \ --disable-isc-spnego \ --enable-fixed-rrset \ +%if %{with_systemd} + --with-systemd \ +%endif --enable-full-report # disable rpath sed -i ' @@ -387,10 +396,19 @@ for file in lwresd.conf named.conf.include rndc.key; do touch %{buildroot}/%{_sysconfdir}/${file} done -for file in lwresd named; do + +%if %{with_systemd} + for file in lwresd named; do + install -D -m 0644 vendor-files/system/${file}.service %{buildroot}%{_unitdir}/${file}.service + install -m 0755 vendor-files/system/${file}.init %{buildroot}/usr/sbin/${file}.init + ln -s /sbin/service %{buildroot}%{_sbindir}/rc${file} + done +%else + for file in lwresd named; do install -m 0754 vendor-files/init/${file} %{buildroot}%{_initddir}/${file} ln -sf %{_initddir}/${file} %{buildroot}%{_sbindir}/rc${file} -done + done +%endif install -m 0644 ${RPM_SOURCE_DIR}/named.root %{buildroot}%{_localstatedir}/lib/named/root.hint mv vendor-files/config/{127.0.0,localhost}.zone %{buildroot}%{_localstatedir}/lib/named install -m 0754 vendor-files/tools/createNamedConfInclude %{buildroot}/%{_datadir}/bind @@ -674,7 +692,12 @@ %attr(0644,root,root) /%{_sysconfdir}/slp.reg.d/bind.reg %attr(0644,root,named) %ghost /%{_sysconfdir}/named.conf.include %attr(0640,root,named) %ghost %config(noreplace) /%{_sysconfdir}/rndc.key +%if %{with_systemd} +%config %{_unitdir}/named.service +%{_sbindir}/named.init +%else %config /%{_sysconfdir}/init.d/named +%endif %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/bind %{_bindir}/bind9-config %{_bindir}/named-rrchecker @@ -766,7 +789,12 @@ %files lwresd %ghost %attr(0644,root,named) %config(noreplace) /%{_sysconfdir}/lwresd.conf +%if %{with_systemd} +%config %{_unitdir}/lwresd.service +%{_sbindir}/lwresd.init +%else %config %{_initddir}/lwresd +%endif %{_sbindir}/rclwresd %{_sbindir}/lwresd %{_mandir}/man8/lwresd.8%{ext_man} ++++++ vendor-files.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor-files/system/lwresd.init new/vendor-files/system/lwresd.init --- old/vendor-files/system/lwresd.init 1970-01-01 01:00:00.000000000 +0100 +++ new/vendor-files/system/lwresd.init 2018-02-06 19:16:08.663800983 +0100 @@ -0,0 +1,111 @@ +#! /bin/sh +# Copyright (c) 2004-2018 SUSE Linux GmbH, Nuernberg, Germany. +# All rights reserved. +# +# Author: Navin Kukreja <[email protected]> + +# Check for missing binaries +LWRESD_BIN="/usr/sbin/lwresd" +if [ "$1" != "stop" -a ! -x ${LWRESD_BIN} ]; then + echo -n "Lightweight resolver daemon binary, ${LWRESD_BIN} is not installed! " + exit 5 +fi + +# Set and check for rndc +RNDC_BIN="/usr/sbin/rndc" +test -x ${RNDC_BIN} || RNDC_BIN="" + +# Check for existence of needed config file and read it +SYSCONFIG_FILE="/etc/sysconfig/named" +test -f ${SYSCONFIG_FILE} || \ + cp -a /var/adm/fillup-templates/sysconfig.named-common ${SYSCONFIG_FILE} +. ${SYSCONFIG_FILE} + +if [ "${NAMED_RUN_CHROOTED}" = "yes" ]; then + CHROOT_PREFIX="/var__NSD__/named" + NAMED_ARGS="${NAMED_ARGS} -t ${CHROOT_PREFIX}" +else + CHROOT_PREFIX="" +fi + +LWRESD_PID="${CHROOT_PREFIX}/var/run/named/lwresd.pid" + +function warnMessage() +{ + tput bold + echo -en "\nWarning: " + tput sgr0 + echo -e "$1 " +} + +# Create destination directory in the chroot. +function makeDestDir +{ + if [ ! -d "${CHROOT_PREFIX}/${configfile%/*}" ]; then + umask 0022 + mkdir -p "${CHROOT_PREFIX}/${configfile%/*}" + fi +} + +# Check if all needed configuration files exist and copy these files relativly +# to the chroot directory if 'named' runs chrooted. +function checkAndCopyConfigFiles +{ + test "${checkAndCopyConfigFilesCalled}" = "yes" && return + # Handle known configuration files. + if [ "${NAMED_RUN_CHROOTED}" = "yes" ]; then + # Create link if needed, /var/run might be on tmpfs + test -d /var/run/named && \ + rm -rf /var/run/named + test ! -L /var/run/named && \ + ln -s ${CHROOT_PREFIX}/var/run/named /var/run/named + + # mount /proc for multicore CPUs (bnc#470828) + if [ ! -e "${CHROOT_PREFIX}/proc/meminfo" ]; then + mkdir -p "${CHROOT_PREFIX}/proc" + mount -tproc -oro,nosuid,nodev,noexec proc ${CHROOT_PREFIX}/proc 2>/dev/null + fi; + + for configfile in /etc/{localtime,lwresd.conf,resolv.conf,rndc.key}; do + if [ ! -e ${configfile} ]; then + case ${configfile} in + # Don't complain if we don't have a lwresd.conf + /etc/lwresd.conf) + rm -f "${CHROOT_PREFIX}/${configfile}" # clean chroot env. + continue ;; + # Don't complain if we don't have a key. + /etc/rndc.key) continue ;; + *) + warnMessage "File ${configfile} not found. Skipping." + continue + ;; + esac + fi + makeDestDir + rm -f ${CHROOT_PREFIX}/${configfile} + cp -a -L ${configfile} ${CHROOT_PREFIX}/${configfile%/*} + done + mkdir -p ${CHROOT_PREFIX}/__openssl__ + cp -r __openssl__/* ${CHROOT_PREFIX}/__openssl__ + else + # NAMED_RUN_CHROOTED != yes + test -L /var/run/named && rm /var/run/named + if [ ! -d /var/run/named ]; then + mkdir -p /var/run/named + chown named: /var/run/named + fi + fi + export checkAndCopyConfigFilesCalled="yes" +} + +case "$1" in + start) + echo -n "Starting Lightweight resolver daemon " + checkAndCopyConfigFiles + exec ${LWRESD_BIN} ${NAMED_ARGS} -u named + ;; + *) + echo "Usage: $0 {start}" + exit 1 + ;; +esac diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor-files/system/lwresd.service new/vendor-files/system/lwresd.service --- old/vendor-files/system/lwresd.service 1970-01-01 01:00:00.000000000 +0100 +++ new/vendor-files/system/lwresd.service 2018-02-06 19:12:17.863808597 +0100 @@ -0,0 +1,10 @@ +[Unit] +Description=Lightweight Resolver Daemon +After=network.target + +[Service] +Type=forking +ExecStart=/usr/sbin/lwresd.init start + +[Install] +WantedBy=multi-user.target diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor-files/system/named.init new/vendor-files/system/named.init --- old/vendor-files/system/named.init 1970-01-01 01:00:00.000000000 +0100 +++ new/vendor-files/system/named.init 2018-02-06 18:18:30.691915048 +0100 @@ -0,0 +1,226 @@ +#! /bin/sh +# Copyright (c) 1995-2018 SUSE Linux GmbH, Nuernberg, Germany +# All rights reserved. +# +# Author: Navin Kukreja <[email protected]> + +PATH="/sbin:/usr/sbin:/bin:/usr/bin" +SYSCONFIG_FILE="/etc/sysconfig/named" +NAMED_CONF="/etc/named.conf" +NAMED_BIN="/usr/sbin/named" + +if ! [ -x "$NAMED_BIN" ]; then + case $1 in + stop) ;; + *) echo -n >&2 "$0: \"$NAMED_BIN\" is not an executable file. Exiting." + case $1 in + status) exit 4 ;; + *) exit 5 ;; + esac + ;; + esac + exit +fi + +if [ "$1" != "stop" -a "$1" != "status" ]; then + for configfile in ${SYSCONFIG_FILE} ${NAMED_CONF}; do + if [ ! -f ${configfile} ]; then + echo -n "Name server configuration file ${configfile} does not exist. " + # Tell the user this has skipped + exit 6 + fi + done + . /etc/sysconfig/named + # Ensure to work always with absolut filenames. + temp_file_list="" + for configfile in ${NAMED_CONF_INCLUDE_FILES}; do + # prepend the default include directory if the filename is + # relative + test "${configfile:0:1}" = "/" || configfile="/etc/named.d/${configfile}" + temp_file_list="${temp_file_list} ${configfile}" + done + NAMED_CONF_INCLUDE_FILES=${temp_file_list} + # Add include files from named.conf. + NAMED_CONF_INCLUDE_LINES=$( grep -e '^[[:space:]]*include' "${NAMED_CONF}" | cut -f 2 -d '"') + for file in ${NAMED_CONF_INCLUDE_LINES}; do + test "${file}" = "${NAMED_CONF_META_INCLUDE_FILE}" && continue + case "${NAMED_CONF_INCLUDE_FILES}" in + *${file}*) ;; + *) NAMED_CONF_INCLUDE_FILES="${NAMED_CONF_INCLUDE_FILES} ${file}" ;; + esac + done +fi + +if [ "${NAMED_RUN_CHROOTED}" = "yes" ]; then + CHROOT_PREFIX="/var__NSD__/named" + NAMED_ARGS="${NAMED_ARGS} -t ${CHROOT_PREFIX}" + NAMED_CHECKCONF_ARGS="-t ${CHROOT_PREFIX}" +else + CHROOT_PREFIX="" +fi + +NAMED_CHECKCONF_BIN="/usr/sbin/named-checkconf" +NAMED_CONF_META_INCLUDE_FILE_SCRIPT="/usr/share/bind/createNamedConfInclude" +NAMED_PID="${CHROOT_PREFIX}/var/run/named/named.pid" +RNDC_BIN="/usr/sbin/rndc" + +if [ ! -x ${NAMED_BIN} -a "$1" != "stop" ] ; then + echo -n "Name server, ${NAMED_BIN} not installed! " + # Tell the user this has skipped + exit 5 +fi + +# Check for NAMED_CONF_META_INCLUDE_FILE or set it to our default if we use +# the NAMED_CONF_META_INCLUDE_FILE_SCRIPT script. +if [ -z "${NAMED_CONF_META_INCLUDE_FILE}" ]; then + BASENAME_NAMED_CONF_META_INCLUDE_FILE_SCRIPT=$( basename ${NAMED_CONF_META_INCLUDE_FILE_SCRIPT}) + for script in ${NAMED_INITIALIZE_SCRIPTS}; do + if [ "${script}" = "${BASENAME_NAMED_CONF_META_INCLUDE_FILE_SCRIPT}" -o \ + "${script}" = "${NAMED_CONF_META_INCLUDE_FILE_SCRIPT}" ]; then + NAMED_CONF_META_INCLUDE_FILE="/etc/named.conf.include" + break + fi + done +fi + +function warnMessage() +{ + echo -en "\nWarning: " + echo -e "$1 " +} + +function initializeNamed +{ + rc=0 + test "${initializeNamedCalled}" = "yes" && return + for script in ${NAMED_INITIALIZE_SCRIPTS}; do + test "${script:0:1}" = "/" || script="/usr/share/bind/${script}" + ${script} + test $? -ne 0 && rc=$? + done + # We want to start each script one time only + export initializeNamedCalled="yes" + return ${rc} +} + +# Create destination directory in the chroot. +function makeDestDir +{ + if [ ! -d "${CHROOT_PREFIX}/${configfile%/*}" ]; then + umask 0022 + mkdir -p "${CHROOT_PREFIX}/${configfile%/*}" + fi +} + +# Check if all needed configuration files exist and copy these files relativly +# to the chroot directory if 'named' runs chrooted. +function checkAndCopyConfigFiles +{ + test "${checkAndCopyConfigFilesCalled}" = "yes" && return + # check for /etc/rndc.key + if [ ! -f /etc/rndc.key ]; then + warnMessage "File /etc/rndc.key not found. Creating it." + /usr/sbin/rndc-confgen -a -b 512 -r /dev/urandom + chmod 0640 /etc/rndc.key + chown root:named /etc/rndc.key + fi + + # Handle known configuration files. + if [ "${NAMED_RUN_CHROOTED}" = "yes" ]; then + # Create link if needed, /var/run might be on tmpfs + test -d /var/run/named && \ + rm -rf /var/run/named + test ! -L /var/run/named && \ + ln -s ${CHROOT_PREFIX}/var/run/named /var/run/named + + NAMED_D="/etc/named.d" + # delete old named.d + test -z "${CHROOT_PREFIX}${NAMED_D}" || rm -rf ${CHROOT_PREFIX}${NAMED_D} + # copy new + cp -a -L ${NAMED_D} ${CHROOT_PREFIX}${NAMED_D%/*} + for configfile in ${NAMED_CONF_INCLUDE_FILES} "${NAMED_CONF}" "${NAMED_CONF_META_INCLUDE_FILE}" /etc/{localtime,rndc.key,ssl/openssl.cnf}; do + if [ ! -e ${configfile} ]; then + warnMessage "File ${configfile} not found. Skipping." + continue + fi + makeDestDir + rm -f ${CHROOT_PREFIX}/${configfile} + cp -a -L ${configfile} ${CHROOT_PREFIX}/${configfile%/*} + done + mkdir -p ${CHROOT_PREFIX}/__openssl__ + cp -r __openssl__/* ${CHROOT_PREFIX}/__openssl__ + else + # NAMED_RUN_CHROOTED != yes + test -L /var/run/named && rm /var/run/named + if [ ! -d /var/run/named ]; then + mkdir -p /var/run/named + chown named: /var/run/named + fi + fi + export checkAndCopyConfigFilesCalled="yes" +} + +# Check the syntax of our 'named' configuration. +function namedCheckConf +{ + test "${namedConfChecked}" = "yes" && return + if ! ${NAMED_CHECKCONF_BIN} ${NAMED_CHECKCONF_ARGS} >/dev/null; then + checkAndCopyConfigFiles + if ! ${NAMED_CHECKCONF_BIN} ${NAMED_CHECKCONF_ARGS}; then + exit 6 + fi + fi + export namedConfChecked="yes" +} + +case "$1" in + start) + echo -n "Starting name server BIND " + if [ ! -e /etc/named.conf.include ]; then + touch /etc/named.conf.include + fi + if [ ! -e /etc/named.d/forwarders.conf ]; then + touch /etc/named.d/forwarders.conf + fi + + initializeNamed + checkAndCopyConfigFiles + namedCheckConf + start_daemon -p ${NAMED_PID} ${NAMED_BIN} ${NAMED_ARGS} -u named + ;; + stop) + echo -n "Shutting down name server BIND " + if ${RNDC_BIN} status &>/dev/null; then + ${RNDC_BIN} stop + else + killproc -p ${NAMED_PID} -TERM ${NAMED_BIN} + fi + + if [ -e "/var/lib/named/proc/meminfo" ] ; then + umount "/var/lib/named/proc" + fi; + exit + ;; + restart) + $0 stop + $0 start + ;; + reload) + echo -n "Reloading name server BIND " + checkAndCopyConfigFiles + namedCheckConf + initializeNamed + ${RNDC_BIN} status &>/dev/null + if [ $? -ne 0 ]; then + killproc -p ${NAMED_PID} -HUP ${NAMED_BIN} + else + ${RNDC_BIN} reload + fi + rc=$? + ( exit ${rc} ) + ;; + *) + echo "Usage: $0 {start|stop|restart|reload}" + exit 1 + ;; +esac diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/vendor-files/system/named.service new/vendor-files/system/named.service --- old/vendor-files/system/named.service 1970-01-01 01:00:00.000000000 +0100 +++ new/vendor-files/system/named.service 2018-02-06 13:22:13.952501433 +0100 @@ -0,0 +1,12 @@ +[Unit] +Description=Berkeley Internet Name Domain (DNS) +After=network.target + +[Service] +Type=forking +ExecStart=/usr/sbin/named.init start +ExecReload=/usr/sbin/named.init reload +ExecStop=/usr/sbin/named.init stop + +[Install] +WantedBy=multi-user.target
