Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

V1.76 #7

Merged
merged 28 commits into from
Mar 18, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 6 additions & 1 deletion recipe/conda_build_config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,11 @@ rust_arch:
- x86_64-unknown-linux-gnu # [linux64]
- s390x-unknown-linux-gnu # [s390x]
- aarch64-unknown-linux-gnu # [aarch64]
- powerpc64le-unknown-linux-gnu # [ppc64le]
- x86_64-apple-darwin # [osx and x86_64]
- aarch64-apple-darwin # [osx and arm64]
macos_min_version:
- 10.12 # [osx and x86_64]
MACOSX_DEPLOYMENT_TARGET:
- 10.12 # [osx and x86_64]
CONDA_BUILD_SYSROOT:
- /opt/MacOSX10.12.sdk # [osx and x86_64]
skupr-anaconda marked this conversation as resolved.
Show resolved Hide resolved
22 changes: 9 additions & 13 deletions recipe/forge_test.sh
Original file line number Diff line number Diff line change
@@ -1,21 +1,17 @@
#!/bin/bash -e -x

## TODO: remove the following `unset` lines, once the following issue in `conda-build` is resolved:
## <https://github.com/conda/conda-build/issues/2255>

unset REQUESTS_CA_BUNDLE
unset SSL_CERT_FILE

rustc --help
rustdoc --help
cargo --help

echo "#!/usr/bin/env bash" > ./cc
if [[ ${target_platform} =~ linux.* ]]; then
echo "x86_64-conda_cos6-linux-gnu-cc \"\$@\"" >> ./cc
if [[ ${target_platform} =~ linux.*390x.* ]]; then
echo "s390x-conda_cos7-linux-gnu-cc \"\$@\"" >> ./cc
elif [[ ${target_platform} =~ linux.*aarch64* ]]; then
echo "aarch64-conda-linux-gnu-cc \"\$@\"" >> ./cc
elif [[ ${target_platform} =~ linux.* ]]; then
echo "x86_64-conda_cos7-linux-gnu-cc \"\$@\"" >> ./cc
elif [[ ${target_platform} == osx-64 ]]; then
echo "x86_64-apple-darwin13.4.0-clang \"\$@\"" >> ./cc
export CONDA_BUILD_SYSROOT=/opt/MacOSX10.10.sdk
export CONDA_BUILD_SYSROOT=/opt/MacOSX10.12.sdk
elif [[ ${target_platform} == osx-arm64 ]]; then
echo "arm64-apple-darwin20.0.0-clang \"\$@\"" >> ./cc
fi
cat cc
chmod +x cc
Expand Down
115 changes: 65 additions & 50 deletions recipe/meta.yaml
Original file line number Diff line number Diff line change
@@ -1,93 +1,109 @@
{% set version = "1.71.1" %}
{% set version = "1.76.0" %}

package:
name: 'rust-suite'
version: {{ version }}

