ślady po buildrze w qt i inne rzeczy związane z kde (włos na głowie się jerzy)
Tomasz Kłoczko
kloczek w rudy.mif.pg.gda.pl
Pią, 11 Paź 2002, 22:14:02 CEST
Tak mna próbę próbuję patrzeć co wyrabiają aplikacje KDE i szczerze mówiac
szczena opada :- ]
Możliwie wszedzie trzeba pousuuwać linkowanie z -rpath bo to tylko
niepotzrebnie wydłuża start aplikacji .. to primo.
Dalej .. wyjściu z "strace -e trace=file kword" znalazłem cos takiego:
open("/home/users/builder/rpm/BUILD/qt-x11-free-3.0.5/lib/i686/mmx/libGL.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/home/users/builder/rpm/BUILD/qt-x11-free-3.0.5/lib/i686/mmx", 0xbfffe2f4) = -1 ENOENT (No such file or directory)
open("/home/users/builder/rpm/BUILD/qt-x11-free-3.0.5/lib/i686/libGL.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/home/users/builder/rpm/BUILD/qt-x11-free-3.0.5/lib/i686", 0xbfffe2f4) = -1 ENOENT (No such file or directory)
open("/home/users/builder/rpm/BUILD/qt-x11-free-3.0.5/lib/mmx/libGL.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/home/users/builder/rpm/BUILD/qt-x11-free-3.0.5/lib/mmx", 0xbfffe2f4) = -1 ENOENT (No such file or directory)
open("/home/users/builder/rpm/BUILD/qt-x11-free-3.0.5/lib/libGL.so.1", O_RDONLY) = -1 ENOENT (No such file or directory)
stat("/home/users/builder/rpm/BUILD/qt-x11-free-3.0.5/lib", 0xbfffe2f4) = -1 ENOENT (No such file or directory)
mówiąc inaczje .. gdyby pal^Wludzie z TrollTecha używali libtoola to nie
byłoby takich kwiatków :>
Mówiąc inczej jeszcze jeden ślad używania -rpath i przyjamniej to wartoby
wydłubać.
Dalej ..
lstat("/usr/X11R6/share/locale", {st_mode=S_IFDIR|0755, st_size=2048, ...}) = 0
access("/home/users/kloczek/.kde/share/locale/C/LC_MESSAGES/kword.mo", R_OK) = -1 ENOENT (No such file or directory)
access("/usr/X11R6/share/locale/C/LC_MESSAGES/kword.mo", R_OK) = -1 ENOENT (No such file or directory)
access("/home/users/kloczek/.kde/share/locale/pl_PL/LC_MESSAGES/kword.mo", R_OK) = -1 ENOENT (No such file or directory)
access("/usr/X11R6/share/locale/pl_PL/LC_MESSAGES/kword.mo", R_OK) = -1 ENOENT (No such file or directory)
access("/home/users/kloczek/.kde/share/locale/en_US/LC_MESSAGES/kword.mo", R_OK) = -1 ENOENT (No such file or directory)
access("/usr/X11R6/share/locale/en_US/LC_MESSAGES/kword.mo", R_OK) = -1 ENOENT (No such file or directory)
access("/home/users/kloczek/.kde/share/locale/en_US/LC_MESSAGES/kdelibs.mo", R_OK) = -1 ENOENT (No such file or directory)
access("/usr/X11R6/share/locale/en_US/LC_MESSAGES/kdelibs.mo", R_OK) = -1 ENOENT (No such file or directory)
stat("/home/users/kloczek/.kde/share/config/kwordrc", {st_mode=S_IFREG|0600, st_size=1108, ...}) = 0
stat("/usr/X11R6/share/config/kwordrc", 0xbffff110) = -1 ENOENT (No such file or directory)
open("/home/users/kloczek/.kde/share/config/kwordrc", O_RDONLY) = 13
access("/home/users/kloczek/.kde/share/locale/C/LC_MESSAGES/kword.mo", R_OK) = -1 ENOENT (No such file or directory)
access("/usr/X11R6/share/locale/C/LC_MESSAGES/kword.mo", R_OK) = -1 ENOENT (No such file or directory)
access("/home/users/kloczek/.kde/share/locale/pl_PL/LC_MESSAGES/kword.mo", R_OK) = -1 ENOENT (No such file or directory)
access("/usr/X11R6/share/locale/pl_PL/LC_MESSAGES/kword.mo", R_OK) = -1 ENOENT (No such file or directory)
access("/home/users/kloczek/.kde/share/locale/en_US/LC_MESSAGES/kword.mo", R_OK) = -1 ENOENT (No such file or directory)
access("/usr/X11R6/share/locale/en_US/LC_MESSAGES/kword.mo", R_OK) = -1 ENOENT (No such file or directory)
access("/home/users/kloczek/.kde/share/locale/en_US/LC_MESSAGES/kdelibs.mo", R_OK) = -1 ENOENT (No such file or directory)
access("/usr/X11R6/share/locale/en_US/LC_MESSAGES/kdelibs.mo", R_OK) = -1 ENOENT (No such file or directory)
Oczywiście ..
$ ls -l /usr/X11R6/share/locale/pl/LC_MESSAGES/kword.mo
-rw-r--r-- 1 root root 31059 09-07 18:44 /usr/X11R6/share/locale/pl/LC_MESSAGES/kword.mo
Wygląda to na jakiś kolejny palantyzm związany zapewne z nieużywaniem
wsparcia do gettext z glibc :> .. co oczywiście skutkuje tym, że mając
poprawnie ustawione LOCALE oczywiście wszelkie aplikacje mam bez polskich
tłumaczeń. A już po kiego grzyba pliki są szukane najpierw w
~/.kde/share/locale to juz wogóle nie mam pojęcia .. zapewne dlatego, że
jakiś kolejny developer-palant nie miał pojęcia o tym do czego służy zmienna
środowiska $NLS_PATH :>
Nie wspomnę już o tym że spokojnie od razu możnaby robić zamiast
wuykonywać access() -> open() możnaby poprostu po bożemy open() (tak jak
to robi wsparcie glinbcowe do NSL).
Bardzo ciekawe jest także to, że dowolna aplikacja kde próbuje zrobić
lstat() po wszystkim co znajdzie w %{_pixmapsdir} co też zajmuje parę do
parunastu sekund. Zaraz po tym wykonywane jest jeszcze:
access("/usr/X11R6/share/pixmaps/anjuta/index.desktop", R_OK) = -1 ENOENT (No such file or directory)
access("/usr/X11R6/share/pixmaps/br/index.desktop", R_OK) = -1 ENOENT (No such file or directory)
access("/usr/X11R6/share/pixmaps/cards/index.desktop", R_OK) = -1 ENOENT (No such file or directory)
access("/usr/X11R6/share/pixmaps/cs/index.desktop", R_OK) = -1 ENOENT (No such file or directory)
access("/usr/X11R6/share/pixmaps/da/index.desktop", R_OK) = -1 ENOENT (No such file or directory)
access("/usr/X11R6/share/pixmaps/de/index.desktop", R_OK) = -1 ENOENT (No such file or directory)
[..]
czyli próba szukania index.desktop w każdym podkatalogu %{_pixmapsdir}
(znowu: po kiego grzyba ?)
Kwiatków jest więcej ale nie maja one już zapewne tak dużego (na oko)
udziału w czasie uruchamiania aplikacji. Zapewne poprawienie powyższego
dałoby tak z dwukrotne przyśpiesznie uruchamiania i okazałoby się, że cała
zabawa z prelinking nie jest w sumie potrzebna.
Np. jest tu też coś taiego:
access("/bin/kdeinit", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/bin/kdeinit", F_OK) = -1 ENOENT (No such file or directory)
access("/usr/bin/X11/kdeinit", F_OK) = 0 access("/usr/bin/X11/kdeinit", X_OK) = 0
lstat("/usr/bin/X11/kdeinit", {st_mode=S_IFREG|0755, st_size=37372, ...}) = 0
jakby na postawie prefixu instalacji nie można było od razu sięgnąć
najpierw do /usr/X11R6/bin/kdeinit a potem ewentualnie pod resztę ścieżek.
kloczek
--
-----------------------------------------------------------
*Ludzie nie mają problemów, tylko sobie sami je stwarzają*
-----------------------------------------------------------
Tomasz Kłoczko, sys adm @zie.pg.gda.pl|*e-mail: kloczek w rudy.mif.pg.gda.pl*
Więcej informacji o liście dyskusyjnej pld-devel-pl