duplicity-talk
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Duplicity-talk] Can't find _librsync?


From: Scott Hannahs
Subject: Re: [Duplicity-talk] Can't find _librsync?
Date: Sun, 22 Nov 2009 23:32:09 -0500

On Nov 22, 2009, at 7:29 PM, Kenneth Loafman wrote:

> Scott Hannahs wrote:
>> On Nov 22, 2009, at 5:48 PM, Kenneth Loafman wrote:
>> 
>>> Scott Hannahs wrote:
>>>> Mac OS X 10.6 and Python 2.6
> <snip>
>> So it seems that python can find the file after all, but the missing
>> routine error is causing it to skip the load step and continue on in
>> the try/fail flow structure with librsync.py
>> 
>> I am using version 0.9.7-1003 of librsync.  Is this a problem?
> 
> It should not be, however, librsync has some dependencies listed:
> 
> "Depends: libbz2-1.0, libc6 (>= 2.4), libpopt0 (>= 1.14),
> zlib1g (>= 1:1.1.4)".
> 
> Replace the try/except with a straight import in the librsync.py module
> and lets's see if we can get some more info.  The pythonpath with the
> full list is the one you'll need to use, so stay with that one.  That
> list does include the other libraries above, right?

I have all the dependencies satisfied by fink.  That was one reason I installed 
it.
I have libpopt and libbz2 installed in the /sw/lib directory as needed.

If I remove the try/except structure and just leave the "import librsync" 
command in, I get the ImportError. 

Traceback (most recent call last):
  File "/usr/local/bin/duplicity", line 41, in <module>
    from duplicity import collections
  File "/usr/local/lib/python2.6/site-packages/duplicity/collections.py", line 
29, in <module>
    from duplicity import path
  File "/usr/local/lib/python2.6/site-packages/duplicity/path.py", line 33, in 
<module>
    from duplicity import librsync
  File "/usr/local/lib/python2.6/site-packages/duplicity/librsync.py", line 31, 
in <module>
    import _librsync
ImportError: 
dlopen(/usr/local/lib/python2.6/site-packages/duplicity/_librsync.so, 2): 
Symbol not found: _rs_file_copy_cb
  Referenced from: /usr/local/lib/python2.6/site-packages/duplicity/_librsync.so
  Expected in: flat namespace
 in /usr/local/lib/python2.6/site-packages/duplicity/_librsync.so

To me this implies that the function rs_file_copy_cb defined in the librsync.h 
header file is never actually implemented in the librsync library???!!  But if 
I inspect the library with the unix "nm" command I find that it is a "T" symbol 
and hence defined in either librsync.a or librsync.dylib.

If I dump the symbols in _librsync.so as created by duplicity installer I find 
that this along with several others is "undefined"

% nm /usr/local/lib/python2.6/site-packages/duplicity/_librsync.so | grep _rs_
         U _rs_build_hash_table
         U _rs_delta_begin
         U _rs_file_copy_cb
         U _rs_free_sumset
         U _rs_job_free
         U _rs_job_iter
         U _rs_loadsig_begin
         U _rs_patch_begin
         U _rs_sig_begin

Ahhh!  I think I have it.  My librsync is a 32 bit compile which is 
incompatible with the 64 bit python.  Thus the link succeeded for only one 
architecture and failed for the other two?

More when I reinstall all my libraries...
-Scott






reply via email to

[Prev in Thread] Current Thread [Next in Thread]