Kde-windows Digest, Vol 30, Issue 30
Ralf Habacker
ralf.habacker at freenet.de
Mon Mar 31 12:20:22 CEST 2008
Jaroslaw Staniek schrieb:
> Ralf Habacker said the following, On 2008-03-29 18:58:
>
>
>>> Do I need to install any Qt related service or add any registry keys
>>> to carry the kde base folder to somewhere else?
>>>
>
>
>> no, we are trying hard to avoid such dependencies. You should run
>> kbuildsycoca4 on the new machine.
>>
>
> Ah Ralf: I've recently read kbuildsycoca.cpp code a bit (again) and there are
> magic stamps like one for language, another for creation time
>
> // Write KDEDIRS
> (*m_str) << KGlobal::dirs()->kfsstnd_prefixes();
> (*m_str) << newTimestamp;
> (*m_str) << KGlobal::locale()->language();
> (*m_str) << KGlobal::dirs()->calcResourceHash("services", "update_ksycoca",
> KStandardDirs::Recursive );
>
> So any idea why kbuildsycoca could not automatically re-run when we move our
> binaries from machine to machine (when e.g. drive letter changes)?
>
let us take first the possible cases (assuming there are computer A and B):
1. installation is moved to computer B the first time -> ksycoca
database is not present -> will be created
2. installation will be moved back to A mounted under the same drive
letter as before -> kbuildsycoca will update database on kded start
3. installation will be replugged in to A mounted under a different
drive letter as before -> kbuildsycoca will only update database on kded
start
4. installation will be moved again to B mounted under the same drive
letter as before -> kbuildsycoca will only update database on kded start
5. installation will be moved back to A and mounted under a different
drive letter as before -> kbuildsycoca will only update database on kded
start
6. installation will be moved again to B mounted under a different drive
letter as before -> kbuildsycoca will only update database on kded start
-> The important question in case 3, 5. and 6. is: Will kbuildsycoca
detect a changed drive letter ?
As far as I can see in the kbuildsycoca code this case isn't catched -
the only cases which are catched are
1. changes in configuration files
2. language changes
3. the presence of a file share/kde4/services/update_ksycoca in the kde
install or home dir
Fortunally in the database there is the result stored of
KGlobal::dirs()->kfsstnd_prefixes() stored which is KDEDIRS.
Appended is a patch which checks if the used home and install
directories has changed and triggers a complete recreated of the
database. Can anyone check this patch ?
Ralf
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: kbuildsycoca-path-change-update.patch
Url: http://mail.kde.org/pipermail/kde-windows/attachments/20080331/d77ce03b/attachment.ksh
More information about the Kde-windows
mailing list