[MacPorts] #6804: BUG: unable to load Pextlib on FreeBSD

MacPorts trac at macosforge.org
Fri Dec 28 10:21:03 PST 2007


#6804: BUG: unable to load Pextlib on FreeBSD
-----------------------------+----------------------------------------------
  Reporter:  cssdev at mac.com  |       Owner:  macports-tickets at lists.macosforge.org
      Type:  defect          |      Status:  closed                               
  Priority:  Normal          |   Milestone:  MacPorts base bugs                   
 Component:  base            |     Version:  1.0                                  
Resolution:  fixed           |    Keywords:                                       
-----------------------------+----------------------------------------------
Changes (by jmpp at macports.org):

  * milestone:  => MacPorts base bugs

Old description:

> Following application of the patches mentioned in BUG #6800 I managed to
> DarwinPorts compiled on FreeBSD. Unfortunately, I still cannot get it to
> run properly due to problems with Pextlib. I tried a couple approaches,
> but I'm wondering whether this is something I'm not doing due to a lack
> of familiarity with tcl or if it's a larger problem. I have the tcl8.4
> port compiled with WITH_PTHREADS=YES on FreeBSD 5.4. I'm using the
> current CVS version, but the results are the same with the 1.2 tarball.
>
> $ ./configure --prefix=/home/dp --with-tcl=/usr/local/lib/tcl8.4/ --with-
> tclinclude=/usr/local/include/tcl8.4/ --with-
> tclpackage=/usr/local/lib/tcl8.4/ --with-curlprefix=/usr/local
>
> Everything built, but any attempt at using 'port' resulted in errors that
> it could not find Pextlib:
>
> $ /home/dp/bin/port help
> can't find package Pextlib 1.0
>     while executing
> "package_native require Pextlib 1.0"
>     ("eval" body line 1)
>     invoked from within
> "eval package_native $args"
>     (procedure "package" line 14)
>     invoked from within
> "package require Pextlib 1.0"
>     (procedure "dportinit" line 310)
>     invoked from within
> "dportinit ui_options global_options global_variations"
> Error: /home/dp/bin/port: Failed to initialize ports system, can't find
> package Pextlib 1.0
>
> Some digging led me to try the individual pextlib test within base, but
> that failed too:
>
> $ gmake test
> /usr/local/bin/tclsh8.4 tests/curl.tcl Pextlib.so
> couldn't load file "Pextlib.so": Shared object "Pextlib.so" not found,
> required by "tclsh8.4"
>     while executing
> "load $pextlibname"
>     (procedure "main" line 2)
>     invoked from within
> "main $argv"
>     (file "tests/curl.tcl" line 54)
> gmake: *** [test] Error 1
>
> It looks like the shared library handling might be to blame. I tried to
> set a useful environment variable:
>
> $ export LD_LIBRARY_PATH=.:$HOME/darwinports/base/src/pextlib1.0/
> $ gmake test/usr/local/bin/tclsh8.4 tests/curl.tcl Pextlib.so
> couldn't load file "Pextlib.so": ./Pextlib.so: Undefined symbol
> "curl_easy_getinfo"
>     while executing
> "load $pextlibname"
>     (procedure "main" line 2)
>     invoked from within
> "main $argv"
>     (file "tests/curl.tcl" line 54)
> gmake: *** [test] Error 1
> $ ldd Pextlib.so
> Pextlib.so:
>         libreadline.so.5 => /lib/libreadline.so.5 (0x28164000)
>         libmd.so.2 => /lib/libmd.so.2 (0x28190000)
>         libncurses.so.5 => /lib/libncurses.so.5 (0x2819a000)
>
> This looks like the shared library isn't liked with libcurl. Also, the
> installation process didn't do whatever might be needed to get the extra
> tcl packages working with the port command. I verified that things were
> installed into the same relative locations on Mac OS X:
>
> $ ls /usr/local/lib/tcl8.4/darwinports1.0/
> Darwinports.so                  darwinports_fastload.tcl
> darwinports.tcl                 darwinports_index.tcl
> darwinports_autoconf.tcl        pkgIndex.tcl
> darwinports_dlist.tcl
> $ ls /home/dp/share/darwinports/Tcl/
> package1.0/     pextlib1.0/     port1.0/        registry1.0/
> thread2.6/
>
> Am I missing something extra that might be needed as part of the Tcl
> configuration?

