Registered Member
|
Hi All
I have an old KDE3.3 installed on my machine. Now I want to install a new KDE3.5(Not upgrade the old one) to use its KPDF 0.5. I was able to build the new KDE successfully and installed it under /opt/kde. My problem is when I execute /opt/kde/bin/kpdf (0.5), it will automatically look for /usr/lib/kde3/libkpdfpart.la (provided by KDE3.3) rather than /opt/kde/lib/kde3/libkpdfpart.la. The consequence is that the ui of KPDF0.5 is in old KPDF 0.3 style. My workaournd is to copy libkpdfpart.so and libkpdfpart.la into /.kde/lib/kde3. But it is not wise since if anyone wants to use it, he/she has to do this redundant job. Is any way to solve this? Or did I miss any parameter in terms of building KDE3.5? |
Administrator
|
You probably need to add the following global environment variable if not already present:
KDE Sysadmin
[img]content/bcooksley_sig.png[/img] |
Registered Member
|
HI Bcooksly
Actually, I have tried "export LD_LIBRARY_PATH=/opt/kde/lib/kde3", but it does not look. From the strace output, my kpdf still prefers the default location to open libkpdfpart.la. I think this is because /usr/lib/kde3 is prior than /opt/kde/lib/kde3 in certain library list. ============================================================== munmap(0xb7d96000, 32768) = 0 lstat64("/users", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0 lstat64("/users/yueche", {st_mode=S_IFDIR|0700, st_size=32768, ...}) = 0 lstat64("/users/yueche/.kde", {st_mode=S_IFDIR|0700, st_size=4096, ...}) = 0 lstat64("/users/yueche/.kde/lib", 0xbfe893ac) = -1 ENOENT (No such file or directory) lstat64("/usr", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/usr/lib", {st_mode=S_IFDIR|0755, st_size=77824, ...}) = 0 lstat64("/usr/lib/kde3", {st_mode=S_IFDIR|0755, st_size=49152, ...}) = 0 access("/usr/lib/kde3", F_OK) = 0 lstat64("/usr/lib/kde3", {st_mode=S_IFDIR|0755, st_size=49152, ...}) = 0 lstat64("/opt", {st_mode=S_IFDIR|0777, st_size=4096, ...}) = 0 lstat64("/opt/kde", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0 lstat64("/opt/kde/lib", {st_mode=S_IFDIR|0755, st_size=16384, ...}) = 0 lstat64("/opt/kde/lib/kde3", {st_mode=S_IFDIR|0755, st_size=20480, ...}) = 0 access("/opt/kde/lib/kde3", F_OK) = 0 lstat64("/opt/kde/lib/kde3", {st_mode=S_IFDIR|0755, st_size=20480, ...}) = 0 access("/users/yueche/.kde/lib/kde3/libkpdfpart.la", R_OK) = -1 ENOENT (No such file or directory) access("/usr/lib/kde3/libkpdfpart.la", R_OK) = 0 stat64("/usr/lib/kde3/libkpdfpart.la", {st_mode=S_IFREG|0755, st_size=1217, ...}) = 0 open("/usr/lib/kde3/libkpdfpart.la", O_RDONLY) = 9 fstat64(9, {st_mode=S_IFREG|0755, st_size=1217, ...}) = 0 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7d9d000 read(9, "# libkpdfpart.la - a libtool lib"..., 4096) = 1217 ...... |
Administrator
|
Can you post the output of "ldd kpdf" both before and after setting LD_LIBRARY_PATH?
LD_LIBRARY_PATH should be set to $KDEDIR/lib ( where KDEDIR is /opt/kde for you ) Also, if you haven't set $PATH to include $KDEDIR/bin/ please do.
KDE Sysadmin
[img]content/bcooksley_sig.png[/img] |
Registered Member
|
Hi bcooksly Here is the output. You see the output does not change before/after setting LD_LIBRARY_PATH and does not contains libkpdfpart.so. After reading the code, I found libkpdfpart.so should be loaded through code as following.
I will dig deeper into KLibLoader class to figure out how its load order works and update this thread.
Last edited by yueche on Fri May 15, 2009 10:07 am, edited 1 time in total.
|
Administrator
|
Have you set the environment variable $KDEDIR to point to /opt/kde/?
KDE Sysadmin
[img]content/bcooksley_sig.png[/img] |
Registered Member
|
Hi bcooksley
It works after setting $KDEDIR according to your advice. Thank you for the support. |
Registered users: bartoloni, Bing [Bot], Evergrowing, Google [Bot], q.ignora, watchstar