LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (http://www.linuxquestions.org/questions/slackware-14/)
-   -   the zen browser and some weird lib problems (http://www.linuxquestions.org/questions/slackware-14/the-zen-browser-and-some-weird-lib-problems-274956/)

kersten78 01-07-2005 05:51 AM

the zen browser and some weird lib problems
 
Hello everybody.

I've sort of subjected myself to a weird experiment. I'm basically seeing how much I can do without X just for the heck of it. In the process, I've learned alot of cool terminal apps. mp3blaster is a sweet console mp3 player. The watch command is really quite adept at monitoring your system--"watch ps fx" and "watch free" are pretty handy. And top is always a good standby. And irssi is actually better without a window. And when I ran out of tty's, someone suggested using screen--can't believe I ever lived without it. Anyway, it's been a lot of fun, but I found myself longing for something other than text-based browsers.

And that brings me to the point of this thread. I tried installing zen, which is supposed to be a really cool console browser that supports images using the framebuffer. It's totally modular and thus supports a number of different user interfaces. If you install the appropriate lib (oFBis), you can use a ui that renders images in the framebuffer. And it also supports a basic dump interface (eg links) and a gtk interface.

So I compiled the oFBis lib, compiled zen, and ran into problems. Running "zen -h" lists the available interfaces, and it's showing dump, ofbis, gtk, and psdump. But no matter which interface I try to start it with, it returns an error loading the appropriate shared object file. For example, running "zen -i ofbis" throws the following:
Code:

kris@bucksnort:~$ zen -i ofbis
Could not open the user interface library /usr/local/lib/zen/0.2.3/libzen_ui_ofbis.so
Error: /usr/local/lib/zen/0.2.3/libzen_ui_ofbis.so: cannot open shared object file: No such file or directory
kris@bucksnort:~$

So I checked out /usr/local/lib/zen/0.2.3/ and I don't have any *.so files. I have the appropriate *.a and *.la libs for every interface, but somehow I'm missing the *.so files. I've googled every possible thing I can think of relating to this problem to no avail. If anyone has any experience compiling/using zen, please steer me in the right direction. I can't figure this out for the life of me.

Thanks in advance.

__J 01-07-2005 05:57 AM

did it have an option when you configured it to enable shared files (.a and .la are static) such as :

./configure --enable-shared

jmeads 01-07-2005 06:04 AM

I had similar error messages with a new release of dbmail, I had to rename one of the lib from blah.0.0.0 to blah.so.0.0.0 - Don't know if its the same problem but... Can you do a "ldd zen" and post the results here

Cedrik 01-07-2005 06:09 AM

You could build the required libzen_ui_ofbis.so file with :
as root :

cd /usr/local/lib/zen/0.2.3
ld --whole-archive -share -o libzen_ui_ofbis.so libzen_ui_ofbis.a
ldconfig

kersten78 01-07-2005 03:11 PM

I'm still not having any luck. I think I may have screwed something up royally with my libld_elf_i386.so. I tried to update my elfutils to set up prelinking a couple weeks ago, and now when trying to build the shared libs with the above command, I get:
Code:

root@bucksnort:/usr/local/lib/zen/0.2.3# ld --whole-archive -share -o libzen_ui_ofbis.so libzen_ui_ofbis.a                       
ld: cannot load ld backend library 'libld_elf_i386.so': libld_elf_i386.so: cannot open shared object file: No such file or directory
root@bucksnort:/usr/local/lib/zen/0.2.3#

So I found the libld_elf* files for the elfutils that I was trying to install and linked to them, and now the attempt to build the shared libs works but terminates in an error:
Code:

root@bucksnort:/usr/local/lib/zen/0.2.3# ld --whole-archive -share -o libzen_ui_ofbis.so libzen_ui_ofbis.a
ld: ldgeneric.c:1670: add_whole_archive: Assertion `__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p (arhdr->ar_name) && __builtin_constant_p ("/") && (__s1_len = strlen (arhdr->ar_name), __s2_len = strlen ("/"), (!((size_t)(const void *)((arhdr->ar_name) + 1) - (size_t)(const void *)(arhdr->ar_name) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(("/") + 1) - (size_t)(const void *)("/") == 1) || __s2_len >= 4)) ? memcmp ((const char *) (arhdr->ar_name), (const char *) ("/"), (__s1_len < __s2_len ? __s1_len : __s2_len) + 1) : (__builtin_constant_p (arhdr->ar_name) && ((size_t)(const void *)((arhdr->ar_name) + 1) - (size_t)(const void *)(arhdr->ar_name) == 1) && (__s1_len = strlen (arhdr->ar_name), __s1_len < 4) ? (__builtin_constant_p ("/") && ((size_t)(const void *)(("/") + 1) - (size_t)(const void *)("/") == 1) ? (__extension__ ({ register int __result = (((const unsigned char *) (const char *) (arhdr->ar_name))[0] - ((const unsigned char *) (const char *)("/"))[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (arhdr->ar_name))[1] - ((const unsigned char *) (const char *) ("/"))[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) arhdr->ar_name))[2] - ((const unsigned char *) (const char *) ("/"))[2                                    ]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (arhdr->ar_name))[3] - ((const unsigned char *) (const char *) ("/"))[3]); } } __result; })) : (__extension__ ({ const unsigned char *__s2 = (const unsigned char *) (const char *) ("/"); register int __result = (((const unsigned char *) (const char *) (arhdr->ar_name))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (arhdr->ar_name))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (arhdr->ar_name))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (arhdr->ar_name))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ("/") && ((size_t)(const void *)(("/") + 1) - (size_t)(const void *)("/") == 1) && (__s2_len = strlen ("/"), __s2_len < 4) ? (__builtin_constant_p (arhdr->ar_name) &&                                    ((size_t)(const void *)((arhdr->ar_name) + 1) - (size_t)(const void *)(arhdr->ar_name) == 1) ? (__extension__ ({ register int __result = (((const unsigned char *) (const char *) (arhdr->ar_name))[0] - ((const unsigned char *) (const char *)("/"))[0]); if (__s2_len > 0 && __result == 0) { __result = (((const unsigned char *) (const char *) (arhdr->ar_name))[1] - ((const unsigned char *) (const char *) ("/"))[1]); if (__s2_len > 1 && __result == 0) { __result = (((const unsigned char *) (const char *) (arhdr->ar_name))[2] - ((const unsigned char *) (const char *) ("/"))[2]); if (__s2_len > 2 && __result == 0) __result = (((const unsigned char *) (const char *) (arhdr->ar_name))[3] - ((const unsigned char *) (const char *) ("/"))[3]); } } __result; }))                                      : (__extension__ ({ const unsigned char *__s1 = (const unsigned char *) (const char *) (arhdr->ar_name); register int __result = __s1[0] - ((const unsigned char *) (const char *) ("/"))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((const unsigned char *) (const char *) ("/"))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((const unsigned char *) (const char *) ("/"))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((const unsigned char *) (const char *) ("/"))[3]); } } __result; }))) : strcmp (arhdr->ar_name, "/")))); }) != 0' failed.
Aborted

No clue what's happening there. And just to check, I ran ldd zen and it doesn't list any interface libs. And the shared libs are enabled by default in ./configure --help. Clueless. Anyway, here's the output of ldd zen:
Code:

root@bucksnort:/usr/local/lib/zen/0.2.3# ldd `which zen`
        libungif.so.4 => /usr/lib/libungif.so.4 (0xb7fc8000)
        libMagick.so.6 => /usr/lib/libMagick.so.6 (0xb7c74000)
        libdl.so.2 => /lib/libdl.so.2 (0xb7c71000)
        liblcms.so.1 => /usr/lib/liblcms.so.1 (0xb7c45000)
        libtiff.so.3 => /usr/lib/libtiff.so.3 (0xb7bfd000)
        libfreetype.so.6 => /usr/lib/libfreetype.so.6 (0xb7b93000)
        libjpeg.so.62 => /usr/lib/libjpeg.so.62 (0xb7b76000)
        libpng.so.3 => /usr/lib/libpng.so.3 (0xb7b46000)
        libdpstk.so.1 => /usr/X11R6/lib/libdpstk.so.1 (0xb7b3e000)
        libdps.so.1 => /usr/X11R6/lib/libdps.so.1 (0xb7af8000)
        libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0xb7ae9000)
        libXt.so.6 => /usr/X11R6/lib/libXt.so.6 (0xb7a97000)
        libSM.so.6 => /usr/X11R6/lib/libSM.so.6 (0xb7a8e000)
        libICE.so.6 => /usr/X11R6/lib/libICE.so.6 (0xb7a76000)
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0xb79aa000)
        libbz2.so.1 => /lib/libbz2.so.1 (0xb799b000)
        libxml2.so.2 => /usr/lib/libxml2.so.2 (0xb7877000)
        libz.so.1 => /usr/lib/libz.so.1 (0xb7866000)
        libm.so.6 => /lib/libm.so.6 (0xb7844000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xb77f3000)
        libc.so.6 => /lib/libc.so.6 (0xb76c4000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0xb7fec000)

If any of this makes sense to anyone, let me know--cause I'm totally in the dark.

Cerbere 01-08-2005 06:39 AM

This won't help with your lib problems, but the links browser has similar functionality (to be used on the framebuffer). Just start it with the '-g' flag.

I'm not sure if the version that comes with slack has this option (--enable-graphics) compiled in or not.

Enjoy!
--- Cerbere

Cedrik 01-08-2005 07:21 AM

The library problem does not come with zen but with ofbis lib, make sure you read
any readme files in zen package about ofbis to see if you installed the correct ofbis
version.

and try a ./configure --help for the ofbis package too make sure you don't miss any
crucial options


All times are GMT -5. The time now is 03:05 AM.