dnf: clear updates-available flag when dnf update yields no updates

Fixes QubesOS/qubes-issues#2009
This commit is contained in:
Marek Marczykowski-Górecki 2019-08-03 03:39:10 +02:00
parent 69965213da
commit 40652b700b
No known key found for this signature in database
GPG Key ID: 063938BA42CFA724

View File

@ -36,6 +36,22 @@ class QubesHooks(dnf.Plugin):
self.base = base
self.log = logging.getLogger('dnf')
def resolved(self):
# in case of no action to do, transaction() hook won't be called;
# report updates availability here - especially when everything is up
# to date - to clear updates-available flag
if not self.base.transaction:
query = self.base.sack.query()
query = query.upgrades()
updates = set(query.run())
subprocess.call([
'/usr/lib/qubes/qrexec-client-vm',
'dom0',
'qubes.NotifyUpdates',
'/bin/echo',
str(len(updates))
])
def transaction(self):
if LooseVersion(dnf.const.VERSION) < '2.0.0':
config = self.read_config(self.base.conf, PLUGIN_CONF)