<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>