Ticket #16892 (closed defect: fixed)
fuse-bindings-python25 0.2 import fails: _iconv not found
| Reported by: | kentk@… | Owned by: | sfiera@… |
|---|---|---|---|
| Priority: | Normal | Milestone: | |
| Component: | ports | Version: | 1.6.0 |
| Keywords: | fuse macfuse iconv | Cc: | dports@…, macports@…, jason@…, macports8@…, macports@…, arto.bendiken@…, ruibalp@… |
| Port: | fuse-bindings-python25 macfuse |
Description
After a clean install of macfuse 1.7 and fuse-bindings-python25 0.2, I get this:
Python 2.5.2 (r252:60911, Jul 8 2008, 16:31:55)
[GCC 4.0.1 (Apple Inc. build 5484)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import fuse
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/opt/local/lib/python2.5/site-packages/fuse.py", line 26, in <module>
from fuseparts._fuse import main, FuseGetContext, FuseInvalidate
ImportError: dlopen(/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/fuseparts/_fusemodule.so, 2): Symbol not found: _iconv
Referenced from: /opt/local/lib/libfuse.2.dylib
Expected in: flat namespace
Linked libraries:
kkarlsson:~ kkarlsson$ otool -L /opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/fuseparts/_fusemodule.so /opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/fuseparts/_fusemodule.so: /opt/local/lib/libfuse.2.dylib (compatibility version 10.0.0, current version 10.7.3) /opt/local/lib/libiconv.2.dylib (compatibility version 7.0.0, current version 7.0.0) /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 111.1.1)
Symbols in libiconv:
kkarlsson:~ kkarlsson$ nm /opt/local/lib/libiconv.2.dylib | grep iconv /opt/local/lib/libiconv.2.dylib(single module): 000f8020 D __libiconv_version 000187c0 T _iconv_canonicalize 00016590 T _libiconv 000165f0 T _libiconv_close 00017fa0 T _libiconv_open 00019040 t _libiconv_relocate 00018f50 T _libiconv_set_relocation_prefix 00016610 T _libiconvctl 00016850 T _libiconvlist
The symbol is not something found in libiconv, and I'm not sure where the reference even comes from, because fusemodule.c doesn't ever call anything iconv*
Change History
comment:1 Changed 5 years ago by macsforever2000@…
- Owner changed from macports-tickets@… to sfiera@…
comment:5 Changed 4 years ago by jason@…
If someone can find a solution to this issue (similar to the other tickets fixed and listed here: http://trac.macports.org/wiki/blb#libiconv-symbols) I would be eternally grateful.
Hopefully those other tickets have clues for more experienced MacPorts developers to be able to fix this.
comment:6 Changed 4 years ago by jmr@…
Seems to work fine here (MacPorts 1.7.0, OS 10.5.6, XCode 3.1.2). Most things shouldn't be building with flat namespace any more in MP 1.7 because it now sets MACOSX_DEPLOYMENT_TARGET appropriately.
comment:7 follow-up: ↓ 9 Changed 4 years ago by macports8@…
jmr, do you have the libiconv port installed?
comment:9 in reply to: ↑ 7 Changed 4 years ago by jmr@…
Replying to macports8@…:
jmr, do you have the libiconv port installed?
Yes. Python25 depends on gettext which depends on libiconv.
comment:11 Changed 4 years ago by asbjorn@…
I have this exact problem now with MacPorts 1.8.0.
comment:14 Changed 3 years ago by edwardgeorge@…
i just came up against this and fixed with the following:
sudo port patch macfuse
then edit 10.x/libfuse/fuse-2.7.3-macosx.patch in the work dir. find the entries for the darwin_configure shell scripts and append the following arg to the configures: --with-libiconv-prefix=/opt/local
then finish the installation as normal:
sudo port install macfuse
building and using the fuse bindings worked for me after doing this.
comment:16 Changed 3 years ago by jmr@…
- Cc dports@… added
- Port changed from fuse-bindings-python25 to fuse-bindings-python25 macfuse
Adding macfuse maintainer to cc as per comment:14.
comment:17 Changed 3 years ago by dports@…
- Status changed from new to closed
- Resolution set to fixed
Added --with-libiconv-prefix in r73010


Assigning to maintainer.