chown -R root:knot-resolver /etc/knot-resolver
}
+pre_upgrade() {
+ if [ -f /lib/systemd/system/kresd.socket ] ; then
+ export UPG_DIR=%{_sysconfdir}/knot-resolver/.upgrade-4-to-5
+ mkdir -p ${UPG_DIR}
+
+ for sock in kresd.socket kresd-tls.socket kresd-webmgmt.socket kresd-doh.socket ; do
+ if systemctl is-enabled ${sock} 2>/dev/null | grep -qv masked ; then
+ systemctl show ${sock} -p Listen > ${UPG_DIR}/${sock}
+ case "$(systemctl show ${sock} -p BindIPv6Only)" in
+ *ipv6-only)
+ touch ${UPG_DIR}/${sock}.v6only
+ ;;
+ *default)
+ if cat /proc/sys/net/ipv6/bindv6only | grep -q 1 ; then
+ touch ${UPG_DIR}/${sock}.v6only
+ fi
+ ;;
+ esac
+ fi
+ done
+ fi
+}
+
post_upgrade() {
chown -R root:knot-resolver /etc/knot-resolver
- if echo $2 | grep -q '^[0-4]'; then
- echo -e " Knot Resolver version 5+ uses a different configuration for network interfaces."
- echo -e " Please refer to https://knot-resolver.readthedocs.io/en/stable/upgrading.html"
+ export UPG_DIR=%{_sysconfdir}/knot-resolver/.upgrade-4-to-5
+ if [ -f ${UPG_DIR}/.unfinished ] ; then
+ rm -f ${UPG_DIR}/.unfinished
+ kresd -c %{_libdir}/knot-resolver/upgrade-4-to-5.lua &>/dev/null
+ echo -e "\n !!! WARNING !!!"
+ echo -e "Knot Resolver configuration file requires manual upgrade.\n"
+ cat ${UPG_DIR}/kresd.conf.net 2>/dev/null
fi
}
# upgrade-4-to-5
export UPG_DIR=/etc/knot-resolver/.upgrade-4-to-5
-if [ -d ${UPG_DIR} ] ; then
+if [ -f ${UPG_DIR}/.unfinished ] ; then
+ rm -f ${UPG_DIR}/.unfinished
kresd -c /usr/lib/knot-resolver/upgrade-4-to-5.lua >/dev/null 2>/dev/null
echo "\n !!! WARNING !!!"
- echo "Knot Resolver configuration file was automatically upgraded."
- echo "Verify changes manually in /etc/knot-resolver/kresd.conf\n"
- mv ${UPG_DIR} ${UPG_DIR}.bak
+ echo "Knot Resolver configuration file requires manual upgrade.\n"
+ cat ${UPG_DIR}/kresd.conf.net 2>/dev/null
fi
if [ "$1" = "configure" ]; then
if [ -f /lib/systemd/system/kresd.socket ] ; then
export UPG_DIR=/etc/knot-resolver/.upgrade-4-to-5
mkdir -p ${UPG_DIR}
+ touch ${UPG_DIR}/.unfinished
for sock in kresd.socket kresd-tls.socket kresd-webmgmt.socket kresd-doh.socket ; do
if systemctl is-enabled ${sock} 2>/dev/null | grep -qv masked ; then
if [ -f %{_unitdir}/kresd.socket ] ; then
export UPG_DIR=%{_sysconfdir}/knot-resolver/.upgrade-4-to-5
mkdir -p ${UPG_DIR}
+ touch ${UPG_DIR}/.unfinished
for sock in kresd.socket kresd-tls.socket kresd-webmgmt.socket kresd-doh.socket ; do
if systemctl is-enabled ${sock} 2>/dev/null | grep -qv masked ; then
%post
# upgrade-4-to-5
-%if 0%{?fedora}
+%if "x%{?rhel}" == "x"
export UPG_DIR=%{_sysconfdir}/knot-resolver/.upgrade-4-to-5
-if [ -d ${UPG_DIR} ] ; then
+if [ -f ${UPG_DIR}/.unfinished ] ; then
+ rm -f ${UPG_DIR}/.unfinished
kresd -c %{_libdir}/knot-resolver/upgrade-4-to-5.lua &>/dev/null
echo -e "\n !!! WARNING !!!"
- echo -e "Knot Resolver configuration file was automatically upgraded."
- echo -e "Verify changes manually in %{_sysconfdir}/knot-resolver/kresd.conf\n"
- mv ${UPG_DIR} ${UPG_DIR}.bak
-fi
-%endif
-%if 0%{?suse_version}
-export UPG_DIR=%{_sysconfdir}/knot-resolver/.upgrade-4-to-5
-if [ -d ${UPG_DIR} ] ; then
- echo -e "\n !!! WARNING !!!"
- echo -e "Manual upgrade required, run:\n"
- echo -e "kresd -c %{_libdir}/knot-resolver/upgrade-4-to-5.lua &>/dev/null && mv %{_sysconfdir}/knot-resolver/.upgrade-4-to-5{,.bak}"
- echo -e "\nand verify changes manually in %{_sysconfdir}/knot-resolver/kresd.conf\n"
+ echo -e "Knot Resolver configuration file requires manual upgrade.\n"
+ cat ${UPG_DIR}/kresd.conf.net 2>/dev/null
fi
%endif
local upg_dir = '@etc_dir@/.upgrade-4-to-5'
-local out = '@etc_dir@/kresd.conf'
+local out = upg_dir..'/kresd.conf.net'
local sockets = {
{ file='kresd.socket', kind='dns' },
{ file='kresd-tls.socket', kind='tls' },
os.exit(0) -- make no changes and exit
end
-outfile:write("\n-- START OF AUTOGENERATED BLOCK (upgrade-4-to-5)\n")
-outfile:write("-- This block was automatically created during upgrade\n")
+outfile:write("-- Suggested network interface configuration\n")
outfile:write("-- Please verify these settings match your desired configuration\n")
-outfile:write("-- See https://knot-resolver.readthedocs.io/en/stable/upgrading.html\n")
+outfile:write("-- and add them to @etc_dir@/kresd.conf\n")
+outfile:write("-- See https://knot-resolver.readthedocs.io/en/stable/upgrading.html\n\n")
local function write_net_listen(addr, port, kind)
-- make sure (addr, port) combination is unique
end
end
-outfile:write("-- END OF AUTOGENERATED BLOCK (upgrade-4-to-5)\n")
+outfile:write("\n")
io.close(outfile)
os.exit(0)