<pre style='margin:0'>
Chris Jones (cjones051073) pushed a commit to branch master
in repository macports-ports.
</pre>
<p><a href="https://github.com/macports/macports-ports/commit/f918bf6a32b7c6bb3d7fcfccf05741601de022d6">https://github.com/macports/macports-ports/commit/f918bf6a32b7c6bb3d7fcfccf05741601de022d6</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 f918bf6a32b cargo_fetch PG, rust, cargo: Add support for using legacysupport PG on older systems
</span>f918bf6a32b is described below
<span style='display:block; white-space:pre;color:#808000;'>commit f918bf6a32b7c6bb3d7fcfccf05741601de022d6
</span>Author: Chris Jones <jonesc@macports.org>
AuthorDate: Tue Apr 20 20:10:25 2021 +0100
<span style='display:block; white-space:pre;color:#404040;'> cargo_fetch PG, rust, cargo: Add support for using legacysupport PG on older systems
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> - Patch bootstrapping binaries to use legacysupport dylib for missing libSystem calls
</span><span style='display:block; white-space:pre;color:#404040;'> - Wrap underlying compiler commands used by rust/cargo to enforce use of legacy support flags
</span><span style='display:block; white-space:pre;color:#404040;'>
</span><span style='display:block; white-space:pre;color:#404040;'> Closes: https://trac.macports.org/ticket/62656
</span>---
_resources/port1.0/group/cargo_fetch-1.0.tcl | 70 ++++++---
devel/cargo/Portfile | 60 +++++---
lang/rust/Portfile | 222 ++++++++++++++++++++++-----
3 files changed, 262 insertions(+), 90 deletions(-)
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/_resources/port1.0/group/cargo_fetch-1.0.tcl b/_resources/port1.0/group/cargo_fetch-1.0.tcl
</span><span style='display:block; white-space:pre;color:#808080;'>index d1ec4174f18..b3e96a43bfe 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/_resources/port1.0/group/cargo_fetch-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/_resources/port1.0/group/cargo_fetch-1.0.tcl
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -37,6 +37,9 @@
</span> # baz author/baz branch abcdef12345678...commit...abcdef12345678 fedcba654321...
#
<span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup compiler_blacklist_versions 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup legacysupport 1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> options cargo.bin cargo.home cargo.crates cargo.crates_github
default cargo.bin {${prefix}/bin/cargo}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -44,6 +47,11 @@ default cargo.home {${workpath}/.home/.cargo}
</span> default cargo.crates {}
default cargo.crates_github {}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+# As building with rust uses the same underlying compiler as used to build it
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# replicate the same compiler selection options here
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.cxx_standard 2017
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.blacklist-append {macports-clang-[4-9].0}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # please remove when 8a088c3 has been in a released MacPorts version for at least two weeks
# see https://github.com/macports/macports-base/commit/8a088c30d80c7c3eca10848f28835e1c180229b1
if {"shellescape" ni [info commands shellescape]} {
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -241,41 +249,57 @@ proc cargo.rust_platform {{arch ""}} {
</span> return [cargo.translate_arch_name ${arch}]-apple-${os.platform}
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach stage {build destroot} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- # see https://trac.macports.org/wiki/UsingTheRightCompiler
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${stage}.env-append CC=${configure.cc} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- CXX=${configure.cxx}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc cargo.append_envs { value } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach stage {extract configure build destroot} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${stage}.env-delete ${value}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${stage}.env-append ${value}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> }
<span style='display:block; white-space:pre;background:#ffe0e0;'>-foreach stage {configure build destroot} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${stage}.env-append "RUSTFLAGS=-C linker=${configure.cc}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# see https://trac.macports.org/wiki/UsingTheRightCompiler
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cargo.append_envs CC=${configure.cc}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cargo.append_envs CXX=${configure.cxx}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+cargo.append_envs "RUSTFLAGS=-C linker=${configure.cc}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Is build caching enabled ?
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# WIP for now ...
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#if {[tbool configure.ccache]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# # Enable sccache for rust caching
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# depends_build-append port:sccache
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# cargo.append_envs RUSTC_WRAPPER=${prefix}/bin/sccache
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# cargo.append_envs SCCACHE_CACHE_SIZE=2G
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# cargo.append_envs SCCACHE_DIR=${workpath}/.sccache
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+#}
</span>
# do not force all Portfiles to switch from ${stage}.env to ${stage}.env-append
proc cargo.environments {} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- global configure.cc configure.cxx subport configure.build_arch configure.universal_archs merger_configure_env merger_build_env merger_destroot_env worksrcpath
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach stage {build destroot} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${stage}.env-delete CC=${configure.cc} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- CXX=${configure.cxx}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${stage}.env-append CC=${configure.cc} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- CXX=${configure.cxx}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global os.major prefix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global configure.cc configure.cxx subport configure.build_arch configure.universal_archs
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global merger_configure_env merger_build_env merger_destroot_env worksrcpath
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach stage {configure build destroot} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${stage}.env-delete "RUSTFLAGS=-C linker=${configure.cc}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${stage}.env-append "RUSTFLAGS=-C linker=${configure.cc}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set cargo_ld ${configure.cc}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { ${os.major} <= [option legacysupport.newest_darwin_requires_legacy] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Use wrapped rust compilers
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_build-append port:rust-compiler-wrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.cc ${prefix}/libexec/rust-compiler-wrap/bin/clang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.cxx ${prefix}/libexec/rust-compiler-wrap/bin/clang++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.objc ${prefix}/libexec/rust-compiler-wrap/bin/clang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.objcxx ${prefix}/libexec/rust-compiler-wrap/bin/clang++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set cargo_ld ${prefix}/libexec/rust-compiler-wrap/bin/ld
</span> }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ cargo.append_envs CC=${configure.cc}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cargo.append_envs CXX=${configure.cxx}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cargo.append_envs "RUSTFLAGS=-C linker=${cargo_ld}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cargo.append_envs "RUST_BACKTRACE=1"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # CARGO_BUILD_TARGET does not work correctly
# see the patchfile path-dyld.diff in cargo Portfile
if {${subport} ne "cargo-stage1"} {
if {![variant_exists universal] || ![variant_isset universal]} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- foreach stage {configure build destroot} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${stage}.env-delete \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- CARGO_BUILD_TARGET=[cargo.rust_platform ${configure.build_arch}]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${stage}.env-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- CARGO_BUILD_TARGET=[cargo.rust_platform ${configure.build_arch}]
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cargo.append_envs CARGO_BUILD_TARGET=[cargo.rust_platform ${configure.build_arch}]
</span> } else {
foreach stage {configure build destroot} {
foreach arch ${configure.universal_archs} {
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/devel/cargo/Portfile b/devel/cargo/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 958ddc887e7..30037790b63 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/devel/cargo/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/devel/cargo/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -14,7 +14,7 @@ if {${subport} ne "${name}-bootstrap"} {
</span> }
PortGroup cargo 1.0
<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 devel
platforms darwin
supported_archs x86_64 arm64
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -32,6 +32,7 @@ homepage https://crates.io
</span> installs_libs no
if {${subport} ne "${name}-bootstrap"} {
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> # can use cmake or cmake-devel; default to cmake.
depends_build port:pkgconfig \
path:bin/cmake:cmake
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -75,41 +76,43 @@ if {${subport} ne "${name}-bootstrap"} {
</span> # Features of direct dependencies may be enabled with <dep-name>/<feature-name> syntax.
build.args-append --features curl-sys/force-system-lib-on-osx
<span style='display:block; white-space:pre;background:#ffe0e0;'>- if {${subport} eq ${name}} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- depends_build-append \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- port:${name}-bootstrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_build-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:${name}-bootstrap
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- cargo.bin ${prefix}/libexec/${name}-bootstrap/bin/cargo
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cargo.bin ${prefix}/libexec/${name}-bootstrap/bin/cargo
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- destroot {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xinstall ${worksrcpath}/target/[cargo.rust_platform]/release/cargo ${destroot}${prefix}/bin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall ${worksrcpath}/target/[cargo.rust_platform]/release/cargo ${destroot}${prefix}/bin
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- xinstall -m 0644 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- {*}[glob ${worksrcpath}/src/etc/man/*] \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${destroot}${prefix}/share/man/man1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -m 0644 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ {*}[glob ${worksrcpath}/src/etc/man/*] \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${destroot}${prefix}/share/man/man1
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- xinstall -d ${destroot}${prefix}/share/doc/${subport}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xinstall -m 0644 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- -W ${worksrcpath} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- LICENSE-APACHE LICENSE-MIT LICENSE-THIRD-PARTY README.md \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${destroot}${prefix}/share/doc/${subport}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -d ${destroot}${prefix}/share/doc/${subport}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -m 0644 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ -W ${worksrcpath} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ LICENSE-APACHE LICENSE-MIT LICENSE-THIRD-PARTY README.md \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${destroot}${prefix}/share/doc/${subport}
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- xinstall -d ${destroot}${prefix}/etc/bash_completion.d
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xinstall -m 0644 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${worksrcpath}/src/etc/cargo.bashcomp.sh \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${destroot}${prefix}/etc/bash_completion.d/${subport}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -d ${destroot}${prefix}/etc/bash_completion.d
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -m 0644 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${worksrcpath}/src/etc/cargo.bashcomp.sh \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${destroot}${prefix}/etc/bash_completion.d/${subport}
</span>
<span style='display:block; white-space:pre;background:#ffe0e0;'>- xinstall -d ${destroot}${prefix}/share/zsh/site-functions
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- xinstall -m 0644 \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${worksrcpath}/src/etc/_cargo \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- ${destroot}${prefix}/share/zsh/site-functions
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -d ${destroot}${prefix}/share/zsh/site-functions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -m 0644 \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${worksrcpath}/src/etc/_cargo \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${destroot}${prefix}/share/zsh/site-functions
</span> }
} else {
master_sites-append https://static.rust-lang.org/dist/:rust_dist
depends_run-append port:rust
<span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { ${os.major} <= [option legacysupport.newest_darwin_requires_legacy] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_build-append port:cctools
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> set arch ${configure.build_arch}
if {${configure.build_arch} eq "arm64"} {
set arch "aarch64"
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -125,7 +128,6 @@ if {${subport} ne "${name}-bootstrap"} {
</span> sha256 37eb709e5ed8fe02d2c8d89bc0be3dc1d642cff223c25df311ff5a82eab53d4b \
size 6495810
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> set cargo_dist_suffix ${arch}-apple-${os.platform}
distfiles ${name}-${version}-${cargo_dist_suffix}${extract.suffix}:rust_dist
worksrcdir ${name}-${version}-${cargo_dist_suffix}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -141,7 +143,15 @@ if {${subport} ne "${name}-bootstrap"} {
</span> -W ${worksrcpath} \
LICENSE-APACHE LICENSE-MIT LICENSE-THIRD-PARTY README.md \
${destroot}${prefix}/share/doc/${subport}
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { ${os.major} <= [option legacysupport.newest_darwin_requires_legacy] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # To patch the bootstrap binary to use the legacySupport System.B lib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set sLib /usr/lib/libSystem.B.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set lLib ${prefix}/lib/libMacportsLegacySystem.B.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ system "${prefix}/bin/install_name_tool -change ${sLib} ${lLib} ${destroot}${prefix}/libexec/${subport}/bin/cargo"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> }
<span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> }
subport ${name}-bootstrap {}
<span style='display:block; white-space:pre;color:#808080;'>diff --git a/lang/rust/Portfile b/lang/rust/Portfile
</span><span style='display:block; white-space:pre;color:#808080;'>index 93539623415..2786374714a 100644
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>--- a/lang/rust/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0ff;'>+++ b/lang/rust/Portfile
</span><span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -2,9 +2,15 @@
</span>
PortSystem 1.0
<span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup compiler_blacklist_versions 1.0
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+PortGroup legacysupport 1.1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+legacysupport.use_static yes
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+legacysupport.newest_darwin_requires_legacy 15
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span> name rust
version 1.51.0
<span style='display:block; white-space:pre;background:#ffe0e0;'>-revision 1
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+revision 2
</span> categories lang devel
platforms darwin
supported_archs x86_64 arm64
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -33,8 +39,54 @@ set rustc_version 1.50.0
</span> set py_ver 3.9
set py_ver_nodot [string map {. {}} ${py_ver}]
<span style='display:block; white-space:pre;background:#ffe0e0;'>-# can use cmake or cmake-devel; default to cmake.
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_build-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Make sure the chosen python is found via PATH
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+post-extract {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -d ${workpath}/bin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ln -s ${prefix}/bin/python${py_ver} ${workpath}/bin/python
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ln -s ${prefix}/bin/python${py_ver} ${workpath}/bin/python3
</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 arch ${configure.build_arch}
</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;'>+ set arch "aarch64"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set binTag ${rustc_version}-${arch}-apple-${os.platform}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Rust 1.49.0 and newer has issues on macOS 10.9 and older.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# See https://trac.macports.org/ticket/62656
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# https://github.com/rust-lang/rust/issues/80804
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# If upstream eventually address the issue these workarounds can be removed.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# For now patch the bootstrap binaries and compiler commands to use legacysupport library
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set ccwrap ${name}-compiler-wrap
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if { ${os.major} <= [option legacysupport.newest_darwin_requires_legacy] && ${subport} ne ${ccwrap} } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Force use of MP clang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ compiler.blacklist-append clang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ post-extract {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_debug "Relinking rust/cargo bootstrap binaries"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Re-link binaries to force loading of MacPorts LegacySupport lib instead of libSystem
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ proc relink_binary { exe } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ global prefix
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set sLib /usr/lib/libSystem.B.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set lLib ${prefix}/lib/libMacportsLegacySystem.B.dylib
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ system "${prefix}/bin/install_name_tool -change ${sLib} ${lLib} ${exe} > /dev/null 2>&1 ; true"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ proc relink_binaries { binaries } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach binary $binaries {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ relink_binary ${binary}
</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;'>+ proc search_dirs_relink { dirs } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach dir $dirs {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ relink_binaries [ glob -nocomplain ${dir}/* ]
</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;'>+ relink_binaries [ exec find ${workpath}/ -name "*.dylib" ]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ search_dirs_relink [ exec find ${workpath}/ -type d -and -name bin -or -name libexec ]
</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;'>+if { ${subport} ne ${ccwrap} } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_build-append \
</span> bin:git:git \
path:bin/cmake:cmake \
port:cctools \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -43,22 +95,18 @@ depends_build-append \
</span> port:pkgconfig \
port:ninja \
port:gmake
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-depends_lib-append port:libffi \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ port:libffi \
</span> path:lib/libssl.dylib:openssl
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-set arch ${configure.build_arch}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${configure.build_arch} eq "arm64"} {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- set arch "aarch64"
</span> }
master_sites https://static.rust-lang.org/dist
distname ${name}c-${version}-src
<span style='display:block; white-space:pre;background:#ffe0e0;'>-distfiles-append rust-std-${rustc_version}-${arch}-apple-${os.platform}${extract.suffix} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- rustc-${rustc_version}-${arch}-apple-${os.platform}${extract.suffix} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- cargo-${rustc_version}-${arch}-apple-${os.platform}${extract.suffix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+distfiles-append rust-std-${binTag}${extract.suffix} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ rustc-${binTag}${extract.suffix} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ cargo-${binTag}${extract.suffix}
</span>
checksums ${distname}${extract.suffix} \
rmd160 86012fa02e52e4a06e5c76aaa482face78b38ef5 \
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -90,10 +138,11 @@ checksums-append rust-std-${rustc_version}-x86_64-apple-${os.platform}${extra
</span> sha256 19d526ef3518fb0322f809deddbd4208a27d08efa41d2188348f1be8d3bcfe5e \
size 5820420
<span style='display:block; white-space:pre;background:#ffe0e0;'>-if {${os.platform} eq "darwin" && ${os.major} < 14} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set min_darwin 13
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {${os.platform} eq "darwin" && ${os.major} < ${min_darwin}} {
</span> known_fail yes
pre-fetch {
<span style='display:block; white-space:pre;background:#ffe0e0;'>- ui_error "${name} is only supported on macOS 10.10 or later."
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_error "${name} is only supported on macOS 10.[expr ${min_darwin} - 4] or later."
</span> return -code error "unsupported platform version"
}
}
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -101,37 +150,126 @@ if {${os.platform} eq "darwin" && ${os.major} < 14} {
</span> set rust_platform ${arch}-apple-${os.platform}
set rust_root ${worksrcpath}/build/stage0-${arch}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-post-extract {
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- file mkdir ${rust_root}
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system "cp -r ${workpath}/rust-std-${rustc_version}-${rust_platform}/rust-std-${rust_platform}/* ${rust_root}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system "cp -r ${workpath}/rustc-${rustc_version}-${rust_platform}/rustc/* ${rust_root}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- system "cp -r ${workpath}/cargo-${rustc_version}-${rust_platform}/cargo/* ${rust_root}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if { ${subport} ne ${ccwrap} } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ post-extract {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ file mkdir ${rust_root}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ system "cp -r ${workpath}/rust-std-${rustc_version}-${rust_platform}/rust-std-${rust_platform}/* ${rust_root}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ system "cp -r ${workpath}/rustc-${rustc_version}-${rust_platform}/rustc/* ${rust_root}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ system "cp -r ${workpath}/cargo-${rustc_version}-${rust_platform}/cargo/* ${rust_root}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span> }
# Rust claims to only need c++14 but uses some c++17 features relating to std::unique_ptr
<span style='display:block; white-space:pre;background:#ffe0e0;'>-compiler.cxx_standard 2017
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.cxx_standard 2017
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Use recent macports clang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+compiler.blacklist-append {macports-clang-[4-9].0}
</span>
# Compiler used needed at runtime with rust, so if a MacPorts clang compiler used needs to be a dep
if { [string match macports-clang-* ${configure.compiler}] } {
depends_lib-append port:[string map {"macports-" ""} ${configure.compiler}]
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-configure.args --enable-vendor \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- --default-linker=${configure.cc} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- --disable-codegen-tests \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- --disable-docs \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- --release-channel=stable \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- --build=${rust_platform} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- --local-rust-root=${rust_root} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- --set=target.${rust_platform}.cc=${configure.cc} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- --set=target.${rust_platform}.cxx=${configure.cxx} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- --set=target.${rust_platform}.linker=${configure.cc} \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- --enable-extended \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- --tools=rustfmt,clippy,rls \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- --llvm-cflags="${configure.cflags}" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- --llvm-cxxflags="${configure.cxxflags}" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- --llvm-ldflags="${configure.ldflags}" \
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>- --python=${prefix}/bin/python${py_ver}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Max Darwin version to create wrapper scripts. Should be equal to the highest
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Darwin version that downstream ports could possible need legacy support for.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set max_wrap_darwin [legacysupport::get_newest_darwin_with_missing_symbols]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Adds given entry to the environment of various phases
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+proc envs_append { value } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach stage {extract configure build destroot} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${stage}.env-delete ${value}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ${stage}.env-append ${value}
</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;'>+# In order to enforce use of legacy support, both when building rust and subsequently
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# when using it, the underlying compiler commands need to be wrapped to make sure
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# they use the correct flags. Do this in a sub-port which then is added as a dep
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# to rust to ensure they are available when rust is both built and installed.
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+set wrapdir ${prefix}/libexec/${ccwrap}/bin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+subport ${ccwrap} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Enable support in scripts for all neccessary versions
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ legacysupport.newest_darwin_requires_legacy ${max_wrap_darwin}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ description Wrapped compiler commands for ${name}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ long_description {*}${description}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ license BSD
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ supported_archs noarch
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ patchfiles
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ distfiles
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_build
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { ${os.major} <= [option legacysupport.newest_darwin_requires_legacy] } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append [legacysupport::get_dependency]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ use_configure no
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ build {}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:cctools
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ destroot {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ # Deduce MP clang version
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if {![regexp {macports-clang-(.*)} ${configure.compiler} -> llvm_ver]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ui_error "Unsupported compiler: ${configure.compiler}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ xinstall -m 755 -d ${destroot}${wrapdir}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ proc create_wrapper { fname comp flags } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set f [ open ${fname} w 0755 ]
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${f} "#!/bin/bash"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${f} "exec ${comp} ${flags} \$\{\@\}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ close ${f}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ }
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set llvm_dir ${prefix}/libexec/llvm-${llvm_ver}/bin
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ create_wrapper ${destroot}${wrapdir}/clang \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "\$\{MACPORTS_RUST_CC\:\-${llvm_dir}/clang\}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "\$\{MACPORTS_LEGACY_SUPPORT_CPPFLAGS\}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ create_wrapper ${destroot}${wrapdir}/clang++ \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "\$\{MACPORTS_RUST_CXX\:\-${llvm_dir}/clang++\}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "\$\{MACPORTS_LEGACY_SUPPORT_CPPFLAGS\}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ create_wrapper ${destroot}${wrapdir}/ld-rust \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "\$\{MACPORTS_RUST_CC\:\-${llvm_dir}/clang\}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "\$\{MACPORTS_LEGACY_SUPPORT_CPPFLAGS\} \$\{MACPORTS_LEGACY_SUPPORT_LDFLAGS\}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ create_wrapper ${destroot}${wrapdir}/ld \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "\$\{MACPORTS_RUST_LD\:\-${llvm_dir}/ld\}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ "\$\{MACPORTS_LEGACY_SUPPORT_LDFLAGS\}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ foreach cmd { ar as nm nm-classic libtool lipo objdump otool ranlib size size-classic strip strings bitcode-strip segedit } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ ln -s ${prefix}/bin/${cmd} ${destroot}${wrapdir}/${cmd}
</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;'>+set ld ${configure.cc}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if { ${subport} ne ${ccwrap} } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ if { ${os.major} <= ${max_wrap_darwin} } {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_lib-append port:${ccwrap}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.cc ${wrapdir}/clang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.cxx ${wrapdir}/clang++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.objc ${wrapdir}/clang
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.objcxx ${wrapdir}/clang++
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ set ld ${wrapdir}/ld-rust
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ envs_append "PATH=${wrapdir}:${workpath}/bin:$env(PATH)"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ } else {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ envs_append "PATH=${workpath}/bin:$env(PATH)"
</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;'>+envs_append LD=${ld}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+configure.args --enable-vendor \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --default-linker=${ld} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --disable-codegen-tests \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --disable-docs \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --release-channel=stable \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --build=${rust_platform} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --local-rust-root=${rust_root} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --set=target.${rust_platform}.cc=${configure.cc} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --set=target.${rust_platform}.cxx=${configure.cxx} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --set=target.${rust_platform}.linker=${ld} \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --enable-extended \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --tools=rustfmt,clippy,rls \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --llvm-cflags="${configure.cflags}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --llvm-cxxflags="${configure.cxxflags}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --llvm-ldflags="${configure.ldflags}" \
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ --python=${prefix}/bin/python${py_ver}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+# Cache support
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+if {[tbool configure.ccache]} {
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ depends_build-append port:ccache
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ configure.args-append --enable-ccache
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+}
</span>
post-configure {
# the bootstrap call to rustc uses cc for the linker
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -141,13 +279,15 @@ post-configure {
</span> set config [open ${workpath}/.home/.cargo/config w]
puts ${config} "\[target.${rust_platform}\]"
<span style='display:block; white-space:pre;background:#ffe0e0;'>- puts ${config} "linker = \"${configure.cc}\""
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ puts ${config} "linker = \"${ld}\""
</span>
close ${config}
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-build.args VERBOSE=1 BOOTSTRAP_ARGS="-v -j${build.jobs}"
</span><span style='display:block; white-space:pre;background:#ffe0e0;'>-build.env-append OPENSSL_DIR=${prefix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+build.args VERBOSE=1 BOOTSTRAP_ARGS="-vv -j${build.jobs}"
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+envs_append OPENSSL_DIR=${prefix}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+envs_append RUST_BACKTRACE=1
</span>
test.run yes
test.target check
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -156,7 +296,6 @@ test.args VERBOSE=1
</span> destroot.args VERBOSE=1
if {${subport} eq ${name}} {
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> post-destroot {
delete ${destroot}${prefix}/lib/rustlib/install.log
delete ${destroot}${prefix}/lib/rustlib/uninstall.sh
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -164,7 +303,6 @@ if {${subport} eq ${name}} {
</span> xinstall -m 644 ${worksrcpath}/src/etc/ctags.rust \
${destroot}${prefix}/share/${name}
}
<span style='display:block; white-space:pre;background:#ffe0e0;'>-
</span> }
livecheck.type regex
<span style='display:block; white-space:pre;background:#e0e0e0;'>@@ -179,7 +317,7 @@ subport rust-src {
</span> set rust_source_dir ${destroot}${prefix}/lib/rustlib/src/rust
description Source code for the rust programming language
<span style='display:block; white-space:pre;background:#ffe0e0;'>- long_description ${description}
</span><span style='display:block; white-space:pre;background:#e0ffe0;'>+ long_description {*}${description}
</span>
use_configure no
</pre><pre style='margin:0'>
</pre>