<pre style='margin:0'>
Perry E. Metzger (pmetzger) pushed a commit to branch master
in repository macports-ports.

</pre>
<p><a href="https://github.com/macports/macports-ports/commit/1f4ed72742160a0b2edb67f3e48626f24b726c07">https://github.com/macports/macports-ports/commit/1f4ed72742160a0b2edb67f3e48626f24b726c07</a></p>
<pre style="white-space: pre; background: #F8F8F8">The following commit(s) were added to refs/heads/master by this push:
<span style='display:block; white-space:pre;color:#404040;'>     new 1f4ed727421 crystal: add support for static linking
</span>1f4ed727421 is described below

<span style='display:block; white-space:pre;color:#808000;'>commit 1f4ed72742160a0b2edb67f3e48626f24b726c07
</span>Author: Mohamed Akram <mohd.akram@outlook.com>
AuthorDate: Thu Nov 11 19:43:05 2021 +0400

<span style='display:block; white-space:pre;color:#404040;'>    crystal: add support for static linking
</span>---
 lang/crystal/Portfile                |  9 ++++-----
 lang/crystal/files/patch-crypto.diff |  8 ++++----
 lang/crystal/files/patch-link.diff   | 31 ++++++++++++++++++++++++++++++-
 lang/crystal/files/patch-ssl.diff    |  8 ++++----
 lang/crystal/files/patch-xml.diff    | 10 ----------
 5 files changed, 42 insertions(+), 24 deletions(-)

<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/crystal/Portfile b/lang/crystal/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 7169ae0cdc2..db633ed0458 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/crystal/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/crystal/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2,10 +2,11 @@
</span> 
 PortSystem          1.0
 PortGroup           github 1.0
<span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup           openssl 1.0
</span> PortGroup           compiler_blacklist_versions 1.0
 
 github.setup        crystal-lang crystal 1.2.2
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision            0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision            1
</span> categories          lang
 platforms           darwin
 supported_archs     x86_64 arm64
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -28,7 +29,6 @@ depends_lib         port:boehmgc \
</span>                     port:libxml2 \
                     port:libyaml \
                     port:llvm-${llvm_version} \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    path:lib/libssl.dylib:openssl \
</span>                     port:pcre \
                     port:zlib \
                     port:pkgconfig
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -49,8 +49,7 @@ checksums           ${distname}${extract.suffix} \
</span>                     sha256  e15078c981a5d7f61e612b07399abb7dd790f0840c7e5a003e1114d222abbf1b \
                     size    45727479
 
