Opened 15 years ago

Closed 15 years ago

Last modified 12 years ago

#4770 closed defect (fixed)

BUG: libiconv fails to upgrade on 10.4.2

Reported by: Martin.Buchmann@… Owned by: mij@…
Priority: Normal Milestone:
Component: ports Version:
Keywords: Cc: mjs@…, kayos@…, mellon85@…
Port:

Description

I tried to upgrade from 1.9.2_1 to 1.10_0 via 'sudp port -d upgarde libiconv' and that's what i get:

gcc iconv.o -o iconv ../srclib/libicrt.a -L/opt/local/lib /opt/local/lib/libintl.dylib /opt/local/lib/libiconv.dylib -lc /usr/bin/ld: warning multiple definitions of symbol _locale_charset /opt/local/lib/libiconv.dylib(localcharset.o) definition of _locale_charset /opt/local/lib/libintl.dylib(localcharset.o) definition of _locale_charset /usr/bin/ld: warning suggest use of -bind_at_load, as lazy binding may result in errors or different symbols being used /usr/bin/ld: warning prebinding disabled because of undefined symbols /usr/bin/ld: Undefined symbols: _iconv_canonicalize symbol _locale_charset used from dynamic library /opt/local/lib/libiconv.dylib(localcharset.o) not from earlier dynamic library /opt/local/lib/libintl.3.dylib(localcharset.o) collect2: ld returned 1 exit status make[1]: * [install] Error 1 make: * [install] Error 2

Warning: the following items did not execute (for libiconv): com.apple.destroot DEBUG: expected integer but got ""

while executing

"seek $fd $len current" Error: Unable to upgrade port: 1

Change History (17)

comment:1 Changed 15 years ago by blb@…

Owner: changed from darwinports-bugs@… to mij@…

Assigning to maintainer.

comment:2 Changed 15 years ago by andyfraser@…

I'm also running 10.4.2 with DarwinPorts 1.012. Here's a slightly more full output:

---> Staging libiconv into destroot Error: Target com.apple.destroot returned: shell command "cd "/opt/local/var/db/dports/build/ file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_textproc_libiconv/ work/libiconv-1.10" && make install DESTDIR=/opt/local/var/db/dports/build/ file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_textproc_libiconv/ work/destroot" returned error 2 Command output: libtool: install: warning: remember to run `libtool --finish /opt/local/lib' if test -n ""; then /usr/bin/install -c -m 644 /opt/local/var/db/dports/build/ file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_textproc_libiconv/ work/destroot/opt/local/lib/.new && mv /opt/local/var/db/dports/build/ file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_textproc_libiconv/ work/destroot/opt/local/lib/.new /opt/local/var/db/dports/build/ file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_textproc_libiconv/ work/destroot/opt/local/lib/ ; fi cd srclib && make install prefix='/opt/local' exec_prefix='/opt/local' libdir='/opt/local/lib' make[2]: Nothing to be done for `am--refresh'. make install-am make[3]: Nothing to be done for `am--refresh'. make[4]: Nothing to be done for `am--refresh'. make[3]: Nothing to be done for `install-exec-am'. make[3]: Nothing to be done for `install-data-am'. cd src && make install prefix='/opt/local' exec_prefix='/opt/local' libdir='/opt/local/lib' test ls -ld . | sed -e 's/^d\(.........\).*/\1/' = rwxrwxrwx | | chmod 777 . if [ ! -d /opt/local/var/db/dports/build/ file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_textproc_libiconv/ work/destroot/opt/local ] ; then /bin/sh ../build-aux/mkinstalldirs /opt/local/var/db/dports/build/ file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_textproc_libiconv/ work/destroot/opt/local ; fi if [ ! -d /opt/local/var/db/dports/build/ file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_textproc_libiconv/ work/destroot/opt/local ] ; then /bin/sh ../build-aux/mkinstalldirs /opt/local/var/db/dports/build/ file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_textproc_libiconv/ work/destroot/opt/local ; fi if [ ! -d /opt/local/var/db/dports/build/ file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_textproc_libiconv/ work/destroot/opt/local/bin ] ; then /bin/sh ../build-aux/mkinstalldirs /opt/local/var/db/dports/ build/ file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_textproc_libiconv/ work/destroot/opt/local/bin ; fi case "darwin8.2.0" in \

