#49359: tdom: fix build failure with tcl 8.6 ------------------------+--------------------------------- Reporter: neumann@… | Owner: ryandesign@… Type: defect | Status: assigned Priority: Normal | Milestone: Component: ports | Version: 2.3.4 Resolution: | Keywords: haspatch maintainer Port: tdom | ------------------------+--------------------------------- Comment (by neumann@…): Not sure, what might be special about my installation. I've tried to debug macports and found the following: When NOT using the github portgroup in the Portfile (just using {{{ master_sites https://github.com/downloads/tDOM/tdom" }}} ), the code in "macports/lib/port1.0/portfetch.tcl" uses the following commands (i've added a debug line for the "port fetch" command) {{{ :debug:fetch Executing org.macports.fetch (tDOM) :info:fetch ---> tDOM-0.8.3.tgz doesn't seem to exist in /opt/local/var/macports/distfiles/tDOM :notice:fetch ---> Attempting to fetch tDOM-0.8.3.tgz from http://nue.de.distfiles.macports.org/macports/distfiles/tDOM eval curl fetch --progress ui_progress_download {http://nue.de.distfiles.macports.org/macports/distfiles/tDOM/tDOM-0.8.3.tgz} {/opt/local/var/macports/distfiles/tDOM/tDOM-0.8.3.tgz.TMP} :debug:fetch Privilege de-escalation not attempted as not running as root. :debug:checksum checksum phase started at Sat Oct 24 19:43:27 CEST 2015 .... }}} When using the github portgroup with "github.tarball_from downloads", the port fetch command is {{{ :debug:fetch Executing org.macports.fetch (tDOM) :info:fetch ---> tdom-0.8.3.tgz doesn't seem to exist in /opt/local/var/macports/distfiles/tDOM :notice:fetch ---> Attempting to fetch tdom-0.8.3.tgz from http://nue.de.distfiles.macports.org/macports/distfiles/tDOM eval curl fetch --ignore-ssl-cert --progress ui_progress_download {http://nue.de.distfiles.macports.org/macports/distfiles/tDOM/tdom-0.8.3.tgz} {/opt/local/var/macports/distfiles/tDOM/tdom-0.8.3.tgz.TMP} :debug:fetch Fetching distfile failed: The requested URL returned error: 404 Not Found :notice:fetch ---> Attempting to fetch tdom-0.8.3.tgz from http://lil.fr.distfiles.macports.org/tDOM eval curl fetch --ignore-ssl-cert --progress ui_progress_download {http://lil.fr.distfiles.macports.org/tDOM/tdom-0.8.3.tgz} {/opt/local/var/macports/distfiles/tDOM/tdom-0.8.3.tgz.TMP} :debug:fetch Fetching distfile failed: The requested URL returned error: 404 Not Found ... eval curl fetch --ignore-ssl-cert --progress ui_progress_download {https://github.com/downloads/tDOM/tdom/tdom-0.8.3.tgz} {/opt/local/var/macports/distfiles/tDOM/tdom-0.8.3.tgz.TMP} :debug:fetch Fetching distfile failed: SSL peer handshake failed, the server most likely requires a client certificate to connect }}} So, when not using the github portgroup, the fetch goes to "nue.de.distfiles.macports.org/macports/distfiles/tDOM//tdom-0.8.3.tgz" and NOT to github. Interestingly when using the portgroup "--ignore-ssl- cert" is used, but then the fetch fails. Later the fetch to github fails during handshake, although "--ignore-ssl-cert" is used. I would be curious, if the behavior would be different for you. When looking at the code of portfetch.tcl, i saw some desperate quoting and deprecated code. I would recommend to use the Tcl expand operator as shown in the following patch (not related to the issue). {{{ --- /opt/local/libexec/macports/lib/port1.0/portfetch.tcl-orig 2015-10-24 18:50:00.000000000 +0200 +++ /opt/local/libexec/macports/lib/port1.0/portfetch.tcl 2015-10-24 19:32:05.000000000 +0200 @@ -536,7 +536,7 @@ foreach site $urlmap($url_var) { ui_notice "$UI_PREFIX [format [msgcat::mc "Attempting to fetch %s from %s"] $distfile $site]" set file_url [portfetch::assemble_url $site $distfile] - if {![catch {eval curl fetch $fetch_options {$file_url} {"${distpath}/${distfile}.TMP"}} result] && + if {![catch {curl fetch {*}$fetch_options $file_url "${distpath}/${distfile}.TMP"} result] && ![catch {file rename -force "${distpath}/${distfile}.TMP" "${distpath}/${distfile}"} result]} { set fetched 1 break }}} -- Ticket URL: <https://trac.macports.org/ticket/49359#comment:9> MacPorts <https://www.macports.org/> Ports system for OS X