[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