LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (http://www.linuxquestions.org/questions/slackware-14/)
-   -   libxslt in -current broken? (http://www.linuxquestions.org/questions/slackware-14/libxslt-in-current-broken-457203/)

Slim Backwater 06-22-2006 05:48 AM

libxslt in -current broken?
 
I use bashpodder to catch my podcasts and it uses xsltproc to parse out the enclosures. After upgrading to libxslt-1.1.17-i486-1 from -current, bashpodder broke.

Removing the redirect to null, this is the error I'm seeing:

Code:

xsltproc: symbol lookup error: /usr/lib/libxslt.so.1: undefined symbol: xmlXPathContextSetCache
downgrading to 10.2's libxslt-1.1.15-i486-1 got it working again.

the actual command bashpodder is running is:

Code:

wget -T 300 -t 2 -q $podcast -O - | xsltproc parse_enclosure.xsl -
where $podcast is the url of the feed. parse_enclosure.xsl comes with bashpodder.

The -current ChangeLog shows it was upgraded to 1.1.16 on May 22nd and to 1.1.17 on June 19th.

I don't know the right way to report this to Patrick/ Slackware Maintainers so I'd appreciate it if someone could confirm and report it, and maybe let me know how you did it.

Thanks.

dunric 06-22-2006 06:50 AM

Undefined symbol messages otfen signalize improper version of library to running app, where some function was redefined or dropped.
I would suggest to check xslt version requirements for bashpodder and eventually rebuild it with the version from Slackware-current.

dunric 06-22-2006 06:57 AM

I would add many KDE applications are linked with xslt library and all are running correctly (Kopete, Quanta). It doesn't look like xslt 1.1.17 from Current is broken.

willysr 06-22-2006 07:58 PM

have you run ldconfig? i think it's because you haven't update the libraries, so it has that kind of error messages

Ilgar 06-23-2006 01:23 AM

Here's the xslt changelog:
http://xmlsoft.org/XSLT/news.html

The last entry for 1.1.17 could be relevant. Did you upgrade your libxml2 also (the one in current is 2.6.26)?

Slim Backwater 06-23-2006 08:04 AM

Nearly solved...
 
I think my libraries are messed up, finding libraries in the OpenOffice.org installation before the system ones. This is how I determined that:

Bashpodder is just a shell script that runs a wget piped through xsltproc to extract the enclosures.

Now with libxslt-1.1.15 installed:

Code:

$ cat parse_enclosure.xsl
<?xml version="1.0"?>
<stylesheet version="1.0"
        xmlns="http://www.w3.org/1999/XSL/Transform">
        <output method="text"/>
        <template match="/">
                <apply-templates select="/rss/channel/item/enclosure"/>
        </template>
        <template match="enclosure">
                <value-of select="@url"/><text>
</text>
        </template>
</stylesheet>
$ wget -T 300 -t 2 -q http://www.cnet.com/i/pod/cnet_buzz.xml -O - | xsltproc parse_enclosure.xsl -

That worked. I then upgraded to libxslt-1.1.17-i486-1.tgz

Code:

$ wget -T 300 -t 2 -q http://www.cnet.com/i/pod/cnet_buzz.xml -O - | xsltproc parse_enclosure.xsl -
xsltproc: symbol lookup error: /usr/lib/libxslt.so.1: undefined symbol: xmlXPathContextSetCache
$ sudo ldconfig
$ wget -T 300 -t 2 -q http://www.cnet.com/i/pod/cnet_buzz.xml -O - | xsltproc parse_enclosure.xsl -
xsltproc: symbol lookup error: /usr/lib/libxslt.so.1: undefined symbol: xmlXPathContextSetCache

The following is the good stuff

Code:

$ which xsltproc
/usr/bin/xsltproc
$ ldd `which xsltproc`
        linux-gate.so.1 =>  (0xffffe000)
        libxslt.so.1 => /usr/lib/libxslt.so.1 (0xb7ea5000)
        libexslt.so.0 => /usr/lib/libexslt.so.0 (0xb7e95000)
        libxml2.so.2 => /opt/openoffice-1.9.79/program/libxml2.so.2 (0xb7d8e000)
        libdl.so.2 => /lib/tls/libdl.so.2 (0xb7d8a000)
        libz.so.1 => /usr/lib/libz.so.1 (0xb7d78000)
        libm.so.6 => /lib/tls/libm.so.6 (0xb7d55000)
        libc.so.6 => /lib/tls/libc.so.6 (0xb7c25000)
        libpthread.so.0 => /lib/tls/libpthread.so.0 (0xb7c13000)
        libgcc_s.so.1 => /opt/openoffice-1.9.79/program/libgcc_s.so.1 (0xb7c0b000)
        /lib/ld-linux.so.2 (0xb7f06000)

$ slocate libxml2.so.2
/opt/openoffice-1.9.79/program/libxml2.so.2.6.17
/opt/openoffice-1.9.79/program/libxml2.so.2
/opt/openoffice.org2.0/program/libxml2.so.2.6.17.1
/opt/openoffice.org2.0/program/libxml2.so.2.6.17
/opt/openoffice.org2.0/program/libxml2.so.2
/usr/lib/libxml2.so.2
# slocate libgcc_s.so.1
/lib/libgcc_s.so.1
/opt/openoffice-1.9.79/program/libgcc_s.so.1
/opt/openoffice.org2.0/program/libgcc_s.so.1.1
/opt/openoffice.org2.0/program/libgcc_s.so.1
/usr/lib/libgcc_s.so.1

I think it's that OpenOffice libxml2.so.2 that's giving trouble, I think that this is an easy fix, editing/changing some config file, but I really don't know how to fix it.

Thanks for all your help, it's gotten me this far.

Ilgar 06-23-2006 05:22 PM

Interesting, how can it find the OO libraries in the first place? Is your OO directory listed in the /etc/ld.so.conf file? If so, remove it, run ldconfig and retry.

Slim Backwater 06-23-2006 10:09 PM

Why yes it is, and removing the lines and running ldconfig does the trick.

Code:

$ cat /etc/ld.so.conf
/usr/local/lib
/usr/X11R6/lib
/usr/i486-slackware-linux/lib
/opt/kde/lib
/usr/lib/qt/lib
/usr/lib/mozilla-1.7.13
/usr/lib/firefox-1.5.0.3
/usr/lib/thunderbird-1.5.0.2
/usr/lib/netscape
/opt/openoffice-1.9.79/program
/opt/openoffice.org2.0/program

I think I installed OOo with packages from linuxpackages.net (atleast that 1.979 one) so that installation must have put it there. That also means that a -current can't use OOo packages for 10.2 without 'correcting' this ld.so.conf. Does anyone see anything else askew there?

On another note, I wonder if this is also why my UT2004 is having trouble. UT2004 under 10.2 works great, but after upgrading to -current the game dies while joining a game (not starting, it starts and shows the menu fine) or going into the settings (both the retail with the latest patch, and the Demo). I'm off to try that now too. I've tried various kernels and ATI drivers, all to no avail, maybe this is the ticket.

Edit: AWESOME! It did fix my UT2004 problems! I had no idea that OOo was the problem. Thank-you all very much!

Ilgar 06-23-2006 11:14 PM

You're welcome. I did my OO installation myself, using the official package and converting rpms to tgz with rpm2tgz. No change was made on ld.so.conf and it works. I think those libraries are supposed to act as program-specific libraries, so they shouldn't appear in ld.so.conf; when necessary the program itself should be able to find them anyway.


All times are GMT -5. The time now is 11:08 PM.