]> git.ipfire.org Git - thirdparty/knot-resolver.git/commitdiff
distro/*: run upgrade-4-to-5 scripts for rpm/deb packages
authorTomas Krizek <tomas.krizek@nic.cz>
Fri, 22 Nov 2019 09:46:29 +0000 (10:46 +0100)
committerTomas Krizek <tomas.krizek@nic.cz>
Fri, 24 Jan 2020 12:19:04 +0000 (13:19 +0100)
distro/deb/knot-resolver.postinst
distro/deb/knot-resolver.preinst [new file with mode: 0644]
distro/rpm/knot-resolver.spec

index 8f89ac2693e84b2707de4d4701cd770a696c891f..675c06590186067b83ff9989f8fd0e93617d5979 100644 (file)
@@ -1,6 +1,16 @@
 #!/bin/sh
 set -e
 
+# upgrade-4-to-5
+export UPG_DIR=/etc/knot-resolver/.upgrade-4-to-5
+if [ -d ${UPG_DIR} ] ; then
+       kresd -c /usr/lib/knot-resolver/upgrade-4-to-5.lua >/dev/null 2>/dev/null
+       echo -e "   !!! WARNING !!!\n"
+       echo -e "Knot Resolver configuration file was automatically upgraded.\n"
+       echo -e "Verify changes manually in /etc/knot-resolver/kresd.conf\n"
+       mv ${UPG_DIR} ${UPG_DIR}.bak
+fi
+
 if [ "$1" = "configure" ]; then
     adduser --quiet --system --group --no-create-home --home /var/cache/knot-resolver knot-resolver
 fi
diff --git a/distro/deb/knot-resolver.preinst b/distro/deb/knot-resolver.preinst
new file mode 100644 (file)
index 0000000..c60b5e8
--- /dev/null
@@ -0,0 +1,24 @@
+#!/bin/sh
+set -e
+
+# upgrade-4-to-5
+if [ -f /lib/systemd/system/kresd.socket ] ; then
+       export UPG_DIR=/etc/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
index d2fefbb374bb4db878d9bdf91019c5a0d18d4028..979990da32d692e70de4e09be898059caeb3c41e 100644 (file)
@@ -203,7 +203,40 @@ mv %{buildroot}/%{_datadir}/doc/%{name}/* %{buildroot}/%{_pkgdocdir}/
 getent group knot-resolver >/dev/null || groupadd -r knot-resolver
 getent passwd knot-resolver >/dev/null || useradd -r -g knot-resolver -d %{_sysconfdir}/knot-resolver -s /sbin/nologin -c "Knot Resolver" knot-resolver
 
+# upgrade-4-to-5
+if [ -f %{_unitdir}/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-4-to-5
+export UPG_DIR=%{_sysconfdir}/knot-resolver/.upgrade-4-to-5
+if [ -d ${UPG_DIR} ] ; then
+       kresd -c %{_libdir}/knot-resolver/upgrade-4-to-5.lua
+       echo -e "   !!! WARNING !!!\n"
+       echo -e "Knot Resolver configuration file was automatically upgraded.\n"
+       echo -e "Verify changes manually in %{_sysconfdir}/knot-resolver/kresd.conf\n"
+       mv ${UPG_DIR} ${UPG_DIR}.bak
+fi
+
 # in case service files are updated
 systemctl daemon-reload &>/dev/null ||:
 %systemd_post 'kresd@*.service'