<span style='display:block; white-space:pre;background:#ffe0e0;'>-patchfiles          patch-link.diff patch-xml.diff \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-                    patch-crypto.diff patch-ssl.diff
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+patchfiles          patch-link.diff patch-crypto.diff patch-ssl.diff
</span> 
 post-patch {
     file copy -force ${worksrcpath}/src/lib_c/x86_64-openbsd/c/iconv.cr \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -72,7 +71,7 @@ compiler.whitelist  macports-clang-${llvm_version}
</span> compiler.cxx_standard  2011
 
 build.args          release=1 FLAGS=--no-debug \
<span style='display:block; white-space:pre;background:#ffe0e0;'>-                    CRYSTAL_CONFIG_LIBRARY_PATH=${prefix}/lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+                    CRYSTAL_CONFIG_LIBRARY_PATH=[openssl::lib_dir]:${prefix}/lib
</span> 
 build.env           ${llvm_config} \
                     CRYSTAL=${workpath}/${name}-${cr_full_ver}/bin/${name}
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/crystal/files/patch-crypto.diff b/lang/crystal/files/patch-crypto.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index c9098f723ce..928f8398b10 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/crystal/files/patch-crypto.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/crystal/files/patch-crypto.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,11 +1,11 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/openssl/lib_crypto.cr.orig 2018-06-19 05:19:40.000000000 +0400
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/openssl/lib_crypto.cr      2018-06-19 05:30:37.000000000 +0400
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -5,7 +5,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/openssl/lib_crypto.cr.orig 2021-11-10 16:14:09.000000000 +0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/openssl/lib_crypto.cr      2021-11-11 19:41:28.000000000 +0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -15,7 +15,7 @@
</span>    end
  {% end %}
  
 -@[Link(ldflags: "`command -v pkg-config > /dev/null && pkg-config --libs --silence-errors libcrypto || printf %s '-lcrypto'`")]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+@[Link("crypto")]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@[Link("crypto", pkg_config: "libcrypto")]
</span>  lib LibCrypto
    alias Char = LibC::Char
    alias Int = LibC::Int
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/crystal/files/patch-link.diff b/lang/crystal/files/patch-link.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index cdb834064ed..76e1648caee 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/crystal/files/patch-link.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/crystal/files/patch-link.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,5 +1,5 @@
</span> --- src/compiler/crystal/codegen/link.cr.orig     2021-11-10 16:14:09.000000000 +0400
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/compiler/crystal/codegen/link.cr        2021-11-10 20:56:37.000000000 +0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/compiler/crystal/codegen/link.cr   2021-11-11 01:58:53.000000000 +0400
</span> @@ -126,7 +126,7 @@
        static_build = has_flag?("static")
  
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -9,3 +9,32 @@
</span>  
        # Add CRYSTAL_LIBRARY_PATH locations, so the linker preferentially
        # searches user-given library paths.
<span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -154,7 +154,27 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+         end
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+       end
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+-      flags.join(" ")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      process_flags(flags.join(" "))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    end
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    private def process_flags(flags)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      return flags if !(has_flag?("darwin") && has_flag?("static"))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      new_flags = ["-lc++"]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      flags.split.each do |flag|
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        if (lib_name = flag.lchop?("-l")) && (static_lib = find_static_lib(lib_name))
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          new_flags << static_lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        else
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++          new_flags << flag
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        end
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      end
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      new_flags.join(" ")
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    end
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++    private def find_static_lib(libname)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      CrystalLibraryPath.paths.each do |libdir|
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        static_lib = "#{libdir}/lib#{libname}.a"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++        return static_lib if File.exists?(static_lib)
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++      end
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     end
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ 
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+     PKG_CONFIG_PATH = Process.find_executable("pkg-config")
</span><span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/crystal/files/patch-ssl.diff b/lang/crystal/files/patch-ssl.diff
</span><span style='display:block; white-space:pre;color:#808080;'>index f7f689aba34..8a430176c7e 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/crystal/files/patch-ssl.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/crystal/files/patch-ssl.diff
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,11 +1,11 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/openssl/lib_ssl.cr.orig    2018-06-19 05:19:40.000000000 +0400
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/openssl/lib_ssl.cr 2018-06-19 05:36:03.000000000 +0400
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -7,7 +7,7 @@
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+--- src/openssl/lib_ssl.cr.orig    2021-11-10 16:14:09.000000000 +0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++++ src/openssl/lib_ssl.cr 2021-11-11 19:42:24.000000000 +0400
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+@@ -21,7 +21,7 @@
</span>    end
  {% end %}
  
 -@[Link(ldflags: "`command -v pkg-config > /dev/null && pkg-config --libs --silence-errors libssl || printf %s '-lssl -lcrypto'`")]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-+@[Link("ssl")]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>++@[Link("ssl", pkg_config: "libssl")]
</span>  lib LibSSL
    alias Int = LibC::Int
    alias Char = LibC::Char
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/crystal/files/patch-xml.diff b/lang/crystal/files/patch-xml.diff
</span>deleted file mode 100644
<span style='display:block; white-space:pre;color:#808080;'>index 4e14a177ab4..00000000000
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/crystal/files/patch-xml.diff
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ /dev/null
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -1,10 +0,0 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>---- src/xml/libxml2.cr.orig        2020-06-22 19:32:50.000000000 +0400
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+++ src/xml/libxml2.cr     2020-06-22 19:33:49.000000000 +0400
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-@@ -9,6 +9,7 @@
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {% else %}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   @[Link("xml2")]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {% end %}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-+@[Link("lzma")]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- lib LibXML
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-   alias Int = LibC::Int
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- 
</span></pre><pre style='margin:0'>

</pre>