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