Page MenuHomePhabricator

PackageKid doesnt show the count of available updates
Closed, ResolvedPublic

Description

hi,

PackageKid doesn't show the count of available updates. There is always a checkmark.
i'm using fedora 29 and dnf in the packagekid settings.

https://www.enlightenment.org/ss/display.php?image=e-5d4fbd60d7b872.61585820.png

grettings Simon

does it change when you press the refresh button in the popup menu?

yes, the spinning cycle is shown

and then the checkmark again.

could you also please specify your version of enlightenment and efl?

yes then the checkmark again
i am on the latest git version of e 0.23.0 beta and efl

strange, did it ever work for you/on fedora?

because git says the last change in the packagekit module was nearly a year ago (Date: Sun Oct 21 11:05:00 2018 +02000)

no never worked :)
sorry, forgot to tell this

i've been playing around with this a bit and it seems it is caused by the locking mechanism of the package manager.

i am on openSuse and when i simply type in zypper update $PACKAGE it will lock the package database, however it will - and must - keep the lock till it ends. the tool zypper however waits until i have given it a 'y' or 'n' before doing anything. if i never answer it's request, i will get the same result as you do.

so when the checkmark appears afterwards it doesn't matter what i'll do, it will stay that way.

so looks like this bug is some caching issue inside enlightenment.

@DaveMDS could you please have a look into this?

hmm, I think the issue the is quite simple here and caused by the logic of counting available pakages. The code is in e_mod_packagekit.c around line 27
the module is counting available updates based on the type, the code is:

switch (pkg->info)
  {
     case PK_INFO_ENUM_LOW:
     case PK_INFO_ENUM_ENHANCEMENT:
     case PK_INFO_ENUM_NORMAL:
     case PK_INFO_ENUM_BUGFIX:
     case PK_INFO_ENUM_IMPORTANT:
     case PK_INFO_ENUM_SECURITY:
        count++;
        break;
     default:
        break;
  }

I suspect your pkit implementation report an info for the updates that is not listed in the switch, maybe PK_INFO_ENUM_AVAILABLE ?
Can you try adding a print just before the switch to see the pkg->info you get?

i added PK_INFO_ENUM_AVAILABLE to the code.
now packagekid shows the right count.

Great, I committed the fix in commit 1d5202f866e0

Thanks for reporting and testing

DaveMDS closed this task as Resolved.Aug 31 2019, 11:01 PM
DaveMDS claimed this task.

Thanks for fixing :)