Skip to content

Commit

Permalink
rust: update to 1.82.0
Browse files Browse the repository at this point in the history
  • Loading branch information
ognevny committed Oct 16, 2024
1 parent 55e4b3b commit 0658379
Show file tree
Hide file tree
Showing 3 changed files with 38 additions and 116 deletions.
93 changes: 37 additions & 56 deletions mingw-w64-rust/PKGBUILD
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@ if [[ $MINGW_PACKAGE_PREFIX == *-clang-* ]]; then
_bootstrapping=no
fi

rust_dist_server=https://static.rust-lang.org/dist
#rust_dist_server=https://dev-static.rust-lang.org/dist/2024-09-03
#rust_dist_server=https://static.rust-lang.org/dist
rust_dist_server=https://dev-static.rust-lang.org/dist/2024-10-14

embed_manifest_version=1.3.1
embed_manifest_url=https://gitlab.com/careyevans/embed-manifest/-/archive/v${embed_manifest_version}/embed-manifest-v${embed_manifest_version}.tar.gz
Expand All @@ -19,8 +19,8 @@ pkgbase=mingw-w64-${_realname}
pkgname=("${MINGW_PACKAGE_PREFIX}-${_realname}"
$([[ ${CARCH} == i686 ]] || echo "${MINGW_PACKAGE_PREFIX}-rust-wasm")
"${MINGW_PACKAGE_PREFIX}-rust-src")
pkgver=1.81.0
pkgrel=5
pkgver=1.82.0
pkgrel=1
pkgdesc="Systems programming language focused on safety, speed and concurrency (mingw-w64)"
arch=('any')
mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clangarm64' 'clang32')
Expand Down Expand Up @@ -54,22 +54,19 @@ source=("${rust_dist_server}/${_realname}c-${pkgver}-src.tar.gz"{,.asc}
"0011-disable-uac-for-installer.patch"
"0012-vendor-embed-manifest.patch"
# remove after 1.83.0 release
"0013-generate-import-libraries-on-gnullvm.patch"
# remove after 1.82.0 release
"fix-bootstrap-on-windows.patch")
"0013-generate-import-libraries-on-gnullvm.patch")
noextract=(${_realname}c-${pkgver}-src.tar.gz)
sha256sums=('872448febdff32e50c3c90a7e15f9bb2db131d13c588fe9071b0ed88837ccfa7'
sha256sums=('371abae5672a31a467c31fa7cfbb6202c89f2351bfb3ec847e96a698f33c6bf2'
'SKIP'
'24ef6d949c0b5b1940c1d6a7aad78d86012152fb8845a1644bc939350d7b75e2'
'3529c569217d5c18dd7b675e0ff1477b4f0386c73b6d8314fe709341bb561d74'
'94f97e1db6abd76930cb99d7b0e27967f28f3734b213c89494c266cd7f6e8eee'
'7cb1773c288ffb1c1e751edc49b1890c84bf9c362742bc5225d19d474edb73a0'
'56882f1a0f1404c10c7726d6cc37444f2b343e72b969badfcb43760f80db0f32'
'7d1c4e49524b835a8eadc961b39f5594b12a522a1e24368999be2c7e85399e4e'
'98bc3f2bd7371a5b8d14fd7b03bf05574e206d1d9e52bcfbe66d71398504da3c'
'761d73328d9695a7a2bd2a10be8225f4a56801fee54cbb51c0841b7f16e2bde6'
'23fc45f4e718770375be1c5196f035075de16d25e8f895100a3d1d2492995f86'
'7ebec5945f9fd38729da513fba8679efbad19bdde8a5d0d8ea097e5b9a7a99db'
'0a9800a4f5e833fc435e86457a1b7a41f32d4bd2c1185d1eada90b28bdf6230c')
'7ebec5945f9fd38729da513fba8679efbad19bdde8a5d0d8ea097e5b9a7a99db')
validpgpkeys=('108F66205EAEB0AAA8DD5E1C85AB96E6FA1BE5FE' # Rust Language (Tag and Release Signing Key) <[email protected]>
'474E22316ABF4785A88C6E8EA2C794A986419D8A' # Tom Stellard <[email protected]>
'B6C8F98282B944E3B0D5C2530FC3042E345AD05D') # Hans Wennborg <[email protected]>
Expand Down Expand Up @@ -99,14 +96,13 @@ apply_patch_with_msg() {

prepare() {
plain "Extracting ${_realname}c-${pkgver}-src.tar.gz"
[[ -d ${srcdir}/${_realname}c-${pkgver}-src ]] && rm -rf ${srcdir}/${_realname}c-${pkgver}-src
tar -xzf ${srcdir}/${_realname}c-${pkgver}-src.tar.gz -C ${srcdir} || true
tar -xzf ${_realname}c-${pkgver}-src.tar.gz || true

# move embed-manifest crate into rust source vendor directory
mv ${srcdir}/embed-manifest-v${embed_manifest_version} ${srcdir}/${_realname}c-${pkgver}-src/vendor/embed-manifest
mv embed-manifest-v${embed_manifest_version} ${_realname}c-${pkgver}-src/vendor/embed-manifest

# 0008-disable-self-contained-for-gnu-targets.patch allows self-contained for non-windows-gnu targets
cd ${srcdir}/${_realname}c-${pkgver}-src
cd ${_realname}c-${pkgver}-src
apply_patch_with_msg \
0001-rustc-llvm-fix-libs.patch \
0005-win32-config.patch \
Expand All @@ -124,20 +120,10 @@ prepare() {
apply_patch_with_msg \
0004-compiler-Use-wasm-ld-for-wasm-targets.patch
fi

# https://github.com/rust-lang/rust/pull/128977
apply_patch_with_msg \
fix-bootstrap-on-windows.patch

# update windows-targets to support i686-pc-windows-gnullvm. remove after 1.82.0 release
if [[ ${MSYSTEM} == CLANG32 ]]; then
cd src/bootstrap
cargo update -p [email protected] --precise 0.52.6
fi
}

build() {
mkdir -p "${srcdir}/${MSYSTEM}" && cd "${srcdir}/${MSYSTEM}"
mkdir -p "${MSYSTEM}" && cd "${MSYSTEM}"

# hack to inject the bootstrap compiler
if [[ $_bootstrapping != "no" && $MINGW_PACKAGE_PREFIX == *-clang-aarch64 ]]; then
Expand All @@ -157,15 +143,9 @@ build() {
else
# We have to do the following because rust doesn't count x86_64-w64-mingw32 as a target triple
export OSTYPE="$CARCH-pc-windows-gnu"

# Otherwise it uses gcc during bootstrap, even when we build for clang
export CARGO_TARGET_${CARCH^^}_PC_WINDOWS_GNU_LINKER="${CC}"
fi

# avoid OOMing in some cases
if [[ ${CARCH} == i686 ]]; then
LDFLAGS+=" -Wl,--large-address-aware"
elif [[ $MINGW_PACKAGE_PREFIX != *-clang-aarch64 ]]; then
if [[ $MINGW_PACKAGE_PREFIX != *-clang-aarch64 ]]; then
local _unsupported_options="-march=nocona -msahf"
# Remove unsupported options for target wasm32-*
export CFLAGS="${CFLAGS#$_unsupported_options}"
Expand All @@ -190,19 +170,19 @@ build() {
export MSYS2_ENV_CONV_EXCL='INSTALL_PREFIX'
export INSTALL_PREFIX="${MINGW_PREFIX}"
export PKGREL="${pkgrel}"
envsubst < "${srcdir}/config.toml" > "${srcdir}/${_realname}c-${pkgver}-src/config.toml"
envsubst < ../config.toml > "../${_realname}c-${pkgver}-src/config.toml"

if [ "${_bootstrapping}" = "no" ]; then
sed -i '/^\[build\]/,/^$/ s|^#||g' "${srcdir}/${_realname}c-${pkgver}-src/config.toml"
sed -i '/^\[build\]/,/^$/ s|^#||g' "../${_realname}c-${pkgver}-src/config.toml"
fi
# generate debuginfo only for non-i686 targets
if check_option "debug" "y" && [ "${CARCH}" != i686 ]; then
sed -i 's/^#debug/debug/g' "${srcdir}/${_realname}c-${pkgver}-src/config.toml"
sed -i 's/^#debug/debug/g' "../${_realname}c-${pkgver}-src/config.toml"
fi

# Add target wasm32-*
if [[ ${CARCH} != i686 ]]; then
sed -i '/target = \[/a\ "wasm32-unknown-unknown", "wasm32-wasip1", "wasm32-wasip1-threads", "wasm32-wasip2",' "${srcdir}/${_realname}c-${pkgver}-src/config.toml"
sed -i '/target = \[/a\ "wasm32-unknown-unknown", "wasm32-wasip1", "wasm32-wasip1-threads", "wasm32-wasip2",' "../${_realname}c-${pkgver}-src/config.toml"
fi

# Building out of tree is not officially supported so we have to workaround some things like vendored deps
Expand All @@ -217,26 +197,26 @@ build() {
DEP_NGHTTP_ROOT=${MINGW_PREFIX} \
DEP_OPENSSL_ROOT=${MINGW_PREFIX} \
DEP_Z_ROOT=${MINGW_PREFIX} \
DESTDIR="$PWD"/dest-rust ${MINGW_PREFIX}/bin/python ../${_realname}c-${pkgver}-src/x.py install "${_rust_build[@]}"
DESTDIR="$PWD"/dest-rust python ../${_realname}c-${pkgver}-src/x.py install "${_rust_build[@]}"

if [[ ${CARCH} != i686 ]]; then
# move wasm32-* targets out of the way for splitting
mkdir -p dest-wasm/${MINGW_PREFIX}/lib/rustlib
mv dest-rust/${MINGW_PREFIX}/lib/rustlib/wasm32-* dest-wasm/${MINGW_PREFIX}/lib/rustlib
mkdir -p dest-wasm${MINGW_PREFIX}/lib/rustlib
mv dest-rust${MINGW_PREFIX}/lib/rustlib/wasm32-* dest-wasm/${MINGW_PREFIX}/lib/rustlib
fi

# move src out of the way for splitting
mv dest-rust/${MINGW_PREFIX}/lib/rustlib/src dest-src
mv dest-rust${MINGW_PREFIX}/lib/rustlib/src dest-src

rm -f dest-rust/${MINGW_PREFIX}/lib/rustlib/$OSTYPE/lib/self-contained/*
rm -f dest-rust${MINGW_PREFIX}/lib/rustlib/$OSTYPE/lib/self-contained/*
}

check() {
cd "${srcdir}/${MSYSTEM}"
cd "${MSYSTEM}"
DEP_NGHTTP_ROOT=${MINGW_PREFIX} \
DEP_OPENSSL_ROOT=${MINGW_PREFIX} \
DEP_Z_ROOT=${MINGW_PREFIX} \
${MINGW_PREFIX}/bin/python ../${_realname}c-${pkgver}-src/x.py test --stage 2 --exclude src/test/debuginfo
python ../${_realname}c-${pkgver}-src/x.py test --stage 2 --exclude src/test/debuginfo
}

package_rust() {
Expand All @@ -247,41 +227,42 @@ package_rust() {
conflicts=("${MINGW_PACKAGE_PREFIX}-rust-docs")
replaces=("${MINGW_PACKAGE_PREFIX}-rust-docs")

cd "${srcdir}/${MSYSTEM}"
cd "${MSYSTEM}"

cp -a dest-rust/* "$pkgdir"
cp -a dest-rust/* "${pkgdir}"

# delete unnecessary files, e.g. components and manifest files only used for the uninstall script
cd "$pkgdir"/${MINGW_PREFIX}/lib/rustlib
cd "${pkgdir}${MINGW_PREFIX}/lib/rustlib"
rm components install.log manifest-* rust-installer-version uninstall.sh

install -d "$pkgdir/${MINGW_PREFIX}/share/bash-completion/completions"
install -d "${pkgdir}${MINGW_PREFIX}/share/bash-completion/completions"
mv "${pkgdir}${MINGW_PREFIX}/etc/bash_completion.d/cargo" \
"${pkgdir}${MINGW_PREFIX}/share/bash-completion/completions/cargo"
}

package_rust-wasm() {
pkgdesc="WebAssembly targets for Rust"
pkgdesc="WebAssembly targets for Rust (mingw-w64)"
depends=("${MINGW_PACKAGE_PREFIX}-lld"
"${MINGW_PACKAGE_PREFIX}-rust"
"${MINGW_PACKAGE_PREFIX}-wasm-component-ld")
# object files provided for wasm32-* targets can't be stripped with MSYS2 toolchain
options=('!strip')

cd "${srcdir}/${MSYSTEM}"
cd "${MSYSTEM}"

cp -a dest-wasm/* "$pkgdir"
install -Dm644 "${srcdir}"/${_realname}c-${pkgver}-src/LICENSE-APACHE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}-wasm/LICENSE-APACHE"
install -Dm644 "${srcdir}"/${_realname}c-${pkgver}-src/LICENSE-MIT "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}-wasm/LICENSE-MIT"
cp -a dest-wasm/* "${pkgdir}"
install -Dm644 ../${_realname}c-${pkgver}-src/LICENSE-{APACHE,MIT} -t \
"${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}-wasm/"
}

package_rust-src() {
pkgdesc='Source code for the Rust standard library (mingw-w64)'
depends=("${MINGW_PACKAGE_PREFIX}-rust")

cd "${srcdir}/${MSYSTEM}"
install -Dm644 "${srcdir}"/${_realname}c-${pkgver}-src/LICENSE-APACHE "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}-src/LICENSE-APACHE"
install -Dm644 "${srcdir}"/${_realname}c-${pkgver}-src/LICENSE-MIT "${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}-src/LICENSE-MIT"
cd "${MSYSTEM}"

install -Dm644 ../${_realname}c-${pkgver}-src/LICENSE-{APACHE,MIT} -t \
"${pkgdir}${MINGW_PREFIX}/share/licenses/${_realname}-src/"

install -d "${pkgdir}${MINGW_PREFIX}/lib/rustlib/"
cp -a dest-src "${pkgdir}${MINGW_PREFIX}/lib/rustlib/src"
Expand Down
3 changes: 1 addition & 2 deletions mingw-w64-rust/config.toml
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
profile = "dist"

# see src/bootstrap/src/utils/change_tracker.rs
change-id = 127866
change-id = 129295

[build]
#cargo = "$MINGW_PREFIX/bin/cargo.exe"
Expand Down Expand Up @@ -40,7 +40,6 @@ sysconfdir = "etc"
codegen-units-std = 1
#debuginfo-level-std = 2
parallel-compiler = false
channel = "stable"
description = "Rev$PKGREL, Built by MSYS2 project"
rpath = false
frame-pointers = true
Expand Down
58 changes: 0 additions & 58 deletions mingw-w64-rust/fix-bootstrap-on-windows.patch

This file was deleted.

0 comments on commit 0658379

Please sign in to comment.