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