Thanks Mike,

I thought about it but I'm not sure how to do it. _csond.so is created by Swig, right? Is Swig failing to link it to the shared library libcsnd.so.5.1? Or is the linking detected dynamically by ld? If then, why ldd is not showing that _csnd.so requires libcsnd.so.5.1? Sorry, but my knowledge about library linking doesn't go very deep.

Thanks,


Hector


On Nov 7, 2007 8:19 AM, Michael Gogins < gogins@pipeline.com> wrote:
Did you try creating this link by hand?
 
Regards,
Mike
 
----- Original Message -----
Sent: Tuesday, November 06, 2007 11:16 PM
Subject: [Csnd] Re: Re: Re: Re: Re: Re: Re: Re: can't import csnd from python

Hi again, and sorry for insisting on this.

I uninstalled my Csound CVS build and installed Csound 5.03 from the CCRMA repository. Importing the csnd library in Python works fine and ldd on the CCRMA's _csnd.so includes this:

libcsound.so.5.1 => /usr/lib/libcsound.so.5.1 (0xb7bdf000)

Which for some reason I can't get with my own build from CVS. Files are in the same locations for both. Setting environment variables or running ldconfig doesn't change the problem... so, where should I look for? Why is libcsound.so.5.1 not being linked to _csnd.so in my build?

Any help will be highly appreciated.

Hector



On Nov 6, 2007 8:21 AM, Michael Gogins < gogins@pipeline.com> wrote:
These are cumulative paths.
 
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:newpath
 
and so on.
 
All the .so files required must be in one or another of the directories in ldconfig or LD_LIBRARY_PATH.
 
Hope this helps,
Mike
----- Original Message -----
Sent: Monday, November 05, 2007 11:50 PM
Subject: [Csnd] Re: Re: Re: Re: Re: Re: can't import csnd from python

Thanks Mike,

I tried and still no luck. The libraries are located in /usr/local/lib and /usr/lib/python2.5/site-packages

This are all the libs:
/usr/local/lib/libcsladspa.so
/usr/local/lib/libcsnd.so.5.1
/usr/local/lib/libcsound64.a
/usr/local/lib/tclcsound.so

And in Python:
/usr/lib/python2.5/site-packages/_csnd.so
/usr/lib/python2.5/site-packages/_loris.so
/usr/lib/python2.5/site-packages/csnd.py
/usr/lib/python2.5/site-packages/loris.py