New description:

 Following application of the patches mentioned in BUG #6800 I managed to
 DarwinPorts compiled on FreeBSD. Unfortunately, I still cannot get it to
 run properly due to problems with Pextlib. I tried a couple approaches,
 but I'm wondering whether this is something I'm not doing due to a lack of
 familiarity with tcl or if it's a larger problem. I have the tcl8.4 port
 compiled with WITH_PTHREADS=YES on FreeBSD 5.4. I'm using the current CVS
 version, but the results are the same with the 1.2 tarball.

 {{{
 $ ./configure --prefix=/home/dp --with-tcl=/usr/local/lib/tcl8.4/ --with-
 tclinclude=/usr/local/include/tcl8.4/ --with-
 tclpackage=/usr/local/lib/tcl8.4/ --with-curlprefix=/usr/local
 }}}

 Everything built, but any attempt at using 'port' resulted in errors that
 it could not find Pextlib:

 {{{
 $ /home/dp/bin/port help
 can't find package Pextlib 1.0
     while executing
 "package_native require Pextlib 1.0"
     ("eval" body line 1)
     invoked from within
 "eval package_native $args"
     (procedure "package" line 14)
     invoked from within
 "package require Pextlib 1.0"
     (procedure "dportinit" line 310)
     invoked from within
 "dportinit ui_options global_options global_variations"
 Error: /home/dp/bin/port: Failed to initialize ports system, can't find
 package Pextlib 1.0
 }}}

 Some digging led me to try the individual pextlib test within base, but
 that failed too:

 {{{
 $ gmake test
 /usr/local/bin/tclsh8.4 tests/curl.tcl Pextlib.so
 couldn't load file "Pextlib.so": Shared object "Pextlib.so" not found,
 required by "tclsh8.4"
     while executing
 "load $pextlibname"
     (procedure "main" line 2)
     invoked from within
 "main $argv"
     (file "tests/curl.tcl" line 54)
 gmake: *** [test] Error 1
 }}}

 It looks like the shared library handling might be to blame. I tried to
 set a useful environment variable:

 {{{
 $ export LD_LIBRARY_PATH=.:$HOME/darwinports/base/src/pextlib1.0/
 $ gmake test/usr/local/bin/tclsh8.4 tests/curl.tcl Pextlib.so
 couldn't load file "Pextlib.so": ./Pextlib.so: Undefined symbol
 "curl_easy_getinfo"
     while executing
 "load $pextlibname"
     (procedure "main" line 2)
     invoked from within
 "main $argv"
     (file "tests/curl.tcl" line 54)
 gmake: *** [test] Error 1
 $ ldd Pextlib.so
 Pextlib.so:
         libreadline.so.5 => /lib/libreadline.so.5 (0x28164000)
         libmd.so.2 => /lib/libmd.so.2 (0x28190000)
         libncurses.so.5 => /lib/libncurses.so.5 (0x2819a000)
 }}}

 This looks like the shared library isn't liked with libcurl. Also, the
 installation process didn't do whatever might be needed to get the extra
 tcl packages working with the port command. I verified that things were
 installed into the same relative locations on Mac OS X:

 {{{
 $ ls /usr/local/lib/tcl8.4/darwinports1.0/
 Darwinports.so                  darwinports_fastload.tcl
 darwinports.tcl                 darwinports_index.tcl
 darwinports_autoconf.tcl        pkgIndex.tcl
 darwinports_dlist.tcl
 $ ls /home/dp/share/darwinports/Tcl/
 package1.0/     pextlib1.0/     port1.0/        registry1.0/    thread2.6/
 }}}

 Am I missing something extra that might be needed as part of the Tcl
 configuration?

-- 
Ticket URL: <http://trac.macosforge.org/projects/macports/ticket/6804#comment:6>
MacPorts </projects/macports>
Ports system for Mac OS


More information about the macports-tickets mailing list