<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>