Comment 17 for bug 1817559

Revision history for this message
Ivan Zorin (iaz) wrote : Re: update-notifier ignores update-manager's settings

The trick with setting zero or negative number for interval_days won't be working since it will be meaning to trigger updater right away (see the attached screenshot with the related setting) - here is the related code (it's still the same in 18.10/Cosmic):

https://git.launchpad.net/ubuntu/+source/update-notifier/tree/src/update.c?h=ubuntu/cosmic#n510

// check if the auto launch interval is over and its
// time to launch again and if the dpkg lock is currently
// not taken
static gboolean
auto_launch_now (TrayApplet *ta)
{
...
   if (interval_days <= 0)
      return TRUE;
...
}

Setting the large number for interval_days won't be working all the time either because there is "bypass" for security updates:

   if (auto_launch_security_now(priv, now, last_launch))
      return TRUE;

There is another one setting for update-notifier through gsettings/dconf ( see the previous screenshot here - https://launchpadlibrarian.net/413216259/software_updater_notifier_notifications.png ): no-show-notifications/SETTINGS_KEY_NO_UPDATE_NOTIFICATIONS (which has nothing to do with notifications about updates, I got it). But, as far as I understand, according even to current source code, it doesn't do much since:
- it is checked in the last turn when main routine (related to check/show info about updates) will be completed already
- even if it will be set as true, the related function will return TRUE (not FALSE) anyway via pass-thru further execution

https://git.launchpad.net/ubuntu/+source/update-notifier/tree/src/update.c?h=ubuntu/cosmic#n654

gboolean
update_check (TrayApplet *ta)
{
...
   // the user does not no notification messages
   if(g_settings_get_boolean(ta->un->settings,
                             SETTINGS_KEY_NO_UPDATE_NOTIFICATIONS))
      return TRUE;
...
   ...
   return TRUE;
}

// yes, the user does not no notification messages, exactly, but seems that the code doesn't care about it too much :)

Once again, I may be wrong (should double check the routines behind g_settings_*), but if it's the reason for calling `update-manager' and if g_settings_get_boolean(ta->un->settings,SETTINGS_KEY_NO_UPDATE_NOTIFICATIONS) returns TRUE when SETTINGS_KEY_NO_UPDATE_NOTIFICATIONS is set then there should be FALSE on return. Something like that:

   if(g_settings_get_boolean(ta->un->settings,
                             SETTINGS_KEY_NO_UPDATE_NOTIFICATIONS))
      return FALSE;

And the check itself should be much early inside of `gboolean update_check (TrayApplet *ta)', before any other checks. In case if it's really the right direction for the issue.