<pre style='margin:0'>
Herby Gillot (herbygillot) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/8814c63965c58985331c9f3d96cbd8370394b6a9">https://github.com/macports/macports-ports/commit/8814c63965c58985331c9f3d96cbd8370394b6a9</a></p>
<pre style="white-space: pre; background: #F8F8F8"><span style='display:block; white-space:pre;color:#808000;'>commit 8814c63965c58985331c9f3d96cbd8370394b6a9
</span>Author: Steven Thomas Smith <s.t.smith@ieee.org>
AuthorDate: Sun Feb 18 21:17:43 2024 -0500

<span style='display:block; white-space:pre;color:#404040;'>    PG haskell_stack: strip binaries, minor edits
</span>---
 _resources/port1.0/group/haskell_stack-1.0.tcl | 115 +++++++++++++++++++++++--
 1 file changed, 108 insertions(+), 7 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/_resources/port1.0/group/haskell_stack-1.0.tcl b/_resources/port1.0/group/haskell_stack-1.0.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index 26ab96da42a..0ecb608275c 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/_resources/port1.0/group/haskell_stack-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/_resources/port1.0/group/haskell_stack-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -42,8 +42,18 @@
</span> #   destroot phases. Defaults to --with-gcc ${configure.cc}
 #   --allow-different-user --system-ghc (if haskell_stack.system_ghc is set)
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-options haskell_stack.system_ghc
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-default haskell_stack.system_ghc {no}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+options \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    haskell_stack.bin \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    haskell_stack.bindirs \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    haskell_stack.default_args \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    haskell_stack.env \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    haskell_stack.stack_root \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    haskell_stack.system_ghc \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    haskell_stack.use_init \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    haskell_stack.yaml
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default haskell_stack.system_ghc    {no}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+default haskell_stack.bindirs       {${destroot}${prefix}/bin}
</span> 
 proc haskell_stack.system_ghc_flags {} {
     if {[option haskell_stack.system_ghc]} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -60,10 +70,15 @@ proc haskell_stack.add_dependencies {} {
</span>     if {[option haskell_stack.system_ghc]} {
         depends_build-append port:ghc
     }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+    depends_build-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        port:cctools \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        port:file \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        port:grep \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        port:gsed \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        path:bin/openssl:openssl
</span> }
 port::register_callback haskell_stack.add_dependencies
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-options haskell_stack.stack_root
</span> default haskell_stack.stack_root {${workpath}/.home/.stack}
 
 post-extract {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -83,22 +98,18 @@ compiler.cpath
</span> # Builds (sometimes) fail if ccache is enabled in MacPorts
 configure.ccache    no
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-options haskell_stack.bin haskell_stack.default_args
</span> default haskell_stack.bin   ${prefix}/bin/stack
 default haskell_stack.default_args \
     {--with-gcc ${configure.cc} \
          --allow-different-user \
          [haskell_stack.system_ghc_flags]}
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-options haskell_stack.yaml
</span> default haskell_stack.yaml  {${worksrcpath}/stack.yaml}
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-options haskell_stack.env
</span> default haskell_stack.env \
     {STACK_ROOT=[option haskell_stack.stack_root] \
          STACK_YAML=[option haskell_stack.yaml]}
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-options haskell_stack.use_init
</span> default haskell_stack.use_init yes
 
 pre-configure {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -134,3 +145,93 @@ default test.env            {${haskell_stack.env}}
</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;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    # strip binaries
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach bindir ${haskell_stack.bindirs} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach binfile [glob -nocomplain ${bindir}/*] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {([file isfile ${binfile}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                && [file type ${binfile}] eq {file}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                && [file executable ${binfile}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                && [regexp -nocase -- \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    {application/x-.*(binary|executable)} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        [lindex [exec file --mime-type ${binfile}] end]])} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                system -W ${bindir} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        "strip ${binfile}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if {${configure.build_arch} eq {arm64}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    system -W ${bindir} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        "codesign -f -s - ${binfile}"
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><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;'>+    # find cabal data-files
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+    foreach bindir ${haskell_stack.bindirs} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+        foreach binfile [glob -nocomplain ${bindir}/*] {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            if {!([file isfile ${binfile}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                  && [file type ${binfile}] eq {file}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                  && [file executable ${binfile}]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                  && [regexp -nocase -- \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                          {application/x-.*(binary|executable)} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                          [lindex [exec file --mime-type ${binfile}] end]])} {
</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;'>+            set build_installsubdirs [list]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+            foreach sdir [exec sh -c "LC_ALL='C' ggrep -E -a -o -e '${haskell_stack.stack_root}(/\[-_.\[:alnum:]]+)+' ${binfile} 2>/dev/null || true"] {
</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:#e0ffe0;'>+            if {[llength ${build_installsubdirs}] > 0} {
</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_idir ${build_installsubdirs} {
</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;'>+                    set replacesubdir \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        share/${subport}
</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><span style='display:block; white-space:pre;background:#e0ffe0;'>+                }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                if {([file size ${binfile}.slash_hack] \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    == [file size ${binfile}])
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    && ([exec openssl dgst -ripemd160 ${binfile}.slash_hack] \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                            ne [exec openssl dgst -ripemd160 ${binfile}])} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    # gsed created a different file of the same size
</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;'>+                    if {${configure.build_arch} eq {arm64}} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                        system "codesign -f -s - ${binfile}"
</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}.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></pre><pre style='margin:0'>

</pre>