hpux*) gcc if test -n ''; then /opt/local/bin; fi iconv.o ../srclib/libicrt.a -L/opt/local/var/db/

dports/build/ file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_textproc_libiconv/ work/destroot/opt/local/lib -liconv -L/opt/local/lib -lintl -liconv -lc `if test -n '/opt/local/var/db/ dports/build/ file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_textproc_libiconv/ work/destroot'; then echo " -Wl,+b -Wl,/opt/local/lib"; fi` -o iconv;; \

*) /bin/sh ../libtool --mode=link gcc if test -n ''; then /opt/local/bin; fi iconv.o ../srclib/libicrt.a /

opt/local/var/db/dports/build/ file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_textproc_libiconv/ work/destroot/opt/local/lib/libiconv.la -L/opt/local/lib -lintl -L/opt/local/lib -liconv -lc -R/opt/local/ lib -o iconv;; \ esac gcc iconv.o -o iconv ../srclib/libicrt.a -L/opt/local/lib /opt/local/lib/libintl.dylib /opt/local/lib/ libiconv.dylib -lc /usr/bin/ld: warning multiple definitions of symbol _locale_charset /opt/local/lib/libiconv.dylib(localcharset.o) definition of _locale_charset /opt/local/lib/libintl.dylib(localcharset.o) definition of _locale_charset /usr/bin/ld: warning suggest use of -bind_at_load, as lazy binding may result in errors or different symbols being used /usr/bin/ld: warning prebinding disabled because of undefined symbols /usr/bin/ld: Undefined symbols: _iconv_canonicalize symbol _locale_charset used from dynamic library /opt/local/lib/libiconv.dylib(localcharset.o) not from earlier dynamic library /opt/local/lib/libintl.3.dylib(localcharset.o) collect2: ld returned 1 exit status make[1]: * [install] Error 1 make: * [install] Error 2

Error: Unable to upgrade port: 1

comment:3 Changed 15 years ago by kayos@…

Cc: kayos@… added

comment:4 Changed 15 years ago by kayos@…

Workaround: Forcing an uninstall of libiconv before trying to upgrade libiconv will make it build and install to completion.

The problem is that libiconv builds it's own local copy of libiconv.dynlib and then uses libtool to link together a couple of other binaries. However, the path that libtool searches along includes the old, currently installed libiconv in /opt/local/lib.

So, instead of trying to link the binary with the new, local copy, it tries to link against the old library that was already installed.

comment:5 Changed 15 years ago by mjs@…

Cc: mjs@… added

comment:6 Changed 15 years ago by cssdev@…

I can confirm that I was able to work around this bug by using "port deactivate libiconv" prior to upgrading libiconv. Perhaps the upgrade command should force deactivation prior to building the port?

comment:7 Changed 15 years ago by toby@…

Cc: mellon85@… added

* Bug 4819 has been marked as a duplicate of this bug. *

comment:8 Changed 15 years ago by aconchillo@…

I've used the "port deactivate libiconv" workaround and still can't install the port (uninstall workaround worked fine). With deactivate I get this:

.........

*) /bin/sh ../libtool --mode=link gcc -L/opt/local/lib if test -n ''; then /opt/local/bin; fi iconv.o ../

