<pre style='margin:0'>
Chris Jones (cjones051073) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/59fab5b78746b9531ab7caac5b8267cdf98c9222">https://github.com/macports/macports-ports/commit/59fab5b78746b9531ab7caac5b8267cdf98c9222</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 59fab5b7874 ghc: Bugfix
</span>59fab5b7874 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 59fab5b78746b9531ab7caac5b8267cdf98c9222
</span>Author: Steven Thomas Smith <s.t.smith@ieee.org>
AuthorDate: Tue Apr 6 12:59:30 2021 -0400

<span style='display:block; white-space:pre;color:#404040;'>    ghc: Bugfix
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    Fixes:
</span><span style='display:block; white-space:pre;color:#404040;'>    * https://gitlab.haskell.org/ghc/ghc/-/issues/19646
</span><span style='display:block; white-space:pre;color:#404040;'>    * https://gitlab.haskell.org/ghc/ghc/-/issues/19655
</span>---
 lang/ghc/Portfile                    | 91 +++++++++++++++++++++++++++++-------
 lang/ghc/files/patch-aclocal.m4.diff | 11 +++++
 2 files changed, 84 insertions(+), 18 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/ghc/Portfile b/lang/ghc/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 7d802bab503..183651d967d 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/ghc/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/ghc/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -5,7 +5,7 @@ PortGroup           gpg_verify 1.0
