Skip to content

click-service: If removing pre-installed app, the new version won't be installable

It's a side-effect of !26 (merged), where it tries to remove an app from both @all and user-specific DBs. As when trying to remove an app which is installed in a read-only DB, click will make a symlink called @hidden in ${DB}/.click/[@all or user]/[app name]. And since we remove in both user DBs, it means that @hidden symlink will be created in that user's DB, trumping any attempt to install that app again in @all DB.

I'm not sure now what behavior click-service is supposed to have now. Maybe it'll have to actually link to libclick to see if an app actually exists in any DB at all. I think we can't rely on whether click remove invocation succeed; If I'm not sure if the second click unregister --all-user will succeed or fail, and if it fails, click unregister --user=phablet will still run, leading to the same failure mode.

As discovered by @Danfro on Telegram: https://t.me/ubports_devel/70917

Edited by Ratchanan Srirattanamet