source:
- url: https://static.rust-lang.org/dist/rust-{{ version }}-x86_64-unknown-linux-gnu.tar.gz # [linux64]
sha256: 34778d1cda674990dfc0537bc600066046ae9cb5d65a07809f7e7da31d4689c4 # [linux64]
sha256: 9d589d2036b503cc45ecc94992d616fb3deec074deb36cacc2f5c212408f7399 # [linux64]
- url: https://static.rust-lang.org/dist/rust-{{ version }}-aarch64-unknown-linux-gnu.tar.gz # [aarch64]
sha256: c7cf230c740a62ea1ca6a4304d955c286aea44e3c6fc960b986a8c2eeea4ec3f # [aarch64]
- url: https://static.rust-lang.org/dist/rust-{{ version }}-powerpc64le-unknown-linux-gnu.tar.gz # [ppc64le]
sha256: bac57066882366e4628d1ed2bbe4ab19c0b373aaf45582c2da9f639f2f6ea537 # [ppc64le]
sha256: 2e8313421e8fb673efdf356cdfdd4bc16516f2610d4f6faa01327983104c05a0 # [aarch64]
- url: https://static.rust-lang.org/dist/rust-{{ version }}-s390x-unknown-linux-gnu.tar.gz # [s390x]
sha256: 4205dc823ef57c4d9bdf80fb4ecb1e23a71af6dca05432b9fb5a6e9e08fe8f19 # [s390x]
sha256: 885152d9df8a1db017a2eba315d9f6742b64d638416c1c8b7b5ed5f7cab4b7f4 # [s390x]
- url: https://static.rust-lang.org/dist/rust-{{ version }}-x86_64-apple-darwin.tar.gz # [osx and x86_64]
sha256: 916056603da88336aba68bbeab49711cc8fdb9cfb46a49b04850c0c09761f58c # [osx and x86_64]
sha256: 7bdbe085695df8e46389115e99eda7beed37a9494f6b961b45554c658e53b8e7 # [osx and x86_64]
- url: https://static.rust-lang.org/dist/rust-{{ version }}-aarch64-apple-darwin.tar.gz # [osx and arm64]
sha256: f4061b65b31ac75b9b5384c1f518e555f3da23f93bcf64dce252461ee65e9351 # [osx and arm64]
sha256: 17496f15c3cb6ff73d5c36f5b54cc110f1ac31fa09521a7991c0d7ddd890dceb # [osx and arm64]
- url: https://static.rust-lang.org/dist/rust-{{ version }}-x86_64-pc-windows-msvc.tar.gz # [win64]
sha256: 0234bf6ef1ef3efe1809ba548d0ac9c6eeb8a91fb25145caf5547d8614da0049 # [win64]
sha256: cc908e1f0625aae0da5f4a35c390828947887929af694029fc3ccdf4cc66b0dd # [win64]
folder: msvc # [win64]
- url: https://static.rust-lang.org/dist/rust-{{ version }}-x86_64-pc-windows-gnu.tar.gz # [win64]
sha256: 15289233721ad7c3d697890d9c6079ca3b8a0f6740c080fbec3e8ae3a5ea5c8c # [win64]
sha256: 5a9722e73b4511d41cc70270a730f233da43c8c2e103ae469c3b62d89e78df35 # [win64]
folder: gnu # [win64]

build:
number: 0
# the distributed binaries are already relocatable
binary_relocation: False
runpath_whitelist:
- $ORIGIN/../lib
missing_dso_whitelist:
- /usr/lib/libresolv.9.dylib
- /usr/lib/libc++.1.dylib
- /usr/lib/libc++abi.dylib
- /usr/lib/libiconv.2.dylib
- /usr/lib/libcurl.4.dylib
- /usr/lib/libxar.1.dylib
- $RPATH/libLLVM-14-rust-1.64.0-stable.so
# Since 1.32.0 macOS also needs:
- /System/Library/Frameworks/Python.framework/Versions/2.7/Python
- /System/Library/PrivateFrameworks/DebugSymbols.framework/Versions/A/DebugSymbols
- /usr/lib/libcompression.dylib
- /usr/lib/libedit.3.dylib
- /usr/lib/libform.5.4.dylib
- /usr/lib/libncurses.5.4.dylib
- /usr/lib/libpanel.5.4.dylib
- /usr/lib/libxml2.2.dylib
# Fixed via install_name_tool now (just declaring it here meant the thing using -
# lib/rustlib/x86_64-apple-darwin/lib/python2.7/site-packages/lldb/lldb-argdumper - was
# still unable to find it at runtime).
# - $RPATH/libLLVM.dylib

- '**/ld-linux-x86-64.so.2'
- '**/libc.so.6'
- '**/libdl.so.2'
- '**/ld64.so.*'
- '**/libgcc_s.so.1'
- '**/libm.so.6'
- '**/libpthread.so.0'
- '**/librt.so.1'
- '**/libgcc_s.so.1'
- '**/libz.so.1'
# Since 1.32.0 linux also needs:
- '**/libstdc++.so.6'