</span> 
 name                ghc
 version             8.10.4
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            1
</span> categories          lang haskell
 maintainers         {ieee.org:s.t.smith @essandess} openmaintainer
 license             BSD
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -31,7 +31,10 @@ homepage            http://haskell.org/${name}
</span> 
 # Bootstrapped ghc is the default build
 variant prebuilt \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    description {Do not bootstrap ghc; install the pre-built binary.} {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    description {Do not bootstrap ghc; install the pre-built binary.} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # https://gitlab.haskell.org/ghc/ghc/-/issues/19646
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set workpath_destdir_pattern /Users/builder/Desktop/builds
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span> 
 # https://www.haskell.org/ghcup/
 # https://gitlab.haskell.org/haskell/ghcup/blob/master/README.md#manual-install
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -81,13 +84,43 @@ if {[option gpg_verify.use_gpg_verification]} {
</span> extract.only        ${distname}-x86_64-apple-darwin${extract.suffix} \
                     ${distname}-testsuite${extract.suffix}
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # use these to specify python versions, python3 required
<span style='display:block; white-space:pre;background:#ffe0e0;'>-set python3_version 3.8
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set python3_version_nickname \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    [join [lrange [split ${python3_version} .] 0 1] {}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# use ${prefix}/var/macports/sources/rsync.macports.org/macports/release/tarballs/ports/_resources/port1.0/group/python-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set python3_version 39
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set python3_branch [string index ${python3_version} 0].[string range ${python3_version} 1 end]
</span> 
 set srcpath ${workpath}/src
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# get the objdump rpath names that match ${workpath} in the binary
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc get_workpath_list { binname workpath_destdir_pattern } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return [exec bash -c "otool -l \"${binname}\" 2>/dev/null \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        | grep -E -A 2 -e '\[\[:space:]]+cmd\[\[:space:]]+LC_RPATH' \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        | grep -E -e '\[\[:space:]]+path\[\[:space:]]+' \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        | grep -E -o -e '(${workpath_destdir_pattern}\[^ ]+)' || true"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# fix ${workpath} rpath dirs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc fix_workpath_rpath { binname workpath_destdir_pattern libdir_glob rpath_re } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global destroot
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set workpath_list \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        [get_workpath_list ${binname} ${workpath_destdir_pattern}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach path [lreverse ${workpath_list}] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        system "install_name_tool -delete_rpath \"${path}\" \"${binname}\" || true"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach rpath [exec bash -c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        "otool -L \"${binname}\" | grep -E -o -e '${rpath_re}' || true"] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set libname [strsed ${rpath} "s|^@rpath/||"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        set libpath [glob -nocomplain "${destroot}${libdir_glob}/${libname}"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if { ${libpath} ne "" } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set libprefixpath \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                [strsed [file dirname ${libpath}] "s|${destroot}||"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            system "install_name_tool -add_rpath \"${libprefixpath}\" \"${binname}\" || true"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # Note: ghc has DESTDIR; however, specifying --prefix=${prefix} installs
 # binaries into ${prefix}, not DESTDIR.  Work around this by setting
 # --prefix=${destroot}${prefix} and not setting DESTDIR
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -117,10 +150,12 @@ if { [variant_isset "prebuilt"] } {
</span>                     port:alex \
                     port:autoconf \
                     port:automake \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:bash \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:cctools \
</span>                     port:happy \
                     port:HsColour \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    port:python${python3_version_nickname} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    port:py${python3_version_nickname}-sphinx \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:python${python3_version} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    port:py${python3_version}-sphinx \
</span>                     port:texlive \
                     port:texlive-fonts-extra \
                     port:texlive-fonts-recommended \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -162,7 +197,7 @@ if { [variant_isset "prebuilt"] } {
</span>     # add the bootstrap binary and the sphinx-build binary to PATH
     configure.env-append \
         GHC=${bootstrap_dir}/bin/ghc \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        "PATH=$env(PATH):${bootstrap_dir}/bin:${frameworks_dir}/Python.framework/Versions/${python3_version}/bin"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        "PATH=$env(PATH):${bootstrap_dir}/bin:${frameworks_dir}/Python.framework/Versions/${python3_branch}/bin"
</span> 
     pre-configure {
         xinstall -m 0755 -d ${bootstrap_dir}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -170,7 +205,7 @@ if { [variant_isset "prebuilt"] } {
</span> 
     # the PATH environment must provide the bootstrap path
     build.env \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        "PATH=$env(PATH):${bootstrap_dir}/bin:${frameworks_dir}/Python.framework/Versions/${python3_version}/bin"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        "PATH=$env(PATH):${bootstrap_dir}/bin:${frameworks_dir}/Python.framework/Versions/${python3_branch}/bin"
</span> 
     post-build {
         # bootstrap build/destroot from ${distname}-src${extract.suffix}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -178,8 +213,8 @@ if { [variant_isset "prebuilt"] } {
</span>         use_parallel_build yes
 
         # extract
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        extract.dir  ${srcpath}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        extract.only ${distname}-src${extract.suffix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        extract.dir     ${srcpath}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        extract.only    ${distname}-src${extract.suffix}
</span>         portextract::extract_main
 
         # fix DejaVu texlive fonts names, e.g. "\setmonofont{DejaVu Sans Mono}"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -199,20 +234,23 @@ if { [variant_isset "prebuilt"] } {
</span>             ${srcpath}/${distname}/boot \
             ${srcpath}/${distname}/utils/checkUniques/check-uniques.py \
             " {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            reinplace -E "s|^(#!/usr/bin/env python)3|\\1${python3_version}|" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            reinplace -E "s|^(#!/usr/bin/env python)3|\\1${python3_branch}|" \
</span>                 ${f}
         }
 
         # see https://trac.macports.org/wiki/UsingTheRightCompiler
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        configure.env-append CC=${configure.cc}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        build.env-append     CC=${configure.cc} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                             CXX=${configure.cxx}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        configure.env-append    CC=${configure.cc}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        build.env-append        CC=${configure.cc} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                CXX=${configure.cxx}
</span>         # diff -Naur ghc ghc-patched | sed -E -e 's/ghc(-patched)?\//.\//g' > patch-gmp-ghc.mk.diff
         system -W ${srcpath}/${distname} "patch -p0 < ${filespath}/patch-gmp-ghc.mk.diff"
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        # https://gitlab.haskell.org/ghc/ghc/-/issues/19655
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        # diff -Naur aclocal.m4 aclocal.m4.macports | sed -E -e 's|.macports||' > patch-aclocal.m4.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        system -W ${srcpath}/${distname} "patch -p0 < ${filespath}/patch-aclocal.m4.diff"
</span> 
         system -W ${srcpath}/${distname} \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            "export ${configure.env} ;\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            ./boot"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "export ${configure.env} ;\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ./boot"
</span> 
         # configure
         # install the final compiler to destroot
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -243,6 +281,23 @@ destroot {
</span>     xinstall -W ${filespath} -m 0644 ./ghci.conf ${destroot}${prefix}/etc
 }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://gitlab.haskell.org/ghc/ghc/-/issues/19646
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set workpath_destdir_pattern ${workpath}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # fix rpath searches
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach f [concat \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        [glob -type f ${destroot}${prefix}/lib/${name}-${version}/bin/*] \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        [glob -type f ${destroot}${prefix}/lib/${name}-${version}/*/*.dylib]] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[file executable ${f}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            || [string match *.dylib ${f}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            fix_workpath_rpath ${f} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ${workpath_destdir_pattern} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                ${prefix}/lib/${name}-${version}/* \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                {@rpath/lib.+\.dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> post-destroot {
     # delete any destroot path appearing in text files
     fs-traverse f ${destroot}${prefix} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -260,7 +315,7 @@ post-activate {
</span> 
 pre-test {
     test.env-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        "PATH=$env(PATH):${bootstrap_dir}/bin:${frameworks_dir}/Python.framework/Versions/${python3_version}/bin"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        "PATH=$env(PATH):${bootstrap_dir}/bin:${frameworks_dir}/Python.framework/Versions/${python3_branch}/bin"
</span> }
 
 test.run            yes
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/ghc/files/patch-aclocal.m4.diff b/lang/ghc/files/patch-aclocal.m4.diff
</span>new file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 00000000000..3f862bd78ce
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>--- /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/ghc/files/patch-aclocal.m4.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -0,0 +1,11 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- aclocal.m4     2021-04-06 08:29:01.000000000 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ aclocal.m4     2021-04-06 08:30:39.000000000 -0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -653,7 +653,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     CPPFLAGS="$$3"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     unset ac_cv_prog_cc_c99
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     dnl perform detection
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-    _AC_PROG_CC_C99
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    AC_PROG_CC_C99
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     fp_cc_c99="$ac_cv_prog_cc_c99"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     case "x$ac_cv_prog_cc_c99" in
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       x)   ;; # noop
</span></pre><pre style='margin:0'>

</pre>