Bug 97497

Summary: audio/libtunepimp: libtunepimp.so neglects to link libiconv.so
Product: Ports & Packages Reporter: Samuel Stringham <sstringh>
Component: Individual Port(s)Assignee: Emanuel Haupt <ehaupt>
Status: Closed FIXED    
Severity: Affects Only Me    
Priority: Normal    
Version: Latest   
Hardware: Any   
OS: Any   

Description Samuel Stringham 2006-05-19 16:00:38 UTC
When running audio/picard, the following error is generated:

Traceback (most recent call last):
  File "/usr/local/bin/mb_tagger.py", line 74, in ?
    from picard.browser import browser, filelookup, launch
  File "/usr/local/lib/python2.4/site-packages/picard/browser/browser.py", line 57, in ?
    from picard.lib import events, util
  File "/usr/local/lib/python2.4/site-packages/picard/lib/util.py", line 56, in ?
    from tunepimp import tunepimp
  File "/usr/local/lib/python2.4/site-packages/tunepimp/__init__.py", line 27, in ?
    import tunepimp
  File "/usr/local/lib/python2.4/site-packages/tunepimp/tunepimp.py", line 161, in ?
    tplib = cdll.LoadLibrary(findLibrary())
  File "/usr/local/lib/python2.4/site-packages/ctypes/__init__.py", line 378, in LoadLibrary
    return self._dlltype(name)
  File "/usr/local/lib/python2.4/site-packages/ctypes/__init__.py", line 296, in __init__
    self._handle = _dlopen(self._name, mode)
OSError: /usr/local/lib/libtunepimp.so.3: Undefined symbol "libiconv_open"

--
This error seems to be due to the fact that libiconv is not properly linked to libtunepimp.so.3.  This can be seen with:

$ nm -B /usr/local/lib/libtunepimp.so.3 | grep libiconv_open
         U libiconv_open
$ ldd /usr/local/lib/libtunepimp.so.3
/usr/local/lib/libtunepimp.so.3:
        libmusicbrainz.so.4 => /usr/local/lib/libmusicbrainz.so.4 (0x281be000)
        libz.so.3 => /lib/libz.so.3 (0x281eb000)
        libstdc++.so.5 => /usr/lib/libstdc++.so.5 (0x281fb000)
        libm.so.4 => /lib/libm.so.4 (0x282c5000)
        libexpat.so.6 => /usr/local/lib/libexpat.so.6 (0x282db000)
$ nm -B /usr/local/lib/libiconv.so.3 | grep libiconv_open
00011ab4 T libiconv_open

Fix: This was the patch I applied (diff -Nru):



But, you could probably solve this in a number of ways.--YuTCtUVszBd9o6m7ku35Eyl78KoAlKWZai7fGcCodxCP3iHL
Content-Type: text/plain; name="file.diff"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment; filename="file.diff"

--- work/libtunepimp-0.4.2/lib/Makefile Fri May 19 09:54:49 2006
+++ work/libtunepimp-0.4.2/lib/Makefile.new     Fri May 19 09:54:40 2006
@@ -144,7 +144,7 @@
 INSTALL_PROGRAM = install  -s -o root -g wheel -m 555
 INSTALL_SCRIPT = install  -o root -g wheel -m 555
 INSTALL_STRIP_PROGRAM = ${SHELL} $(install_sh) -c -s
-LDFLAGS = -L/usr/local/lib
+LDFLAGS = -L/usr/local/lib -liconv
 LIBLTDL = ${top_builddir}/libltdl/libltdlc.la
 LIBOBJS =
 LIBS =
How-To-Repeat: $ portinstall audio/picard; # as-of 18 May 2006.
$ picard
Comment 1 Ion-Mihai "IOnut" Tetcu freebsd_committer freebsd_triage 2006-05-19 18:14:37 UTC
State Changed
From-To: open->feedback

Ping maitainer.
Comment 2 Mark Linimon freebsd_committer freebsd_triage 2006-06-03 22:13:59 UTC
Responsible Changed
From-To: freebsd-bugs->freebsd-ports-bugs

Canonicalize assignment.
Comment 3 Ion-Mihai "IOnut" Tetcu freebsd_committer freebsd_triage 2006-06-17 22:28:40 UTC
State Changed
From-To: feedback->open

Maintainer timeout
Comment 4 Emanuel Haupt freebsd_committer freebsd_triage 2006-07-06 23:14:07 UTC
Responsible Changed
From-To: freebsd-ports-bugs->ehaupt

Take.
Comment 5 Emanuel Haupt freebsd_committer freebsd_triage 2006-07-06 23:59:50 UTC
State Changed
From-To: open->closed

Committed, thanks! Since this port respects LDFLAGS I just passed -liconv to 
LDFLAGS instead of adding an additional patch.