outputs:
- name: rust
script: install-msvc.bat # [win]
script: install-unix.sh # [not win]
build:
run_exports: # [osx and x86_64]
strong_constrains: # [osx and x86_64]
- __osx >={{ MACOSX_DEPLOYMENT_TARGET|default("10.12") }} # [osx and x86_64]
# the distributed binaries are already relocatable
binary_relocation: False
runpath_whitelist:
- $ORIGIN/../lib
missing_dso_whitelist:
- /usr/lib/libresolv.9.dylib
- /usr/lib/libc++.1.dylib
- /usr/lib/libc++abi.dylib
- /usr/lib/libiconv.2.dylib

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

libiconv is required on linux but here is only osx. Hmm https://github.com/rust-lang/rust/blob/master/INSTALL.md#dependencies

- /usr/lib/libcurl.4.dylib

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

curl is needed on unix, see https://github.com/rust-lang/rust/blob/master/INSTALL.md#dependencies
Should we add it to host?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The build is installing but not actually building, so we are fine here.

- /usr/lib/libxar.1.dylib
- $RPATH/libLLVM-14-rust-1.64.0-stable.so
# Since 1.32.0 macOS also needs:
- /System/Library/Frameworks/Python.framework/Versions/2.7/Python
- /System/Library/PrivateFrameworks/DebugSymbols.framework/Versions/A/DebugSymbols
- /usr/lib/libcompression.dylib
- /usr/lib/libedit.3.dylib
- /usr/lib/libform.5.4.dylib
- /usr/lib/libncurses.5.4.dylib
- /usr/lib/libpanel.5.4.dylib
- /usr/lib/libxml2.2.dylib
Comment on lines +49 to +56

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should all .dylib have the selector # [osx]?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we could, but that won't change the end result

# Fixed via install_name_tool now (just declaring it here meant the thing using -
# lib/rustlib/x86_64-apple-darwin/lib/python2.7/site-packages/lldb/lldb-argdumper - was
# still unable to find it at runtime).
# - $RPATH/libLLVM.dylib

- '**/ld-linux-x86-64.so.2'
- '**/libc.so.6'
- '**/libdl.so.2'
- '**/ld64.so.*'

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this a known defect of s390x only like $RPATH/ld64.so.1?

- '**/libgcc_s.so.1'
- '**/libm.so.6'
- '**/libpthread.so.0'
- '**/librt.so.1'
- '**/libgcc_s.so.1'
- '**/libz.so.1'
# Since 1.32.0 linux also needs:
- '**/libstdc++.so.6'
requirements:
build:
- {{ compiler('c') }} # [osx]
- posix # [win]
skupr-anaconda marked this conversation as resolved.
Show resolved Hide resolved
test:
requires:
- {{ compiler('c') }}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what is a c compiler necessary for?

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To run forge_test.sh, a backend compiler is required.
Usually this is brought in by the activation feedstock, but here we are one step early, so we need to include it in test/requires.

- {{ compiler('cxx') }}
files:
- forge_test.sh # [not win]
commands:
- if exist %LIBRARY_PREFIX%\share\doc\rust\html\sysroot exit 1 # [win]
- rustc --version
- cargo --help

- rustc --help
- rustdoc --help
- time bash ./forge_test.sh # [not win]

- name: rust-gnu # [win]
script: install-gnu.bat # [win]
build: # [win]
# the distributed binaries are already relocatable
binary_relocation: False # [win]
requirements: # [win]
build: # [win]
- posix # [win]
test: # [win]
commands: # [win]
- rustc --version # [win]
- cargo --help # [win]
- rustc --help # [win]
- rustdoc --help # [win]
- if exist %LIBRARY_PREFIX%\share\doc\rust\html\sysroot exit 1 # [win]

about:
home: https://www.rust-lang.org
Expand All @@ -100,7 +116,6 @@ about:
This package provides the compiler (rustc) and the documentation utilities rustdoc.
dev_url: https://github.com/rust-lang/rust
doc_url: https://www.rust-lang.org/learn
doc_source_url: https://github.com/rust-lang/rust/tree/{{ version }}/src/doc

extra:
# The license files cannot be found properly on Windows
Expand Down