# Maintainer: Maksim Bondarenkov _bootstrapping=no rust_dist_server=https://static.rust-lang.org/dist #rust_dist_server=https://dev-static.rust-lang.org/dist/2025-08-04 pkgname=rust pkgver=1.89.0 pkgrel=3 pkgdesc="Systems programming language focused on safety, speed and concurrency" arch=('x86_64') url="https://www.rust-lang.org/" msys2_repository_url="https://github.com/rust-lang/rust" msys2_references=( 'anitya: 7635' 'archlinux: rust' "cpe: cpe:/a:rust-lang:rust" 'gentoo: dev-lang/rust' ) license=('spdx:Apache-2.0 AND MIT') makedepends=('gcc' 'llvm' 'python' 'libgit2-devel' 'pcre2-devel' 'libssh2-devel' 'openssl-devel' 'pkgconf' 'libsqlite-devel' 'liblzma-devel' 'libzstd-devel' 'zlib-devel' 'libcurl-devel' $([[ "$_bootstrapping" == "no" ]] && echo 'rust')) source=("${rust_dist_server}/${pkgname}c-${pkgver}-src.tar.gz"{,.asc} "bootstrap.toml") noextract=(${pkgname}c-${pkgver}-src.tar.gz) sha256sums=('2576f9f440dd99b0151bd28f59aa0ac6102d5c4f3ed4ef8a810c8dd05057250d' 'SKIP' 'b6e07703a723efa0e59ef2dac0fae62473d14d67afab606a514a9555ab45b56e') validpgpkeys=('108F66205EAEB0AAA8DD5E1C85AB96E6FA1BE5FE' # Rust Language (Tag and Release Signing Key) '474E22316ABF4785A88C6E8EA2C794A986419D8A' # Tom Stellard 'B6C8F98282B944E3B0D5C2530FC3042E345AD05D') # Hans Wennborg prepare() { # workaround strange symlinking error during a build export MSYS=winsymlinks:nativestrict plain "Extracting ${pkgname}c-${pkgver}-src.tar.gz" tar -xzf ${pkgname}c-${pkgver}-src.tar.gz || true } build() { export RUST_BACKTRACE=1 # force some system libraries export LIBSQLITE3_SYS_USE_PKG_CONFIG=1 export LIBSSH2_SYS_USE_PKG_CONFIG=1 cd "${pkgname}c-${pkgver}-src" # substitute the values in bootstrap.toml export PKGREL="${pkgrel}" envsubst < ../bootstrap.toml > bootstrap.toml if [ "${_bootstrapping}" = "no" ]; then sed -i '/^\[build\]/,/^$/ s|^#||g' bootstrap.toml fi if check_option "debug" "y"; then sed -i 's/^#debug/debug/g' bootstrap.toml fi DESTDIR="$PWD/dest-rust" python x.py install --stage 2 } check() { cd "${pkgname}c-${pkgver}-src" python x.py test --stage 2 --exclude src/test/debuginfo } package_rust() { depends=('gcc' 'zlib' 'libzstd' 'libsqlite' 'libssh2' 'libgit2' 'libopenssl' 'libcurl' 'llvm-libs') optdepends=("gdb: for rust-gdb script" "lldb: for rust-lldb script") cd "${pkgname}c-${pkgver}-src" cp -a dest-rust/* "${pkgdir}" # delete unnecessary files, e.g. components and manifest files only used for the uninstall script cd "${pkgdir}/usr/lib/rustlib" rm components install.log manifest-* rust-installer-version uninstall.sh install -d "${pkgdir}/usr/share/bash-completion/completions" mv "${pkgdir}/etc/bash_completion.d/cargo" \ "${pkgdir}/usr/share/bash-completion/completions/cargo" }