Package bind-dyndb-ldap: Scripts

Post install

# The following sed script:
#   - scopes the named.conf changes to dynamic-db
#   - replaces arg "name value" syntax with name "value"
#   - changes dynamic-db header to dyndb
#   - uses the new way the define path to the library
#   - removes no longer supported arguments (library, cache_ttl,
#       psearch, serial_autoincrement, zone_refresh)
while read -r PATTERN
do
    SEDSCRIPT+="$PATTERN"
done <<EOF
/^\s*dynamic-db/,/};/ {

  s/\(\s*\)arg\s\+\(["']\)\([a-zA-Z_]\+\s\)/\1\3\2/g;

  s/^dynamic-db/dyndb/;

  s@\(dyndb "[^"]\+"\)@\1 "/usr/lib64/bind/ldap.so"@;
  s@\(dyndb '[^']\+'\)@\1 '/usr/lib64/bind/ldap.so'@;

  /\s*library[^;]\+;/d;
  /\s*cache_ttl[^;]\+;/d;
  /\s*psearch[^;]\+;/d;
  /\s*serial_autoincrement[^;]\+;/d;
  /\s*zone_refresh[^;]\+;/d;
}
EOF

sed -i.bak --follow-symlinks -e "$SEDSCRIPT" /etc/named.conf
Pre install

# upgrade

# Previously, during an upgrade transaction named failed on restart
# with binary incompatible dyndb plugin (not updated yet). So the
# special file-flag is created if named was running before upgrade.
# Later, named's filetrigger checks it for restart.
if [ "$1" -gt 1 ] && [ ! -f '/run/named/named.restart' ]; then
    SYSTEMCTL=systemctl
    if sd_booted && "$SYSTEMCTL" --version >/dev/null 2>&1; then
        "$SYSTEMCTL" is-active bind.service >/dev/null 2>&1 &&
        "$SYSTEMCTL" stop bind.service 2>/dev/null &&
        mkdir -p "$(dirname '/run/named/named.restart')" &&
        touch '/run/named/named.restart' 2>/dev/null ||:
    else
        /etc/rc.d/init.d/bind status >/dev/null 2>&1 &&
        /etc/rc.d/init.d/bind stop 2>/dev/null &&
        mkdir -p "$(dirname '/run/named/named.restart')" &&
        touch '/run/named/named.restart' 2>/dev/null ||:
    fi
fi