On Saturday 09 January 2016 15:01:19 Steve M. Robbins wrote:
> 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
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.