But then:
$ export PYTHONPATH=/usr/local/lib:/usr/lib/python2.5/site-packages
$ export LD_LIBRARY_PATH=/usr/local/lib:/usr/lib/python2.5/site-packages
$ python
Python 2.5 (r25:51908, Oct 19 2007, 09:47:40)
[GCC 4.1.2 20070925 (Red Hat 4.1.2-27)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import csnd
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/usr/lib/python2.5/site-packages/csnd.py", line 7, in <module>
    import _csnd
ImportError: /usr/lib/python2.5/site-packages/_csnd.so: undefined symbol: csoundSetKillXYinCallback


Regards,

Hector


On Nov 5, 2007 9:53 PM, Michael Gogins <gogins@pipeline.com> wrote:
This doesn't change what I'm saying (in my slightly earlier response). _csnd.so corresponds to _csnd.pyd, and libcsnd.so.5.1 corresponds to csnd.dll.
 
Regards,
Mike
----- Original Message -----
Sent: Monday, November 05, 2007 8:52 PM
Subject: [Csnd] Re: Re: Re: Re: can't import csnd from python

Sorry, I made a mistake and repeated two times the same information, this is what I intended:

$ nm /usr/local/lib/libcsound64.a | grep csoundSetKillXYinCallback
00000740 T csoundSetKillXYinCallback

$ nm /usr/lib/python2.5/site-packages/_csnd.so | grep csoundSetKillXYinCallback
         U csoundSetKillXYinCallback

$ nm /usr/local/lib/libcsnd.so.5.1 | grep csoundSetKillXYinCallback
000f57d0 T csoundSetKillXYinCallback

... and ldd:

$ ldd /usr/lib/python2.5/site-packages/_csnd.so
        linux-gate.so.1 =>  (0xb7f4d000)
        libpython2.5.so.1.0 => /usr/lib/libpython2.5.so.1.0 (0xb7d45000)
        liblua-5.1.so => /usr/lib/liblua-5.1.so (0xb7d1b000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7c30000)
        libutil.so.1 => /lib/libutil.so.1 (0xb7c2c000)
        libsndfile.so.1 => /usr/lib/libsndfile.so.1 (0xb7bcc000)
        libdl.so.2 => /lib/libdl.so.2 (0xb7bc7000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xb7baf000)
        libm.so.6 => /lib/libm.so.6 (0xb7b86000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7b7a000)
        libc.so.6 => /lib/libc.so.6 (0xb7a26000)
        /lib/ld-linux.so.2 (0x80000000)

$ ldd /usr/local/lib/libcsnd.so.5.1
        linux-gate.so.1 =>  (0xb7f0c000)
        libpython2.5.so.1.0 => /usr/lib/libpython2.5.so.1.0 (0xb7c55000)
        liblua-5.1.so => /usr/lib/liblua-5.1.so (0xb7c2b000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7b40000)
        libutil.so.1 => /lib/libutil.so.1 (0xb7b3c000)
        libsndfile.so.1 => /usr/lib/libsndfile.so.1 (0xb7adc000)
        libdl.so.2 => /lib/libdl.so.2 (0xb7ad7000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xb7abf000)
        libm.so.6 => /lib/libm.so.6 (0xb7a96000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7a8a000)
        libc.so.6 => /lib/libc.so.6 (0xb7936000)
        /lib/ld-linux.so.2 (0x80000000)


On Nov 5, 2007 8:42 PM, Hector Centeno < hcengar@gmail.com> wrote:
Thanks John for your response.

Sorry, I'm not sure which ones are those correct files. I did a nm in some of the libraries and got this:

$ nm /usr/lib/python2.5/site-packages/_csnd.so | grep csoundSetKillXYinCallback
         U csoundSetKillXYinCallback

$ nm /usr/local/lib/libcsnd.so.5.1 | grep csoundSetKillXYinCallback
000f57d0 T csoundSetKillXYinCallback

$ nm /usr/local/lib/libcsnd.so.5.1 | grep csoundSetKillXYinCallback
000f57d0 T csoundSetKillXYinCallback

... and ldd:

$ ldd /usr/lib/python2.5/site-packages/_csnd.so
        linux-gate.so.1 =>  (0xb7f4d000)
        libpython2.5.so.1.0 => /usr/lib/libpython2.5.so.1.0 (0xb7d45000)
        liblua-5.1.so => /usr/lib/liblua-5.1.so (0xb7d1b000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7c30000)
        libutil.so.1 => /lib/libutil.so.1 (0xb7c2c000)
        libsndfile.so.1 => /usr/lib/libsndfile.so.1 (0xb7bcc000)
        libdl.so.2 => /lib/libdl.so.2 (0xb7bc7000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xb7baf000)
        libm.so.6 => /lib/libm.so.6 (0xb7b86000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7b7a000)
        libc.so.6 => /lib/libc.so.6 (0xb7a26000)
        /lib/ld-linux.so.2 (0x80000000)

$ ldd /usr/local/lib/libcsnd.so.5.1
        linux-gate.so.1 =>  (0xb7f0c000)
        libpython2.5.so.1.0 => /usr/lib/libpython2.5.so.1.0 (0xb7c55000)
        liblua-5.1.so => /usr/lib/liblua-5.1.so (0xb7c2b000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xb7b40000)
        libutil.so.1 => /lib/libutil.so.1 (0xb7b3c000)
        libsndfile.so.1 => /usr/lib/libsndfile.so.1 (0xb7adc000)
        libdl.so.2 => /lib/libdl.so.2 (0xb7ad7000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xb7abf000)
        libm.so.6 => /lib/libm.so.6 (0xb7a96000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xb7a8a000)
        libc.so.6 => /lib/libc.so.6 (0xb7936000)
        /lib/ld-linux.so.2 (0x80000000)

Is this information any useful?


Thanks!


Hector



On Nov 5, 2007 12:12 PM, <jpff@cs.bath.ac.uk> wrote:


On Mon, 5 Nov 2007, Hector Centeno wrote:

> > >
> > >$ python
> > >Python 2.5 (r25:51908, Oct 19 2007, 09:47:40)
> > >[GCC 4.1.2 20070925 (Red Hat 4.1.2-27)] on linux2
> > >Type "help", "copyright", "credits" or "license" for more information.
> > > >>> import csnd
> > >Traceback (most recent call last):
> > >   File "<stdin>", line 1, in <module>
> > >   File "/usr/lib/python2.5/site-packages/csnd.py", line 7, in <module>
> > >     import _csnd
> > >ImportError: /usr/lib/python2.5/site-packages/_csnd.so: undefined symbol:
> > >csoundSetKillXYinCallback
> > >
> > >

I do not use python, but I do know that csoundSetKillXYinCallback
is defined in Top/csound.c so use of nm and ldd on the correct files might
say where it has gone

==John