On Saturday 09 January 2016 15:01:19 Steve M. Robbins wrote:
> Hi,
> I recently picked up maintenance of digikam and haven't finished ramping up
> on KDE internals...
> I received the following bug report.  I haven't noticed this problem myself,
> so it makes me wonder:
> 1. When, typically, is kbuildsyscoca run?  The man page and google were
> unhelpful so far.

This problem is in general only seen when using KDE's complex applications 
outside plasma 4.

in the 4 series:

In general, it is run by kded as needed, including on kded startup if needed. 
(there is both some timestamp checking on kded startup, as well as kded is 
having a file system watcher on the relevant directories)

I think digikam run outside a KDE Plasma environment will start kded that 
should trigger a rebuild of sycoca, but digikam might try to access sycoca 
before it has been recreated (and thus can't find what it wants)

in the KF5 series
The applications rebuilds sycoca as needed with a bit of magic to ensure that 
it is not run too much, including filesystem watchers and timestamp checking 
and small delays and file locking and ...

But much of sycoca has been actually removed in the 5 series due to various 
other changes.

I don't think there is much to do to actually change this from a packaging 
perspective, especially not since everything should be much nicer in the KF5 
based world that is coming up with a better daemon control, more 
modularization and less magic of that kind.

(we iirc have a couple of similar bug reports open against other packages - 
another workaround is to just start the application once more)

> 2. Is it true that "other Debian KDE packages" run kbuildsyscocoa4 --
> noincremental on installation?

No. Sycoca (system configuration cache) lives in user directories, so having 
maintscripts do that would not really work.

Oh. and sycoca is btw, a binary cache of desktop files in the system and 
relevant user directories, as well as various configuration file locations to 
ensure every application doesn't need to browse thru hundreds of desktop files 
across multiple locations to find e.g. the plugins it is looking for.

Hope this helps, and I'm happy to expand on any of the points.


I didn’t stop pretending when I became an adult, it’s just that when I was a 
kid I was pretending that I fit into the rules and structures of this world. 
And now that I’m an adult, I pretend that those rules and structures exist.
   - zefrank


Reply via email to