<pre style='margin:0'>
Renee Otten (reneeotten) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/fb87b927396caffabd31afefd54d06bd5694b058">https://github.com/macports/macports-ports/commit/fb87b927396caffabd31afefd54d06bd5694b058</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit fb87b927396caffabd31afefd54d06bd5694b058
</span>Author: Steven Thomas Smith <s.t.smith@ieee.org>
AuthorDate: Wed Feb 7 22:00:16 2024 -0500

<span style='display:block; white-space:pre;color:#404040;'>    PG haskell_cabal
</span><span style='display:block; white-space:pre;color:#404040;'>    
</span><span style='display:block; white-space:pre;color:#404040;'>    * Add master_sites
</span><span style='display:block; white-space:pre;color:#404040;'>    * Add installdirs options to build command
</span><span style='display:block; white-space:pre;color:#404040;'>    * Fix binary edits
</span>---
 _resources/port1.0/group/haskell_cabal-1.0.tcl | 105 ++++++++++++++++++-------
 1 file changed, 78 insertions(+), 27 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 0322b386ce9..984b8aaac50 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;'>@@ -44,6 +44,7 @@ proc haskell_cabal.add_dependencies {} {
</span>     depends_build-append \
         port:cctools \
         port:file \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        port:grep \
</span>         port:gsed \
         path:bin/openssl:openssl
 }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -134,11 +135,11 @@ post-patch {
</span>                     "  dynlibdir: ${prefix}/lib" \
                     "  libexecdir: ${prefix}/libexec" \
                     "  libexecsubdir: ${subport}" \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    "  datadir: ${prefix}/share/${subport}" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    "  docdir: ${prefix}/share/doc/${subport}" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    "  htmldir: ${prefix}/share/doc/${subport}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "  datadir: ${prefix}/${haskell_cabal.datadir}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "  docdir: ${prefix}/${haskell_cabal.docdir}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "  htmldir: ${prefix}/${haskell_cabal.htmldir}" \
</span>                     "  haddockdir: \$htmldir" \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    "  sysconfdir: ${prefix}/etc/${subport}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    "  sysconfdir: ${prefix}/${haskell_cabal.sysconfdir}" \
</span>                     "" \
                     "program-locations" \
                     "  gcc-location: ${configure.cc}" \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -156,9 +157,17 @@ options haskell_cabal.bin \
</span>         haskell_cabal.global_flags \
         haskell_cabal.build_dir \
         haskell_cabal.use_prebuilt \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        haskell_cabal.installsubdir \
</span>         haskell_cabal.datadir \
<span style='display:block; white-space:pre;background:#e0ffe0;'>+        haskell_cabal.docdir \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        haskell_cabal.htmldir \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        haskell_cabal.haddockdir \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        haskell_cabal.sysconfdir \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        haskell_cabal.installdir_args \
</span>         haskell_cabal.bindirs
 
<span style='display:block; white-space:pre;background:#e0ffe0;'>+default master_sites    {https://hackage.haskell.org/package/${subport}-${version}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> default haskell_cabal.bin {[haskell_cabal.getcabalbin]}
 
 default haskell_cabal.env \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -172,7 +181,20 @@ 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:#ffe0e0;'>-default haskell_cabal.datadir       {share/${subport}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default haskell_cabal.installsubdir {${subport}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default haskell_cabal.datadir       {share/${haskell_cabal.installsubdir}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default haskell_cabal.docdir        {share/doc/${haskell_cabal.installsubdir}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default haskell_cabal.htmldir       {share/doc/${haskell_cabal.installsubdir}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default haskell_cabal.haddockdir    {share/doc/${haskell_cabal.installsubdir}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default haskell_cabal.sysconfdir    {etc/${haskell_cabal.installsubdir}}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default haskell_cabal.installdir_args {\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    --datadir=${prefix}/${haskell_cabal.datadir}\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    --docdir=${prefix}/${haskell_cabal.docdir}\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    --htmldir=${prefix}/${haskell_cabal.htmldir}\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    --haddockdir=${prefix}/${haskell_cabal.haddockdir}\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    --sysconfdir=${prefix}/${haskell_cabal.sysconfdir}\
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span> 
 default haskell_cabal.bindirs       {${destroot}${prefix}/bin}
 
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -229,6 +251,7 @@ default build.post_args     {\
</span>                                 [haskell_cabal.build_getjobsarg]\
                                 --builddir=${haskell_cabal.build_dir}\
                                 --prefix=${prefix}\
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                                ${haskell_cabal.installdir_args}\
</span>                                 --enable-relocatable\
                             }
 default build.env           {${haskell_cabal.env}}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -242,6 +265,7 @@ default destroot.post_args  {\
</span>                                 [haskell_cabal.build_getjobsarg]\
                                 --builddir=${haskell_cabal.build_dir}\
                                 --installdir=${destroot}${prefix}/bin\
<span style='display:block; white-space:pre;background:#e0ffe0;'>+                                --install-method=copy\
</span>                                 --enable-relocatable\
                                 --overwrite-policy=always\
                             }
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -262,6 +286,8 @@ default livecheck.type      {regex}
</span> 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;'>+set idir_list   {bin etc lib libexec share}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set idir_regexp "^([join ${idir_list} |])\$"
</span> 
 post-destroot {
     # strip binaries
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -288,16 +314,20 @@ post-destroot {
</span>     # of the same length using repeated /'s
     # https://github.com/haskell/cabal/issues/3586
     # find cabal data-files
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    set build_datadirs [list]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    set build_installsubdirs [list]
</span>     if {[file isdirectory ${haskell_cabal.cabal_root}/store]} {
         fs-traverse f ${haskell_cabal.cabal_root}/store {
             if { [file isdirectory ${f}]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                && [file tail ${f}] eq {share}} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                lappend build_datadirs ${f}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                && [regexp -nocase -- ${idir_regexp} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        [file tail ${f}]]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                set sdir [file dirname ${f}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if {${sdir} ni ${build_installsubdirs}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    lappend build_installsubdirs ${sdir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                }
</span>             }
         }
     }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-    if {[llength ${build_datadirs}] > 0} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    if {[llength ${build_installsubdirs}] > 0} {
</span>         foreach bindir ${haskell_cabal.bindirs} {
             foreach binfile [glob -nocomplain ${bindir}/*] {
                 if {!([file isfile ${binfile}]
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -311,28 +341,49 @@ post-destroot {
</span>                 xinstall -m 0755 \
                     ${binfile} \
                     ${binfile}.slash_hack
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                foreach build_datadir ${build_datadirs} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    set extra_slashes \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        [expr {[string length ${build_datadir}] - [string length ${prefix}/${haskell_cabal.datadir}]}]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    if {${extra_slashes} >= 0} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        set slash_hack \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            [string repeat / [expr {${extra_slashes} + 1}]]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        set datadir_slash_hack \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            [strsed ${prefix}/${haskell_cabal.datadir} "g|/${haskell_cabal.datadir}\$|${slash_hack}${haskell_cabal.datadir}|"]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        set build_datadir_esc \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            [strsed ${build_datadir} {g|/|\\/|}]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        set datadir_slash_hack_esc \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            [strsed ${datadir_slash_hack} {g|/|\\/|}]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                        system -W ${bindir} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            "gsed -i -e\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                            's/${build_datadir_esc}/${datadir_slash_hack_esc}/g'\
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                                ${binfile}.slash_hack"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                foreach build_installsubdir ${build_installsubdirs} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    foreach idir ${idir_list} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        set build_idir ${build_installsubdir}/${idir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        if {![string trim [exec sh -c \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            "if LC_ALL='C' ggrep -F -a -c -q -e [shellescape ${build_idir}] \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                [shellescape ${binfile}.slash_hack] 2>/dev/null; \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                then echo '1'; else echo '0'; fi"]]} {
</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;'>+                        switch ${idir} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            bin {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                set replacesubdir \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                    ${idir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            default {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                set replacesubdir \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                    ${idir}/${haskell_cabal.installsubdir}
</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 replacedir \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            ${prefix}/${replacesubdir}
</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_idir}] - [string length ${replacedir}]}]
</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 installsubdir_slash_hack \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                [strsed ${replacedir} "g|/${replacesubdir}\$|${slash_hack}${replacesubdir}|"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            set build_idir_esc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                [strsed ${build_idir} {g|/|\\/|}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            set installsubdir_slash_hack_esc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                                [strsed ${installsubdir_slash_hack} {g|/|\\/|}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            system -W ${bindir} \
</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_idir_esc}/${installsubdir_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>                     }
                 }
                 if {([file size ${binfile}.slash_hack] \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                        == [file size ${binfile}])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    == [file size ${binfile}])
</span>                     && ([exec openssl dgst -ripemd160 ${binfile}.slash_hack] \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                        ne [exec openssl dgst -ripemd160 ${binfile}])} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            ne [exec openssl dgst -ripemd160 ${binfile}])} {
</span>                     # gsed created a different file of the same size
                     delete  ${binfile}
                     xinstall -m 0755 \
</pre><pre style='margin:0'>

</pre>