<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/c9e6cd219bdf415ca329009d0b16f291600f3c4c">https://github.com/macports/macports-ports/commit/c9e6cd219bdf415ca329009d0b16f291600f3c4c</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit c9e6cd219bdf415ca329009d0b16f291600f3c4c
</span>Author: Steven Thomas Smith <s.t.smith@ieee.org>
AuthorDate: Sat Sep 17 23:20:36 2022 -0400

<span style='display:block; white-space:pre;color:#404040;'>    haskell_cabal PG: Bugfix
</span><span style='display:block; white-space:pre;color:#404040;'>    * Fixes:
</span><span style='display:block; white-space:pre;color:#404040;'>      * https://github.com/macports/macports-ports/pull/16115#issuecomment-1250137066
</span><span style='display:block; white-space:pre;color:#404040;'>      * https://github.com/macports/macports-ports/pull/16141#discussion_r973626299
</span><span style='display:block; white-space:pre;color:#404040;'>      * https://github.com/macports/macports-ports/pull/16141#discussion_r973616866
</span>---
 _resources/port1.0/group/haskell_cabal-1.0.tcl | 216 ++++++++++++++++---------
 1 file changed, 137 insertions(+), 79 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/_resources/port1.0/group/haskell_cabal-1.0.tcl b/_resources/port1.0/group/haskell_cabal-1.0.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index cacb13cea02..dfa56f1b8c0 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/_resources/port1.0/group/haskell_cabal-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/_resources/port1.0/group/haskell_cabal-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -34,10 +34,10 @@ proc haskell_cabal.add_dependencies {} {
</span>             port:ghc
         depends_lib-append \
             port:gmp \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-            port:libiconv \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            port:ncurses \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            port:zlib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            port:libiconv
</span>     }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_build-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        port:gsed
</span> }
 port::register_callback haskell_cabal.add_dependencies
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -50,6 +50,30 @@ proc haskell_cabal.getcabalbin {} {
</span>     }
 }
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+proc haskell_cabal.build_getjobsarg {args} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global build.jobs use_parallel_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {![exists build.jobs] || ![tbool use_parallel_build]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return ""
</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;'>+    set jobs [option build.jobs]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {![string is integer -strict $jobs] || $jobs < 1} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        return ""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return "-j$jobs"
</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;'>+proc haskell_cabal.get_env {} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    global haskell_cabal.cabal_root haskell_cabal.use_prebuilt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set myenv [list CABAL_CONFIG=${haskell_cabal.cabal_root}/config]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[tbool haskell_cabal.use_prebuilt]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        lappend myenv \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    GHC=${haskell_cabal.cabal_root}/bin/ghc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    PATH=${haskell_cabal.cabal_root}/bin:$::env(PATH)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    return $myenv
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> options haskell_cabal.cabal_root
 default haskell_cabal.cabal_root {${workpath}/.home/.cabal}
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -60,57 +84,57 @@ post-extract {
</span>     set cabal_install_version [lindex ${cabal_versions} 0]
     set cabal_library_version [lindex ${cabal_versions} end]
     foreach line [list \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "-- This is the configuration file for the 'cabal' command line tool." \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "--" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "-- The available configuration options are listed below." \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "-- Some of them have default values listed." \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "--" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "-- Lines (like this one) beginning with '--' are comments." \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "-- Be careful with spaces and indentation because they are" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "-- used to indicate layout for nested sections." \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "--" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "-- This config file was generated using the following versions" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "-- of Cabal and cabal-install:" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "-- Cabal library version: ${cabal_library_version}" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "-- cabal-install version: ${cabal_install_version}" \
</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;'>-                      "-- cabal default configuration settings (MacPorts modified):" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "repository hackage.haskell.org" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "  url: https://hackage.haskell.org/" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "  secure: True" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "remote-repo-cache: ${haskell_cabal.cabal_root}/packages" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "world-file: ${haskell_cabal.cabal_root}/world" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "extra-prog-path: ${haskell_cabal.cabal_root}/bin" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "build-summary: ${haskell_cabal.cabal_root}/logs/build.log" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "remote-build-reporting: none" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "jobs: \$ncpus" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "documentation: True" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "doc-index-file: \$htmldir/html/${name}/index.html" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "relocatable: True" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "install-method: copy" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "installdir: ${prefix}/bin" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "logs-dir: [option haskell_cabal.cabal_root]/logs" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "store-dir: [option haskell_cabal.cabal_root]/store" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "install-dirs global" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "  prefix: ${prefix}" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "  bindir: ${prefix}/bin" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "  libdir: ${prefix}/lib" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "  libsubdir: ${name}" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "  dynlibdir: ${prefix}/lib" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "  libexecdir: ${prefix}/libexec" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "  libexecsubdir: ${name}" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "  datadir: ${prefix}/share/${name}" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "  docdir: ${prefix}/share/doc/${name}" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "  htmldir: ${prefix}/share/doc/${name}" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "  haddockdir: \$htmldir" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "  sysconfdir: ${prefix}/etc/${name}" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "program-locations" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                      "  gcc-location: ${configure.cc}" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                     ] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "-- This is the configuration file for the 'cabal' command line tool." \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "--" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "-- The available configuration options are listed below." \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "-- Some of them have default values listed." \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "--" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "-- Lines (like this one) beginning with '--' are comments." \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "-- Be careful with spaces and indentation because they are" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "-- used to indicate layout for nested sections." \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "--" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "-- This config file was generated using the following versions" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "-- of Cabal and cabal-install:" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "-- Cabal library version: ${cabal_library_version}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "-- cabal-install version: ${cabal_install_version}" \
</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;'>+                    "-- cabal default configuration settings (MacPorts modified):" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "repository hackage.haskell.org" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "  url: https://hackage.haskell.org/" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "  secure: True" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "remote-repo-cache: ${haskell_cabal.cabal_root}/packages" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "world-file: ${haskell_cabal.cabal_root}/world" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "extra-prog-path: ${haskell_cabal.cabal_root}/bin" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "build-summary: ${haskell_cabal.cabal_root}/logs/build.log" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "remote-build-reporting: none" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "jobs: \$ncpus" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "documentation: True" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "doc-index-file: \$htmldir/html/${subport}/index.html" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "relocatable: True" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "install-method: copy" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "installdir: ${prefix}/bin" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "logs-dir: [option haskell_cabal.cabal_root]/logs" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "store-dir: [option haskell_cabal.cabal_root]/store" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "install-dirs global" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "  prefix: ${prefix}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "  bindir: ${prefix}/bin" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "  libdir: ${prefix}/lib" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "  libsubdir: ${subport}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "  dynlibdir: ${prefix}/lib" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "  libexecdir: ${prefix}/libexec" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "  libexecsubdir: ${subport}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "  datadir: ${prefix}/share/${subport}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "  docdir: ${prefix}/share/doc/${subport}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "  htmldir: ${prefix}/share/doc/${subport}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "  haddockdir: \$htmldir" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "  sysconfdir: ${prefix}/etc/${subport}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "program-locations" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "  gcc-location: ${configure.cc}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ] {
</span>         puts ${cabal_config_fd} ${line}
     }
     close ${cabal_config_fd}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -123,12 +147,13 @@ options haskell_cabal.bin \
</span>         haskell_cabal.env \
         haskell_cabal.global_flags \
         haskell_cabal.build_dir \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        haskell_cabal.use_prebuilt
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        haskell_cabal.use_prebuilt \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        haskell_cabal.datadir
</span> 
 default haskell_cabal.bin {[haskell_cabal.getcabalbin]}
 
 default haskell_cabal.env \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-        {CABAL_CONFIG=[option haskell_cabal.cabal_root]/config}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        {[haskell_cabal.get_env]}
</span> 
 default haskell_cabal.global_flags \
         {--config-file=[option haskell_cabal.cabal_root]/config}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -138,6 +163,8 @@ default haskell_cabal.build_dir     {${workpath}/dist}
</span> # use to install prebuilt binaries for bootstrapping
 default haskell_cabal.use_prebuilt  {no}
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+default haskell_cabal.datadir       {share/${subport}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> post-extract {
     if {[tbool haskell_cabal.use_prebuilt]} {
         xinstall -d ${haskell_cabal.cabal_root}/bin
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -164,16 +191,8 @@ post-extract {
</span>              runghc\
              runhaskell\
              } {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-             ln -s   ${prefix}/bin/${f}-prebuilt \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                     ${haskell_cabal.cabal_root}/bin/${f}
</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;'>-        haskell_cabal.env-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    "GHC=${haskell_cabal.cabal_root}/bin/ghc" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    "PATH=${haskell_cabal.cabal_root}/bin:$env(PATH)"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        foreach phase {configure build destroot test} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-            ${phase}.env \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    {*}${haskell_cabal.env}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+             ln -s  ${prefix}/bin/${f}-prebuilt \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ${haskell_cabal.cabal_root}/bin/${f}
</span>         }
     }
 }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -199,6 +218,7 @@ default build.post_args     {\
</span>                                 [haskell_cabal.build_getjobsarg]\
                                 --builddir=${haskell_cabal.build_dir}\
                                 --prefix=${destroot}${prefix}\
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                                --enable-relocatable\
</span>                             }
 default build.env           {${haskell_cabal.env}}
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -212,6 +232,7 @@ default destroot.post_args  {\
</span>                                 --builddir=${haskell_cabal.build_dir}\
                                 --installdir=${destroot}${prefix}/bin\
                                 --prefix=${destroot}${prefix}\
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                                --enable-relocatable\
</span>                             }
 default destroot.env        {${haskell_cabal.env}}
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -226,24 +247,61 @@ default test.post_args      {\
</span>                             }
 default test.env            {${haskell_cabal.env}}
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-proc haskell_cabal.build_getjobsarg {args} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    global build.jobs use_parallel_build
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {![exists build.jobs] || ![tbool use_parallel_build]} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        return ""
</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;'>-    set jobs [option build.jobs]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {![string is integer -strict $jobs] || $jobs < 1} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-        return ""
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    }
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-    return "-j$jobs"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> default livecheck.type      {regex}
 default livecheck.url       {https://hackage.haskell.org/package/${name}}
 default livecheck.regex     {"/package/[quotemeta ${name}]-\\\[^/\\\]+/[quotemeta ${name}]-(\\\[^\\\"\\\]+)[quotemeta ${extract.suffix}]"}
 
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# binary sed hack to address unfixed cabal datadir issue:
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# replace hardwired datadir in build directory with path
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# of the same length using repeated /'s
</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-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # find cabal data-files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set build_datadirs {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[file isdirectory ${haskell_cabal.cabal_root}/store]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        fs-traverse f ${haskell_cabal.cabal_root}/store {
</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 {share}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                lappend build_datadirs ${f}
</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;'>+    if {[llength ${build_datadirs}] > 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach binfile [glob -nocomplain ${destroot}${prefix}/bin/*] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {!([file isfile ${binfile}] && [file type ${binfile}] eq {file})} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                continue
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            xinstall -m 0755 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ${binfile} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ${binfile}.slash_hack
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            foreach build_datadir ${build_datadirs} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set extra_slashes \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    [expr [string length ${build_datadir}] - [string length ${prefix}/${haskell_cabal.datadir}]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if {${extra_slashes} >= 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    set slash_hack \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        [string repeat / [expr ${extra_slashes} + 1]]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    set datadir_slash_hack \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        [strsed ${prefix}/${haskell_cabal.datadir} "g|/${haskell_cabal.datadir}\$|${slash_hack}${haskell_cabal.datadir}|"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    set build_datadir_esc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        [strsed ${build_datadir} {g|/|\\/|}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    set datadir_slash_hack_esc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        [strsed ${datadir_slash_hack} {g|/|\\/|}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    system -W ${destroot}${prefix}/bin \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        "gsed -i -e\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            's/${build_datadir_esc}/${datadir_slash_hack_esc}/g'\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            ${binfile}.slash_hack"
</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;'>+            delete  ${binfile}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            xinstall -m 0755 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ${binfile}.slash_hack \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    ${binfile}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            delete  ${binfile}.slash_hack
</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> # Default cabal configuration file with available options
 
 # -- This is the configuration file for the 'cabal' command line tool.
</pre><pre style='margin:0'>

</pre>