[MacPorts] #25450: Ports fail to fetch from Japanese ftp mirror

MacPorts noreply at macports.org
Fri Dec 2 04:53:05 PST 2011


#25450: Ports fail to fetch from Japanese ftp mirror
----------------------------------+-----------------------------------------
  Reporter:  a.lathrop@…          |       Owner:  macports-dev@…           
      Type:  defect               |      Status:  reopened                 
  Priority:  Normal               |   Milestone:                           
 Component:  base                 |     Version:  1.9.1                    
Resolution:                       |    Keywords:  fetch                    
      Port:  gsl, gettext         |  
----------------------------------+-----------------------------------------

Comment(by florian@…):

 Here are some hints how to resolve this problem:

 1) I traced down the problem to a buggy libcurl (7.19.7) which hangs on
 the call of select() in function Curl_socket_ready(). This is reproducible
 with the steps outlined in my previous post. This is the backtrace:
 {{{
 #0  0x00007fff85e9d932 in select$DARWIN_EXTSN ()
 #1  0x0000000100068bbd in Curl_socket_ready ()
 #2  0x000000010003a9f2 in ftp_easy_statemach (conn=0x100800408) at
 ftp.c:3056
 #3  0x000000010003ad28 in ftp_connect (conn=0x100800408,
 done=0x7fff5fbfecee) at ftp.c:3186
 #4  0x0000000100044cb5 in Curl_protocol_connect (conn=0x100800408,
 protocol_done=0x7fff5fbfecee) at url.c:3070
 #5  0x0000000100047ea8 in setup_conn (conn=0x100800408,
 hostaddr=0x100115338, protocol_done=0x7fff5fbfecee) at url.c:4711
 #6  0x0000000100048024 in Curl_connect (data=0x100803c08,
 in_connect=0x7fff5fbfed20, asyncp=0x7fff5fbfecef,
 protocol_done=0x7fff5fbfecee) at url.c:4787
 #7  0x0000000100059d5f in connect_host (data=0x100803c08,
 conn=0x7fff5fbfed20) at transfer.c:2488
 #8  0x0000000100059ff7 in Curl_perform (data=0x100803c08) at
 transfer.c:2625
 #9  0x000000010005aa9f in curl_easy_perform (curl=0x100803c08) at
 easy.c:557
 #10 0x000000010000b2ee in operate (config=0x7fff5fbff350, argc=3,
 argv=0x7fff5fbff6a8) at main.c:5002
 #11 0x000000010000bcbc in main (argc=3, argv=0x7fff5fbff6a8) at
 main.c:5317
 }}}

 2) Snow Leopard comes with libcurl 7.19.7 so this fails:
 {{{
 http_proxy=0.0.0.0:0
 FTP_PROXY=127.0.0.1:3128
 /usr/bin/curl -v
 ftp://ftp.infradead.org/pub/openconnect/openconnect-3.15.tar.gz >
 /dev/null
 }}}

 3) The bug is apparently fixed in the libcurl that the curl port installs.
 So the macport installed curl works as expected:
 {{{
 http_proxy=0.0.0.0:0
 FTP_PROXY=127.0.0.1:3128
 /opt/local/bin/curl -v
 ftp://ftp.infradead.org/pub/openconnect/openconnect-3.15.tar.gz >
 /dev/null
 }}}

 4) '''port fetch''' calls ''curl fetch'' from '''Pextlib''', however,
 Pextlib is linked against the buggy libcurl that comes with Snow Leopard:
 {{{
 otool -L /opt/local/share/macports/Tcl/pextlib1.0/Pextlib.dylib
 /opt/local/share/macports/Tcl/pextlib1.0/Pextlib.dylib:
         Pextlib.dylib (compatibility version 0.0.0, current version 0.0.0)
         /usr/lib/libcurl.4.dylib (compatibility version 6.0.0, current
 version 6.1.0)
         /usr/lib/libedit.2.dylib (compatibility version 2.0.0, current
 version 2.11.0)
         /usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
 version 125.2.11)
 }}}

 5) '''Conclusion''': The easiest fix would be to link Pextlib against the
 libcurl (currently 7.23.1) from macports and not rely on a 2 years old
 libcurl that comes with the system. The current version includes lots of
 bug fixes and probably several known security vulnerabilities. So I see no
 point in using the old one.

-- 
Ticket URL: <https://trac.macports.org/ticket/25450#comment:7>
MacPorts <http://www.macports.org/>
Ports system for Mac OS


More information about the macports-tickets mailing list