Understanding the GNOME Package Updater

Can anyone explain or point me into the right direction to understand when the GNOME Package Updater is getting triggered, by whom, and how often?

As far as I understood, packagekit should be involved here, but there are no cron entries nor systemd timers related to packagekit.
From systemctl status packagekit I see that it is being fired from time to time.

I found old GNOME documentation that talks about configuration options to do a lookup on a daily, weekly, etc basis. No setting is there anymore, though.

OpenSUSE’s GNOME guide states that
“”“When you connect to the Internet, the updater applet automatically checks whether software updates for your system are available.”""
Which isn’t the case on my fresh installation.

Also, openSUSE’s startup guide chapter 10.4 (https://doc.opensuse.org/documentation/leap/startup/html/book-opensuse-startup/cha-yast-software.html#sec-updater) says
“”“Whenever new patches or package updates are available, GNOME shows a notification in the notification area or on the lock screen.”""
Which is strange, as a zypper lp shows me that there are patches available, but no notification on the desktop.

My TW installation looks like it does a daily update check, as packagekit is fired shortly after wake up from suspend, causing that annoying blocking of a zypper dup.

Sorry, I can not answer all of your question, because I do not have PackageKit installed (I use the native openSUSE tools YaST > Software and zypper) and I also do not use Gnome.

But to me it looks as if you have a wrong impression about

zypper lp

The lp here means list-patches. And patches are the patched versions of packages of the standard OSS and non-OSS repos that are published in the Update-OSS and Update-non-OSS repos.

Other, non-official repos, publish their updated packages by puting the new versions in their repos itself. These are known to zypper as “updates”, not as “patches”.

So it can be that there are no patches to be installed for your system in the Update repos, but at the same time there can be updates in other repos (e.g. Packman).

BTW, if you do a

zypper up

then that will install the “updates”, but also the “patches”. But

zypper patch

will install the patches only. (An alternative here is YaST > Software > Online Update).

I only have the default repos enabled, it’s a fresh install.
The interesting part is that zypper tells me that there are updates/patches available, but GNOME stays silent. If I then manually start GNOME Package Updater, I get the same updates/patches displayed.
But when would GNOME tell me about these updates?

I’m not a Gnome user, though I did install it and occasionally give it a try.

My understanding is that when it says there are updates, it is waiting for you to shutdown or reboot your system. And it will update during that shutdown.

It is gnome-software which is autostarted by default in GNOME session. SUSE patches it to launch gpk-update-viewer instead of native gnome-software interface.

… and does not have any way to configure update check frequency. It unconditionally checks for updates on startup and then each hour.

Cool. Getting closer.

If it checks for updates each hour, wouldn’t I then see this from journalctl -u packagekit leaving an entry about once an hour?
And wouldn’t a resume from suspend during night time force a new check for updates, too?

Strange. Had my laptop running for ~24 hours and watched gnome-software’s dconf check-timestamp value (dconf watch /org/gnome/software/check-timestamp).
No change there (its seconds since epoch value reflects Sep 8 08:48:45 CEST 2020).
journalctl -f -u packagekit was also quiet.
My expectation was to see hourly changes.

Packagekit showed first activity this morning (observed via journalctl).

I do not see any signs of hourly lookup for updates or patches (next step: will log network traffic to see if something is going on behind the scenes).

Again, I did a zypper lp and zypper lu and zypper told me that there were updates for kernel and firefox.
Whereas GNOME did not show a notification that updates are available.

Had a look at the source code
There is no hourly update check from gnome-software.
There is however an hourly check which is simply calling check_updates (gs-update-monitor.c) which then confirms the following conditions:

  • last update check was the previous day (or earlier; checked against dconf /org/gnome/software/check-timestamp), and
  • current time is past 6am
    Only in this case an update check will be performed. So basically, it’s once per day that gnome-software is checking for available updates.

The software update notification (“Software Updates Available”) should then pop up (latest 1 hour after updates have been found).
If one of the updates is security related (marked as such in package meta data) and the user was ignoring the update notification for 1 day or more, the message “Security Updates Pending” is getting displayed.