On Dec 28, 2019, at 02:57, René J.V. Bertin wrote:

> On Friday December 27 2019 21:32:26 Ryan Schmidt wrote:
> 
> Hi,
> 
> Thanks for looking into this!
> 
>> You didn't mention what instructions you're referring to
> 
> Only because there are several threads about this issue on S-E and I was on a 
> different machine when I wrote to the ML.. And you must have seen that this 
> is about a "KDE 5" port, i.e. one from my macstrop tree. I didn't draw 
> attention to *that* because the problem has nothing to do with any specific 
> port in particular ;)

I just mentioned it because when you report a problem, it is useful to provide 
a reproduction recipe and to tell us what you already tried.


>> You can use a different method to fetch the file (for example MacPorts curl 
>> or Safari or another web browser) and put it in the right place on your 
>> system
> 
> That's what I did. The curious thing is that my Mac and Linux MacPorts 
> installs both have this patch to portfetch.tcl :
> 
> {{{
> @@ -567,7 +568,19 @@ proc portfetch::fetchfiles {args} {
>                     set fetched 1
>                     break
>                 } catch {{*} eCode eMessage} {
> -                    ui_debug [msgcat::mc "Fetching distfile failed: %s" 
> $eMessage]
> +                    ui_warn [msgcat::mc "Fetching distfile failed: %s" 
> $eMessage]
> +                    ui_debug "complete command:"
> +                    ui_debug "curl fetch {*}$fetch_options $file_url 
> \"${distpath}/${distfile}.TMP\""
> +                    if {${eMessage} eq "gnutls_handshake() failed: Handshake 
> failed"} {
> +                        if {![catch {system "curl -L $file_url -o 
> \"${distpath}/${distfile}.TMP\""} err]} {
> +                            ui_debug [msgcat::mc "Fetching distfile 
> succeeded via curl"]
> +                            file rename -force "${distpath}/${distfile}.TMP" 
> "${distpath}/${distfile}"
> +                            set fetched 1
> +                            break
> +                        } else {
> +                            ui_warn [msgcat::mc "Fetching distfile failed 
> also via curl: %s" $err]
> +                        }
> +                    }
>                     set lastError $eMessage
>                 } finally {
>                     file delete -force "${distpath}/${distfile}.TMP"
> }}}
> 
> IIRC this is a a snippet I restored back in 2016 for reasons long forgotten.
> 
> As a result I see this on Linux:
> 
> {{{
> --->  Fetching distfiles for kf5-libkcontacts
> DEBUG: Executing proc-pre-org.macports.fetch-fetch-0
> DEBUG: Executing org.macports.fetch (kf5-libkcontacts)
> --->  kcontacts-19.08.3.tar.xz does not exist in 
> /opt/local/var/lnxports/distfiles/kf5-libkcontacts
> --->  Attempting to fetch kcontacts-19.08.3.tar.xz from 
> https://download.kde.org/stable/applications/19.08.3/src
>  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
>                                 Dload  Upload   Total   Spent    Left  Speed
>  0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
> Warning: Fetching distfile failed: gnutls_handshake() failed: Handshake failed
> DEBUG: complete command:
> DEBUG: curl fetch {*}--progress builtin 
> https://download.kde.org/stable/applications/19.08.3/src/kcontacts-19.08.3.tar.xz
>  
> "/opt/local/var/lnxports/distfiles/kf5-libkcontacts/kcontacts-19.08.3.tar.xz.TMP"
> DEBUG: system: curl -L 
> https://download.kde.org/stable/applications/19.08.3/src/kcontacts-19.08.3.tar.xz
>  -o 
> "/opt/local/var/lnxports/distfiles/kf5-libkcontacts/kcontacts-19.08.3.tar.xz.TMP"
>  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
>                                 Dload  Upload   Total   Spent    Left  Speed
> 100   356  100   356    0     0   1186      0 --:--:-- --:--:-- --:--:--  1186
> 100  535k  100  535k    0     0   743k      0 --:--:-- --:--:-- --:--:--  743k
> DEBUG: Fetching distfile succeeded via curl
> DEBUG: Executing proc-post-org.macports.fetch-fetch-0
> }}}
> 
> but don't understand why the fallback doesn't work on Mac. Maybe a different 
> exception is raised there?
> 
> Anyway, I think the fallback makes sense in this kind of situation, and it 
> should handle bootstrap errors gracefully. That is, if port:curl isn't yet 
> installed the system curl will be found.

I don't want to debug any custom changes you've made to MacPorts base.


>> We should do our mirroring on a newer version of macOS, but making that 
>> change to our server infrastructure is nontrivial.
> 
> Heh, is that your way of saying that upgrading the OS isn't as trivial as 
> Apple would like us to believe? :)
> I presume SIP is involved here?

Not at all. The machine that does the mirroring is an Xserve with a hardware 
RAID card, and OS X 10.11 is the last version officially to support that 
machine. I didn't want to risk upgrading to a newer macOS version, since that 
might cause the RAID to stop working, which would break everything else that 
that my MacPorts servers do.

I could set up a separate virtual machine running a newer macOS and have it do 
the fetching and copy the files to the RAID machine. But since most things are 
fetching just fine from 10.11 I haven't tried to do this yet. I expect to get 
around to doing this at the same time that I deploy the new buildbot 2 setup 
but I have no ETA for that.


>> You might want to bring this problem to the attention of whoever runs that 
>> server. They may not realize that the restrictions they've put in place 
>> impact OS versions as recent as OS X 10.11. They may be willing to relax 
>> their restrictions somewhat so that older systems can still connect.
> 
> I can try to do that, I have an idea whom I might contact about that. I don't 
> know if they'll care though: the KF5 Frameworks now require Qt 5.12 which no 
> longer supports OS X 10.11 . The last frameworks release that can be made to 
> build on 10.9 (with older versions for the QML-related ones) is 5.60.0 so 
> it's been quiet on that front for me the last 5 months or so :-/

Reply via email to