srclib/libicrt.a /opt/local/var/db/dports/build/ file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_textproc_libiconv/ work/destroot/opt/local/lib/libiconv.la -L/opt/local/lib -lintl -L/opt/local/lib -liconv -lc -R/opt/local/ lib -o iconv;; \ esac gcc iconv.o -o iconv -L/opt/local/lib ../srclib/libicrt.a /opt/local/lib/libintl.dylib /opt/local/lib/ libiconv.dylib -lc /usr/bin/ld: warning multiple definitions of symbol _locale_charset /opt/local/lib/libiconv.dylib(localcharset.o) definition of _locale_charset /opt/local/lib/libintl.dylib(localcharset.o) definition of _locale_charset /usr/bin/ld: warning suggest use of -bind_at_load, as lazy binding may result in errors or different symbols being used /usr/bin/ld: warning prebinding disabled because of undefined symbols /usr/bin/ld: Undefined symbols: _iconv_canonicalize symbol _locale_charset used from dynamic library /opt/local/lib/libiconv.dylib(localcharset.o) not from earlier dynamic library /opt/local/lib/libintl.3.dylib(localcharset.o) collect2: ld returned 1 exit status make[1]: * [install] Error 1 make: * [install] Error 2

Warning: the following items did not execute (for libiconv): com.apple.destroot DEBUG: expected integer but got ""

while executing

"seek $fd $len current" Error: Unable to upgrade port: 1

comment:9 Changed 15 years ago by osxdev@…

I just did a clean install on 10.4.2 (never used darwinports before). Started with the 1.0 dmg, did the selfupdate, installed a couple of things, but when I got to installing something that required libiconv, I got the same error described here, but in my case, none of the workaround work.

Here's the error : $ sudo port install ruby ---> Staging libiconv into destroot Error: Target com.apple.destroot returned: shell command "cd "/opt/local/var/db/dports/build/ file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_textproc_libiconv/ work/libiconv-1.10" && make install DESTDIR=/opt/local/var/db/dports/build/ file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_textproc_libiconv/ work/destroot" returned error 2 Command output: libtool: install: warning: remember to run `libtool --finish /opt/local/lib' if test -n ""; then /usr/bin/install -c -m 644 /opt/local/var/db/dports/build/ file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_textproc_libiconv/ work/destroot/opt/local/lib/.new && mv /opt/local/var/db/dports/build/ file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_textproc_libiconv/ work/destroot/opt/local/lib/.new /opt/local/var/db/dports/build/ file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_textproc_libiconv/ work/destroot/opt/local/lib/ ; fi cd srclib && make install prefix='/opt/local' exec_prefix='/opt/local' libdir='/opt/local/lib' make[2]: Nothing to be done for `am--refresh'. make install-am make[3]: Nothing to be done for `am--refresh'. make[4]: Nothing to be done for `am--refresh'. make[3]: Nothing to be done for `install-exec-am'. make[3]: Nothing to be done for `install-data-am'. cd src && make install prefix='/opt/local' exec_prefix='/opt/local' libdir='/opt/local/lib' test ls -ld . | sed -e 's/^d\(.........\).*/\1/' = rwxrwxrwx | | chmod 777 . if [ ! -d /opt/local/var/db/dports/build/ file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_textproc_libiconv/ work/destroot/opt/local ] ; then /bin/sh ../build-aux/mkinstalldirs /opt/local/var/db/dports/build/ file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_textproc_libiconv/ work/destroot/opt/local ; fi if [ ! -d /opt/local/var/db/dports/build/ file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_textproc_libiconv/ work/destroot/opt/local ] ; then /bin/sh ../build-aux/mkinstalldirs /opt/local/var/db/dports/build/ file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_textproc_libiconv/ work/destroot/opt/local ; fi if [ ! -d /opt/local/var/db/dports/build/ file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_textproc_libiconv/ work/destroot/opt/local/bin ] ; then /bin/sh ../build-aux/mkinstalldirs /opt/local/var/db/dports/ build/ file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_textproc_libiconv/ work/destroot/opt/local/bin ; fi case "darwin8.2.0" in \

hpux*) gcc if test -n ''; then /opt/local/bin; fi iconv.o ../srclib/libicrt.a -L/opt/local/var/db/

