<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/1e767cc1afb7c30644aa80928040b23011195b2b">https://github.com/macports/macports-ports/commit/1e767cc1afb7c30644aa80928040b23011195b2b</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 1e767cc1afb ihaskell: Update to latest commit, default to Python39
</span>1e767cc1afb is described below
<span style='display:block; white-space:pre;color:#808000;'>commit 1e767cc1afb7c30644aa80928040b23011195b2b
</span>Author: Steven Thomas Smith <s.t.smith@ieee.org>
AuthorDate: Sun Apr 4 07:37:08 2021 -0400
<span style='display:block; white-space:pre;color:#404040;'> ihaskell: Update to latest commit, default to Python39
</span>---
devel/ihaskell/Portfile | 109 +++++++++++++++++++++++++++++++++++-------------
1 file changed, 79 insertions(+), 30 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/ihaskell/Portfile b/devel/ihaskell/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 9e10188b72e..228b9c7f2ab 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/ihaskell/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/ihaskell/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4,9 +4,10 @@ PortSystem 1.0
</span> PortGroup github 1.0
PortGroup haskell_stack 1.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-github.setup gibiansky IHaskell e07b198f07d7dc7a12863f8507439ae3834947e4
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+github.setup gibiansky IHaskell 0f1262d3e710518fd734fbda6f2eba33e476836b
</span> name [string tolower ${github.project}]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-version 2021.01.28
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# current version in https://github.com/gibiansky/IHaskell/blob/master/ihaskell.cabal
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+version 20210228
</span> revision 0
categories devel haskell
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -26,14 +27,14 @@ long_description IHaskell is a kernel for the Jupyter project, \
</span> wiki also has more extensive documentation of \
IHaskell features.
<span style='display:block; white-space:pre;background:#ffe0e0;'>-checksums rmd160 c0301fb9a4caafc57ac8c81246418b570b4b6fb1 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- sha256 0a00e452a9b9ce0dc18c8ef899b849069633d1498cfcdf78c89666f0006a2c96 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- size 760166
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+checksums rmd160 734c015d8220dfed4ee8d7555c8d78d06f6a7e2d \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ sha256 c4c49cddb3befef47dd3c8b4b786445f8dbc2ad44c1fa12194876b29f9e4aade \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ size 760265
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# use these to specify python versions, python3 required
</span><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 these to specify python versions, python3 required
</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>
# See https://github.com/gibiansky/IHaskell#mac,
# https://github.com/gibiansky/IHaskell/blob/master/requirements.txt
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -41,32 +42,33 @@ depends_lib-append \
</span> path:lib/pkgconfig/pango.pc:pango \
port:ghc \
port:libmagic \
<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}-cairo \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:py${python3_version_nickname}-ipykernel \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:py${python3_version_nickname}-ipywidgets \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:py${python3_version_nickname}-jupyter \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:py${python3_version_nickname}-jupyter_client \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:py${python3_version_nickname}-jupyter_core \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:py${python3_version_nickname}-magic \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:py${python3_version_nickname}-nbformat \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:py${python3_version_nickname}-pkgconfig \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:py${python3_version_nickname}-widgetsnbextension \
</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}-cairo \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${python3_version}-ipykernel \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${python3_version}-ipywidgets \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${python3_version}-jupyter \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${python3_version}-jupyter_client \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${python3_version}-jupyter_core \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${python3_version}-magic \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${python3_version}-nbformat \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${python3_version}-pkgconfig \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:py${python3_version}-widgetsnbextension \
</span> port:zmq
haskell_stack.system_ghc \
yes
# relative paths to ${prefix}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+set ihaskell_libdir ${prefix}/lib/${name}
</span> set ihaskell_datadir \
share/${name}
set jupyter_dir share/jupyter
<span style='display:block; white-space:pre;background:#ffe0e0;'>-set hlint_datadir \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- share/hlint
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set hlint_datadir share/hlint
</span>
post-extract {
xinstall -m 0755 -d \
"[option haskell_stack.stack_root]" \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${destroot}${ihaskell_libdir} \
</span> ${destroot}${prefix}/${ihaskell_datadir}/html \
${destroot}${prefix}/${jupyter_dir}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -100,17 +102,56 @@ extra-include-dirs:\\
</span> ${worksrcpath}/src/Paths_${name}.hs
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# no jupyter_select yet, so hack PATH to find `which jupyter`:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# no jupyter_select yet, so hack PATH to find `which jupyter`:
</span> # https://trac.macports.org/ticket/50608
# note: this command does not change the destroot PATH environment, so export
# PATH explicitly in the necessary system command below
destroot.env-append \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- "PATH=$env(PATH):${frameworks_dir}/Python.framework/Versions/${python3_version}/bin" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "PATH=$env(PATH):${frameworks_dir}/Python.framework/Versions/${python3_branch}/bin" \
</span> ${name}_datadir=${destroot}${prefix}/${ihaskell_datadir}
<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 } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global workpath
</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}\[^ ]+)' || 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;'>+# install the DAG of shared libraries into ${libdir}, delete ${workpath} dirs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc shared_library_chase { binname libdir 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 [get_workpath_list ${binname}]
</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}\""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ system "install_name_tool -add_rpath \"${libdir}\" \"${binname}\""
</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 ${libdir}/${libname}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set builtlib {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach path ${workpath_list} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { [file exists ${path}/${libname}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ && [file isfile ${path}/${libname}] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set builtlib ${path}/${libname}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ break
</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;'>+ if { ${builtlib} ne ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ && ![file exists ${destroot}${libpath}] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -m 0644 ${builtlib} ${destroot}${libpath}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ shared_library_chase \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${destroot}${libpath} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${libdir} ${rpath_re}
</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 {
# install the data-files into destroot (see ${name}.cabal)
<span style='display:block; white-space:pre;background:#ffe0e0;'>- fs-traverse f ${worksrcpath}/.stack-work {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ fs-traverse f ${worksrcpath}/.stack-work/install {
</span> if { [file isfile ${f}] } {
foreach datafile {
html/kernel.js
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -123,17 +164,25 @@ post-destroot {
</span> }
}
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # run ihaskell to install the IPython files into destroot
system -W ${worksrcpath} \
<span style='display:block; white-space:pre;background:#ffe0e0;'>- "export ${destroot.env} ; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "env ${destroot.env} \
</span> ${destroot}${prefix}/bin/ihaskell install \
--prefix=${destroot}${prefix}"
<span style='display:block; white-space:pre;background:#ffe0e0;'>- # delete any destroot path appearing in text files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ shared_library_chase \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${destroot}${prefix}/bin/ihaskell \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${ihaskell_libdir} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {@rpath/libHS.+\.dylib}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # delete any destroot path appearing in text or json files
</span> fs-traverse f ${destroot}${prefix} {
if {[file isfile ${f}]} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {[string match "text/*" [lindex [exec /usr/bin/file --mime-type ${f}] end]]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set file_mime_type \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ [lindex [exec /usr/bin/file --mime-type ${f}] end]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {[string match "text/*" ${file_mime_type}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ || [string match "application/json" ${file_mime_type}]} {
</span> reinplace -q "s|${destroot}||g" ${f}
}
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -148,5 +197,5 @@ The environment variable `hlint_datadir` must be set before running the
</span> Jupyter notebook (due to a Cabal path issue):
export hlint_datadir=${prefix}/${hlint_datadir}
<span style='display:block; white-space:pre;background:#ffe0e0;'>- jupyter-${python3_version} notebook-${python3_version}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ jupyter-${python3_branch} notebook-${python3_branch}
</span> "
</pre><pre style='margin:0'>
</pre>