← Back to team overview

unity-api-bugs team mailing list archive

Re: [Bug 1333215] Re: "Unable to find keyfile for application": Does not look for .desktop files in click pkgdir

 

On Thu, 2014-07-10 at 14:01 +0000, Martin Pitt wrote:

> > and would delay starting up of legacy apps
> 
> How would that be? If there's no symlink in ~/.cache/ the startup
> currently does not work at all. With a fallback to pkgdir it would work,
> just a tad slower (that's why we have the cache). But again, you can't
> rely that all user's ~/.cache/ directories are accessible at the time of
> installing a click (that's the use case that doesn't affect current
> phone so much, but convergence, so is low-prio), but the issue which
> *does* affect the phone is installing a click and trying to start it in
> the current session (as the upstart hook doesn't run then).


The way it works today is that it checks the cache and starts either the
application-click or application-legacy Upstart job which handles the
specifics of each type. It chooses this based on whether there is an
entry in the cache with application-legacy being the fallback. If we add
a step based on the Click DB before we get to that fallback it will be
delayed.

We don't rely on the Upstart hook, we rely on a Click hook. The Click
hook runs in two places, when the package is installed or when the
session is started. So if the cache is not available when the Click is
installed then it is run when the session is started. If the user
session is open (for instance on the phone) the Click hook is run
immediately on install and the cache is up-to-date.

-- 
You received this bug notification because you are a member of Unity API
bugs, which is subscribed to Ubuntu Application Launcher.
https://bugs.launchpad.net/bugs/1333215

Title:
  "Unable to find keyfile for application": Does not look for .desktop
  files in click pkgdir

Status in Ubuntu Application Launcher:
  Incomplete
Status in “click” package in Ubuntu:
  New
Status in “ubuntu-app-launch” package in Ubuntu:
  Incomplete

Bug description:
  For testing/autopkgtest I want/need to run click apps and their tests
  in a schroot or container, as the turnaround with real phones and the
  emulator is way too large. But in a container, ubuntu-app-launch fails
  with

  $ ubuntu-app-launch `ubuntu-app-triplet com.ubuntu.calculator`

  ** (process:766): WARNING **: Unable to find keyfile for application 'com.ubuntu.calculator_calculator_1.3.283'
  init: application-legacy (com.ubuntu.calculator_calculator_1.3.283-1403523098604203) pre-start process (770) terminated with status 1

  In strace I see that it looks for the .desktop file in the following
  locations:

    /home/ubuntu/.cache/ubuntu-app-launch/desktop/com.ubuntu.calculator_calculator_1.3.283.desktop
    /home/ubuntu/.local/share/applications/com.ubuntu.calculator_calculator_1.3.283.desktop
    /usr/local/share/applications/com.ubuntu.calculator_calculator_1.3.283.desktop
    /usr/share/applications/com.ubuntu.calculator_calculator_1.3.283.desktop

  but not in the click dir:

  $ click pkgdir com.ubuntu.calculator
  /opt/click.ubuntu.com/.click/users/@all/com.ubuntu.calculator

  The workaround is to create the symlink manually, then it works:

  $  ln -s `click pkgdir com.ubuntu.calculator`/*.desktop .cache/ubuntu-app-launch/desktop/`ubuntu-app-triplet com.ubuntu.calculator`.desktop
  $ ubuntu-app-launch `ubuntu-app-triplet com.ubuntu.calculator`

  But that's certainly not something that autopkgtest should do.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu-app-launch/+bug/1333215/+subscriptions


Follow ups

References