Updater lost configs in /etc/updater

I updated from 3.7.4 to 3.8.4. Configs in /etc/updater got lost, so on the next update after that, it tried to install everything I marked for uninstallation and vice versa.

auto.lua, before the update:

Install "pciutils"
Install "bash"
Install "openssh-server"
Install "luci-app-openvpn"
Install "luci-theme-openwrt"
Install "collectd-mod-wireless"
Install "collectd-mod-cpu"
Install "collectd-mod-df"
Install "collectd-mod-disk"
Install "collectd-mod-memory"
Install "collectd-mod-rrdtool"
Install "rrdtool1"
Install "fdisk"
Install "lm-sensors"
Install "collectd-mod-thermal"
Install "collectd-mod-conntrack"
Install "iperf"
Install "iperf3"
Install "htop"
Install "ip"
Install "collectd-mod-ping"
Install "strace"
Install "iftop"
Install "ethtool"
Install "6in4"
Install "updater-ng"
Install "coreutils"
Install "tc"
Install "wavemon"
Install "screen"
Install "haveged"
Install "collectd-mod-netlink"
Install "dnsmasq-full"
Package "https-cert" { content = "file:///usr/share/updater/local-pkgs/https-cert.ipk" }
Install "https-cert"
Package "ca-certificates" { content = "file:///usr/share/updater/local-pkgs/ca-certificates.ipk" }
Install "ca-certificates"

user.lua, before the update:

A place for user definitions.

Repository "name" "URI" { ca = "file:///etc/ssl/ca.pem", pubkey = "file:///etc/repo.pubkey" }
Install "pkgname" "other"
]]
Uninstall "knot-libdnssec" {priority = 60}
Uninstall "knot-libzscanner" {priority = 60}
Uninstall "knot-libknot" {priority = 60}
Uninstall "knot-resolver" {priority = 60}
Uninstall "unbound" {priority = 60}
Uninstall "unbound-anchor" {priority = 60}
Uninstall "tinyproxy" {priority = 60}

Package "dnsmasq" {content="file:///etc/updater/dnsmasq.ipk"}

Install "dnsmasq-full" {critical=True}
Install "ntpd" {priority = 60}

I’m not sure if these workarounds are still required or not.

After the update, user.lua and auto.lua were both reverted to default.

Are there any log files, etc, that I can provide?

Semi-OT: I can’t be the only one who’s a little upset that they added a “resolver” package that lets you pick which resolver you want to use…only between kresd and unbound, not dnsmasq. Still no official option to just choose dnsmasq-full as your resolver. There’d probably be less updater woes if people didn’t have to use workarounds to get dnsmasq to stick.

I would also pretty much appreciated file /usr/share/updater. Also please answer question about Turris OS versions. From which version you were updating? I really need this because that gives me updater’s versions.
Now some notes to you configuration.

You don’t need https-cert package. This package was just renamed to lighttpd-https-cert nothing else was changed.

From version 3.8 you no longer have to list all knot packages. Just knot-resolver should be enough. Also unbound was dropped from base installation with Turris OS 3.8.

You no longer need fake dnsmasq package. There are now conflict dependencies in place that solves that. Just installing dnsmasq-full should be enough. It doesn’t have to be even critical now as because package dns-resolver is now requested critically and dnsmasq-full provides it so it’s automatically handled as critically requested (not talking about package dhcp-server).

Also what do you mean about resolver package not being handled for dnsmasq the same way as for knot? It’s handled correctly. You can have dnsmasq-full or kresd or unbound. No matter what you choose. See:

Package: dnsmasq-full
Version: 2.78-1
Depends: libc, libnettle, kmod-ipt-ipset
Conflicts: dnsmasq, dnsmasq-dhcpv6
Provides: dhcp-server dhcpv6-server dns-resolver
Source: package/network/services/dnsmasq
License: GPL-2.0
LicenseFiles: COPYING
Section: net
Architecture: mvebu
Installed-Size: 156625
Filename: dnsmasq-full_2.78-1_mvebu.ipk
Size: 157704
MD5Sum: 5855fd78b8668af1f368c6790ea72860
SHA256sum: c0693b4a324fad37ae9a0df7e7413e2e4e6749144bbce84db6ce99322693f1e3
Description:  It is intended to provide coupled DNS and DHCP service to a LAN.

 This is a fully configurable variant with DHCPv6, DNSSEC, Authroitative DNS and
 IPset support enabled by default.

Package: knot-resolver
Version: 1.3.3-4
Depends: knot-libs (>= 2.5.0), knot-libs (< 2.6.0), libc, knot-libs, knot-libzscanner, libuv, luajit, dnssec-rootkey, resolver-conf, luasec, luasocket
Provides: dns-resolver
Source: feeds/turrispackages/net/knot-resolver
License: GPL-3.0
Section: net
Maintainer: Knot DNS <knot-dns@labs.nic.cz>
Architecture: mvebu
Installed-Size: 484157
Filename: knot-resolver_1.3.3-4_mvebu.ipk
Size: 485909
MD5Sum: 7d2cdb3f73cdbc95dea76317b1388e97
SHA256sum: 2a6f3d942eee621d98df4dc10a04fe1136bf450bd3a7ea059c3564f0d4fea629
Description:  The Knot DNS Resolver is a minimalistic caching resolver implementation.

I’m talking about the resolver-conf package. It seems to have some important things depending on it (via libunbound), so I can’t remove it.

I updated from 3.7.4 to 3.8.4.

/usr/share/updater seems to be a directory. Did you want updater-log?

Fist to updater. If you were updating from 3.7.4 then it’s clear. We released version 3.7.5 some time ago and it contained new version of updater with following patch (I just forgot about it): https://gitlab.labs.nic.cz/turris/updater/commit/475d115b64b2c22700ee61c390cce30d2e3e2352

Next, sorry I meant to add that I wanted that log file but now it doesn’t matter now. I don’t have to see it now to know what happened.

Ok I checked dependencies of resolver-conf package and they are wrong. I reported it to my colleague and it should be fixed in some future release (probably 3.9). It creates invalid dependencies. libunbound shouldn’t be depending on resolver-conf it was just a hack.