Hi,
Thanks so much for the quick reply, it was just what I needed to
work out what was wrong.
The short answer is that the presence of the default debian apr
packages was obscuring the fact that the new packages from
unimrcp-deps were not included in the loadpath. The solution was
simply to append the new packages to the loadpath,
$ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/apr/lib
It took me a while to figure out exactly what was going wrong, and
I did it while writing this email, so I'll include the rest for
posterity - perhaps it will be of help to others.
First, the result of the command you recommended, indicates that you
were right.
unimrcp# ldd /usr/local/unimrcp/lib/libunimrcpserver.so
linux-gate.so.1 => (0x001f2000)
libapr-1.so.0 => /usr/local/apr/lib/libapr-1.so.0 (0x008be000)
librt.so.1 => /lib/i686/nosegneg/librt.so.1 (0x0099a000)
libcrypt.so.1 => /lib/i686/nosegneg/libcrypt.so.1 (0x0049d000)
libpthread.so.0 => /lib/i686/nosegneg/libpthread.so.0 (0x00a13000)
libdl.so.2 => /lib/i686/nosegneg/libdl.so.2 (0x004d1000)
libaprutil-1.so.0 => /usr/local/apr/lib/libaprutil-1.so.0 (0x00deb000)
libexpat.so.0 => /usr/local/apr/lib/libexpat.so.0 (0x003eb000)
libsofia-sip-ua.so.0 => /usr/local/lib/libsofia-sip-ua.so.0 (0x001f3000)
libc.so.6 => /lib/i686/nosegneg/libc.so.6 (0x00a43000)
/lib/ld-linux.so.2 (0x80000000)
So first I tried to rebuild unimrcp with the configure options you
recommended, however this did not solve the problem. I also tried
rebuilding apr, and then rebuilding the apr-util package from the
unimrcp-deps separately rather than with the unified compile script.
I did this in order to specify the apr package for apr-util, with
../apr-util$ ./configure --with-apr=/path/to/unimrcp-deps/libs/apr
and then again rebuilding the unimrcp package. None of this worked,
as I still received the same error message, which basically meant
that, as you had thought, unimrcp was still relying on the default
debian apr libs.
So I removed the default debian apr packages I had installed,
$ apt-get remove apt-get remove libapr1
I then rebuilt everything again from scratch, with the specific
configure options, make install, etc.
Finally I added it the new apr packages to the path,
export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/apr/lib
and everything worked,
/usr/local/unimrcp/bin$ ./unimrcpserver
2009-08-27 06:42:24:924040 [NOTICE] UniMRCP Server [0.7.0]
2009-08-27 06:42:24:924181 [INFO] APR [1.3.6]
2009-08-27 06:42:24:924291 [NOTICE] Create MRCP Server
2009-08-27 06:42:24:924333 [NOTICE] Create MRCP Resource Factory [2]
2009-08-27 06:42:24:924362 [NOTICE] Register Synthesizer Resource
2009-08-27 06:42:24:924371 [NOTICE] Register Recognizer Resource
2009-08-27 06:42:24:924386 [INFO] Register Resource Factory
2009-08-27 06:42:24:924426 [INFO] Register Codec [LPCM]
2009-08-27 06:42:24:924433 [INFO] Register Codec [PCMU]
2009-08-27 06:42:24:924437 [INFO] Register Codec [PCMA]
2009-08-27 06:42:24:924454 [INFO] Register Codec [L16]
2009-08-27 06:42:24:924473 [NOTICE] Open Config File [../conf/unimrcpserver.xml]
2009-08-27 06:42:24:924528 [WARN] Failed to Open Config File
[../conf/unimrcpserver.xml]
2009-08-27 06:42:24:924536 [INFO] Start MRCP Server
>2009-08-27 06:42:24:924633 [INFO] Open Resource Engines
2009-08-27 06:42:24:924655 [NOTICE] MRCP Server Started
This made me wonder if the library path was the problem all along,
i.e., I had built and installed the libraries, and because I hadn't
added it to the loadpath the build or runtime was backing off to the
default apr packages.
I tried resetting the library path,
unimrcp/bin$ export LD_LIBRARY_PATH=
unimrcp/bin$ ./unimrcpserver
./unimrcpserver: symbol lookup error:
/usr/local/unimrcp/lib/libunimrcpserver.so.0: undefined symbol:
apr_pool_mutex_set
unimrcp/bin$ export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/apr/lib
unimrcp/bin$ ./unimrcpserver
2009-08-27 06:48:55:289055 [NOTICE] UniMRCP Server [0.7.0]
2009-08-27 06:48:55:289201 [INFO] APR [1.3.6]
2009-08-27 06:48:55:289355 [NOTICE] Create MRCP Server
2009-08-27 06:48:55:289397 [NOTICE] Create MRCP Resource Factory [2]
2009-08-27 06:48:55:289418 [NOTICE] Register Synthesizer Resource
2009-08-27 06:48:55:289438 [NOTICE] Register Recognizer Resource
2009-08-27 06:48:55:289465 [INFO] Register Resource Factory
2009-08-27 06:48:55:289484 [INFO] Register Codec [LPCM]
2009-08-27 06:48:55:289492 [INFO] Register Codec [PCMU]
2009-08-27 06:48:55:289516 [INFO] Register Codec [PCMA]
2009-08-27 06:48:55:289537 [INFO] Register Codec [L16]
2009-08-27 06:48:55:289579 [NOTICE] Open Config File [../conf/unimrcpserver.xml]
2009-08-27 06:48:55:289613 [WARN] Failed to Open Config File
[../conf/unimrcpserver.xml]
2009-08-27 06:48:55:289627 [INFO] Start MRCP Server
>2009-08-27 06:48:55:289709 [INFO] Open Resource Engines
2009-08-27 06:48:55:289729 [NOTICE] MRCP Server Started
Sure enough the LD_LOAD_PATH was the only problem the whole time.
My apologies for not spotting this from the beginning. The presence
of the default debian apr packages was obscuring the fact that the new
packages from unimrcp-deps were not included in the loadpath.
Thanks again for the feedback!
Cheers,
-Joe