dports/build/ file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_textproc_libiconv/ work/destroot/opt/local/lib -liconv -L/opt/local/lib -lintl -liconv `if test -n '/opt/local/var/db/ dports/build/ file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_textproc_libiconv/ work/destroot'; then echo " -Wl,+b -Wl,/opt/local/lib"; fi` -o iconv;; \

*) /bin/sh ../libtool --mode=link gcc if test -n ''; then /opt/local/bin; fi iconv.o ../srclib/libicrt.a /

opt/local/var/db/dports/build/ file._opt_local_var_db_dports_sources_rsync.rsync.opendarwin.org_dpupdate_dports_textproc_libiconv/ work/destroot/opt/local/lib/libiconv.la -L/opt/local/lib -lintl -L/opt/local/lib -liconv -R/opt/local/lib -o iconv;; \ esac gcc iconv.o -o iconv ../srclib/libicrt.a -L/opt/local/lib /opt/local/lib/libintl.dylib /opt/local/lib/ libiconv.dylib /usr/bin/ld: warning prebinding disabled because dependent library: /opt/local/lib/libintl.1.dylib is not prebound /usr/bin/ld: warning multiple definitions of symbol _locale_charset /opt/local/lib/libiconv.dylib(localcharset.lo) definition of _locale_charset /opt/local/lib/libintl.dylib(localcharset.lo) definition of _locale_charset /usr/bin/ld: warning suggest use of -bind_at_load, as lazy binding may result in errors or different symbols being used /usr/bin/ld: Undefined symbols: _iconv_canonicalize symbol _locale_charset used from dynamic library /opt/local/lib/libiconv.dylib(localcharset.lo) not from earlier dynamic library /opt/local/lib/libintl.1.dylib(localcharset.lo) collect2: ld returned 1 exit status make[1]: * [install] Error 1 make: * [install] Error 2

Error: The following dependencies failed to build: libiconv openssl zlib

And here's me trying the workaround : $ sudo port deactivate libiconv ---> Deactivating libiconv port deactivate failed: Registry error: libiconv not registered as installed & active.

$ ls -la /opt/local/lib/libic* -rw-r--r-- 1 root 17025 1106996 Feb 20 2003 /opt/local/lib/libiconv.2.1.0.dylib lrwxr-xr-x 1 root 17025 20 Aug 3 2004 /opt/local/lib/libiconv.2.dylib -> libiconv.2.1.0.dylib lrwxr-xr-x 1 root 17025 20 Aug 3 2004 /opt/local/lib/libiconv.dylib -> libiconv.2.1.0.dylib -rw-r--r-- 1 root 17025 714 Feb 20 2003 /opt/local/lib/libiconv.la

comment:10 Changed 15 years ago by ptman (Paul Tötterman)

Short guide, which according to my experiences, works: port selfupdate port -f deinstall libiconv port clean libiconv port install libiconv

comment:11 Changed 15 years ago by mellon85@…

It doesn't work for me, returns the same error

comment:12 Changed 15 years ago by purestorm@…

I got the same errors as Keith. I've now renamed by old /opt/local directory and installed DP anew. After that, I installed libiconv, gettext and things work now.

comment:13 Changed 15 years ago by mww@…

Summary: libiconv fails to upgrade on 10.4.2BUG: libiconv fails to upgrade on 10.4.2

comment:14 Changed 15 years ago by mij@…

Resolution: fixed
Status: newclosed

I just made a commit that should fix this for both Panther and Tiger users (it was tested and worked on both) . Please update your ports tree and give it a try.

comment:15 Changed 15 years ago by bryan.larsen@…

I recently did a selfupdate and an upgrade -a and got the errors described within. The upgrade it was attempting was from 1.9.2_1 to 1.10_1+darwin_8. Paul Tötterman's workaround worked fine for me.

comment:16 Changed 13 years ago by nox@…

Milestone: Port Bugs
Priority: ExpectedNormal
Version: 1.0

comment:17 Changed 12 years ago by (none)

Milestone: Port Bugs

Milestone Port Bugs deleted

Note: See TracTickets for help on using tickets.