<pre style='margin:0'>
Christopher Nielsen (mascguy) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/e0d3c6d2e7b8cba1b7a317231939266fd65bba3b">https://github.com/macports/macports-ports/commit/e0d3c6d2e7b8cba1b7a317231939266fd65bba3b</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit e0d3c6d2e7b8cba1b7a317231939266fd65bba3b
</span>Author: Steven Thomas Smith <s.t.smith@ieee.org>
AuthorDate: Sun Sep 18 15:26:40 2022 -0400

<span style='display:block; white-space:pre;color:#404040;'>    happy: Bugfix
</span><span style='display:block; white-space:pre;color:#404040;'>    * Addresses broken datadir issue: https://github.com/haskell/cabal/issues/3586
</span>---
 devel/happy/Portfile | 96 +++++++++++++++++++++++++++++++++-------------------
 1 file changed, 62 insertions(+), 34 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/happy/Portfile b/devel/happy/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index b077d37a185..b3178acf19c 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/happy/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/happy/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -4,7 +4,7 @@ PortSystem          1.0
</span> 
 name                happy
 version             1.20.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            2
</span> categories          devel haskell
 maintainers         nomaintainer
 license             GPL-3
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -23,48 +23,49 @@ checksums           rmd160  6132dd3496fc22363d09dc7e307d93f779bfdc3e \
</span>                     sha256  3b1d3a8f93a2723b554d9f07b2cd136be1a7b2fcab1855b12b7aab5cbac8868c \
                     size    184515
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# relative paths to ${prefix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set happy_datadir   share/${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set build_store_root        {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set build_store_dirname     {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set build_happy_datadir     {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Fix for cabal data-files hardcoded path in binary
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# See:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/commercialhaskell/stack/issues/848
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/commercialhaskell/stack/issues/4857
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/haskell/cabal/issues/462
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/haskell/cabal/issues/3586
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-extract {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    xinstall -m 0644 -W ${worksrcpath} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ${filespath}/Paths_NAME.hs ./src/Paths_${name}.hs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace "s|@PREFIX@|${prefix}|g" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ${worksrcpath}/src/Paths_${name}.hs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace "s|@NAME@|${name}|g" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ${worksrcpath}/src/Paths_${name}.hs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    reinplace -E "s|(Version\[\[:space:\]\]+)\\\[\[\[:digit:\]\]+(,\[\[:digit:\]\]+){1,4}\\\]|\\1\[[join [split ${version} .] ,]\]|" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ${worksrcpath}/src/Paths_${name}.hs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> variant stack \
     description {Use stack to build.} {}
 
 if { [variant_isset "stack"] } {
     PortGroup       haskell_stack 1.0
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    # relative paths to ${prefix}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    set happy_datadir   share/${name}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span>     post-extract {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        xinstall -m 0755 -d \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            "[option haskell_stack.stack_root]" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            ${destroot}${prefix}/${happy_datadir}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # Fix for cabal data-files hardcoded path in binary
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # See:
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # https://github.com/commercialhaskell/stack/issues/848
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # https://github.com/commercialhaskell/stack/issues/4857
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # https://github.com/haskell/cabal/issues/462
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # https://github.com/haskell/cabal/issues/3586
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        xinstall -m 0644 -W ${worksrcpath} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            ${filespath}/Paths_NAME.hs ./src/Paths_${name}.hs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        reinplace "s|@PREFIX@|${prefix}|g" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            ${worksrcpath}/src/Paths_${name}.hs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        reinplace "s|@NAME@|${name}|g" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            ${worksrcpath}/src/Paths_${name}.hs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        reinplace -E "s|(Version\[\[:space:\]\]+)\\\[\[\[:digit:\]\]+(,\[\[:digit:\]\]+){1,4}\\\]|\\1\[[join [split ${version} .] ,]\]|" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            ${worksrcpath}/src/Paths_${name}.hs
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    post-destroot {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        # install cabal data-files
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        fs-traverse f ${worksrcpath}/.stack-work {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            if { [file isdirectory ${f}]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                 && [file tail ${f}] eq "${name}-${version}" } {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                set stack_happy_datadir ${f}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                xinstall -m 0644 {*}[glob ${stack_happy_datadir}/*] \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    ${destroot}${prefix}/${happy_datadir}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[geteuid] == 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            xinstall -o ${macportsuser} -d \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "[option haskell_stack.stack_root]"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            xinstall -d \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "[option haskell_stack.stack_root]"
</span>         }
     }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set build_store_root    ${worksrcpath}/.stack-work
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set build_store_dirname "${name}-${version}"
</span> } else {
     PortGroup       haskell_cabal 1.0
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -76,4 +77,31 @@ if { [variant_isset "stack"] } {
</span>     }
     default_variants-append \
                     +haskell_cabal_use_prebuilt
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set build_store_root    ${haskell_cabal.cabal_root}/store
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set build_store_dirname share
</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;'>+post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[geteuid] == 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        xinstall -o ${macportsuser} -d \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ${destroot}${prefix}/${happy_datadir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        xinstall -d ${destroot}${prefix}/${happy_datadir}
</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;'>+    # find cabal data-files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    fs-traverse f ${build_store_root} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if { [file isdirectory ${f}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            && [file tail ${f}] eq ${build_store_dirname}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            set build_happy_datadir ${f}
</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;'>+    foreach f [glob ${build_happy_datadir}/*] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        if {[file isfile ${f}]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            xinstall -m 0644 ${f} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ${destroot}${prefix}/${happy_datadir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span> }
</pre><pre style='margin:0'>

</pre>