lang/rust: Update to 1.21.0

The official bootstraps wouldn't work: rustc was stalled on a mutex
while compiling a crate early in the build. This was solved by creating
a new bootstraps for "rustc" and "rust-std" from the existing FreeBSD
package. We keep using the official "cargo" bootstrap.

PR:		223123
This commit is contained in:
Jean-Sébastien Pédron 2017-10-28 09:13:21 +00:00
parent 89b1360e42
commit 76740e13d8
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=453052
2 changed files with 72 additions and 39 deletions

View file

@ -2,15 +2,14 @@
# $FreeBSD$
PORTNAME= rust
PORTVERSION?= 1.20.0
PORTREVISION?= 1
PORTVERSION?= 1.21.0
CATEGORIES= lang
MASTER_SITES= http://static.rust-lang.org/dist/:src \
https://static.rust-lang.org/dist/:rust_bootstrap \
LOCAL/dumbbell/rust:rust_bootstrap \
https://static.rust-lang.org/dist/:rust_bootstrap \
LOCAL/dumbbell/rust:cargo_bootstrap \
https://static.rust-lang.org/dist/:cargo_bootstrap \
https://s3.amazonaws.com/rust-lang-ci/cargo-builds/:cargo_bootstrap \
LOCAL/dumbbell/rust:cargo_bootstrap \
LOCAL/marino:bootstrap
DISTNAME?= ${PORTNAME}c-${PORTVERSION}-src
DISTFILES?= ${DISTNAME}${EXTRACT_SUFX}:src \
@ -43,16 +42,13 @@ ONLY_FOR_ARCHS_REASON= requires prebuilt bootstrap compiler
#CONFLICTS_BUILD+= ${PKGBASE}
CONFLICTS_INSTALL?= rust-nightly
BOOTSTRAPS_DATE?= 2017-07-20
BOOTSTRAPS_DATE_aarch64?= 2017-07-20
BOOTSTRAPS_DATE?= 2017-08-31
RUST_BOOTSTRAP_VERSION?= 1.19.0
RUST_BOOTSTRAP_VERSION_aarch64?=1.19.0
RUST_BOOTSTRAP_VERSION?= 1.20.0
RUSTC_BOOTSTRAP= ${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}}/rustc-${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}-${RUST_TARGET}.tar.gz
RUST_STD_BOOTSTRAP= ${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}}/rust-std-${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}-${RUST_TARGET}.tar.gz
CARGO_BOOTSTRAP_VERSION?= 0.20.0
CARGO_BOOTSTRAP_VERSION_aarch64?=0.20.0
CARGO_BOOTSTRAP_VERSION?= 0.21.0
CARGO_BOOTSTRAP= ${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}}/cargo-${CARGO_BOOTSTRAP_VERSION_${ARCH}:U${CARGO_BOOTSTRAP_VERSION}}-${RUST_TARGET}${EXTRACT_SUFX}
RUST_CHANNEL= ${PKGNAMESUFFIX:Ustable:S/^-//}
@ -134,8 +130,9 @@ pre-fetch:
fi
RUST_STD_DIR= ${RUST_STD_BOOTSTRAP:T:R:R}
LIBSTD_SUFFIX= 35ad9950c7e5074b
LIBSTD_SUFFIX_aarch64= ab4dd4f618cec2e9
LIBSTD_SUFFIX_aarch64= 8eed00280b051035
LIBSTD_SUFFIX_amd64= fdf1c4a03a15a71f
LIBSTD_SUFFIX_i386= aaa09cdd21ad338f
LIBSTD= ${RUST_STD_DIR}/rust-std-${RUST_TARGET}/lib/rustlib/${RUST_TARGET}/lib/libstd-${LIBSTD_SUFFIX_${ARCH}:U${LIBSTD_SUFFIX}}.rlib
STDF= ${LIBSTD:T:R:S/lib//}.0.o
@ -168,23 +165,23 @@ post-patch:
# If we override the versions and date of the bootstraps (for instance
# on aarch64 where we provide our own bootstraps), we need to update
# places where they are recorded.
@if test "${BOOTSTRAPS_DATE_${ARCH}}"; then \
@if test "${BOOTSTRAPS_DATE_${ARCH}}" && \
test "${BOOTSTRAPS_DATE_${ARCH}}" != "${BOOTSTRAPS_DATE}"; then \
${REINPLACE_CMD} -e \
's|^date:.*|date: ${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}}|' \
${WRKSRC}/src/stage0.txt; \
fi
@if test "${RUST_BOOTSTRAP_VERSION_${ARCH}}"; then \
@if test "${RUST_BOOTSTRAP_VERSION_${ARCH}}" && \
test "${RUST_BOOTSTRAP_VERSION_${ARCH}}" != "${RUST_BOOTSTRAP_VERSION}"; then \
${REINPLACE_CMD} -e \
's|^rustc:.*|rustc: ${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}|' \
${WRKSRC}/src/stage0.txt; \
fi
@if test "${CARGO_BOOTSTRAP_VERSION_${ARCH}}"; then \
@if test "${CARGO_BOOTSTRAP_VERSION_${ARCH}}" && \
test "${CARGO_BOOTSTRAP_VERSION_${ARCH}}" != "${CARGO_BOOTSTRAP_VERSION}"; then \
${REINPLACE_CMD} -e \
's|^cargo:.*|cargo: ${CARGO_BOOTSTRAP_VERSION_${ARCH}:U${CARGO_BOOTSTRAP_VERSION}}|' \
${WRKSRC}/src/stage0.txt; \
${REINPLACE_CMD} -e \
's|cargo-nightly-|cargo-${CARGO_BOOTSTRAP_VERSION_${ARCH}:U${CARGO_BOOTSTRAP_VERSION}}-|' \
${WRKSRC}/src/bootstrap/bootstrap.py; \
fi
# After patching crates, we need to update their corresponding
# `.cargo-checksum.json` to reflect the new checksums verified by Cargo.
@ -353,4 +350,40 @@ do-test:
--config ./config.toml \
--jobs ${MAKE_JOBS_NUMBER}
BOOTSTRAPS_SOURCE_PKG_FBSDVER= 10
BOOTSTRAPS_SOURCE_PKG_FBSDVER_aarch64= 11
BOOTSTRAPS_SOURCE_PKG_URL= http://pkg.freebsd.org/FreeBSD:${BOOTSTRAPS_SOURCE_PKG_FBSDVER_${ARCH}:U${BOOTSTRAPS_SOURCE_PKG_FBSDVER}}:${ARCH}/latest/All/rust-${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}.txz
BOOTSTRAPS_SOURCE_PKG= ${_DISTDIR}/${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}}/rust-${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}-${ARCH}.txz
package-to-bootstraps: ${BOOTSTRAPS_SOURCE_PKG}
${MKDIR} ${WRKDIR}/bootstraps
${RM} -r ${WRKDIR}/bootstraps/usr
${EXTRACT_CMD} \
-C ${WRKDIR}/bootstraps \
--strip-components 3 \
${EXTRACT_BEFORE_ARGS} ${BOOTSTRAPS_SOURCE_PKG} ${LOCALBASE}
# `rustc` bootstrap.
${RM} -r ${WRKDIR}/bootstraps/rustc-${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}-${RUST_TARGET}
${MKDIR} ${WRKDIR}/bootstraps/rustc-${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}-${RUST_TARGET}
cd ${WRKDIR}/bootstraps/rustc-${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}-${RUST_TARGET} && \
${MKDIR} rustc/bin rustc/lib && \
${MV} ${WRKDIR}/bootstraps/bin/rust* rustc/bin && \
${MV} ${WRKDIR}/bootstraps/lib/*.so rustc/lib
${TAR} -cz --format=ustar -C ${WRKDIR}/bootstraps \
-f ${_DISTDIR}/${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}}/rustc-${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}-${RUST_TARGET}.tar.gz \
rustc-${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}-${RUST_TARGET}
# `rust-std` bootstrap.
${RM} -r ${WRKDIR}/bootstraps/rust-std-${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}-${RUST_TARGET}
${MKDIR} ${WRKDIR}/bootstraps/rust-std-${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}-${RUST_TARGET}
cd ${WRKDIR}/bootstraps/rust-std-${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}-${RUST_TARGET} && \
${MKDIR} rust-std-${RUST_TARGET}/lib/rustlib/${RUST_TARGET} && \
${MV} ${WRKDIR}/bootstraps/lib/rustlib/${RUST_TARGET}/lib rust-std-${RUST_TARGET}/lib/rustlib/${RUST_TARGET}
${TAR} -cz --format=ustar -C ${WRKDIR}/bootstraps \
-f ${_DISTDIR}/${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}}/rust-std-${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}-${RUST_TARGET}.tar.gz \
rust-std-${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}-${RUST_TARGET}
${BOOTSTRAPS_SOURCE_PKG}:
${MKDIR} ${@:H}
${FETCH_CMD} -o $@ ${BOOTSTRAPS_SOURCE_PKG_URL}
.include <bsd.port.post.mk>

View file

@ -1,21 +1,21 @@
TIMESTAMP = 1506544334
SHA256 (rust/rustc-1.20.0-src.tar.gz) = 2aa4875ff4472c6e35262bbb9052cb2623da3dae6084a858cc59d36f33f18214
SIZE (rust/rustc-1.20.0-src.tar.gz) = 50418082
SHA256 (rust/2017-07-20/rustc-1.19.0-aarch64-unknown-freebsd.tar.gz) = 0386e8f2f1b85f40d9d6d15de1b4c4fb384e3b22966f232bc7dac4afc969c4ad
SIZE (rust/2017-07-20/rustc-1.19.0-aarch64-unknown-freebsd.tar.gz) = 43149574
SHA256 (rust/2017-07-20/rust-std-1.19.0-aarch64-unknown-freebsd.tar.gz) = 587369524975204ef503d1d008f703122cf20912bd5f5545efbf2996323e4642
SIZE (rust/2017-07-20/rust-std-1.19.0-aarch64-unknown-freebsd.tar.gz) = 58375655
SHA256 (rust/2017-07-20/cargo-0.20.0-aarch64-unknown-freebsd.tar.gz) = 73ecd5277dc4e44f1616c2bd9e0ea4062e163740d3082d9c64681a856d6b3b83
SIZE (rust/2017-07-20/cargo-0.20.0-aarch64-unknown-freebsd.tar.gz) = 3029610
SHA256 (rust/2017-07-20/rustc-1.19.0-i686-unknown-freebsd.tar.gz) = ee9a40272800d6bca5d797489101bf0629bb8b84b195d402452d24ebd7e07709
SIZE (rust/2017-07-20/rustc-1.19.0-i686-unknown-freebsd.tar.gz) = 54627942
SHA256 (rust/2017-07-20/rust-std-1.19.0-i686-unknown-freebsd.tar.gz) = c06a89909adde2f97c4f280ea186e41d9c47c4999912267e4eb3f6379ac35aa0
SIZE (rust/2017-07-20/rust-std-1.19.0-i686-unknown-freebsd.tar.gz) = 74163023
SHA256 (rust/2017-07-20/cargo-0.20.0-i686-unknown-freebsd.tar.gz) = e43cde13c169be7c738623a8b57023648375d68524e5005df5a907e31fc73a1f
SIZE (rust/2017-07-20/cargo-0.20.0-i686-unknown-freebsd.tar.gz) = 5162200
SHA256 (rust/2017-07-20/rustc-1.19.0-x86_64-unknown-freebsd.tar.gz) = 7f6c02b075b55c897962cd17f05355c7f07a4975c66a4b1dabb10556bd6efb0f
SIZE (rust/2017-07-20/rustc-1.19.0-x86_64-unknown-freebsd.tar.gz) = 52460523
SHA256 (rust/2017-07-20/rust-std-1.19.0-x86_64-unknown-freebsd.tar.gz) = ab1098ec8e8940bbbfec48a9bd1821e5af74b7da4352dd95f16274ab1f437f80
SIZE (rust/2017-07-20/rust-std-1.19.0-x86_64-unknown-freebsd.tar.gz) = 72454102
SHA256 (rust/2017-07-20/cargo-0.20.0-x86_64-unknown-freebsd.tar.gz) = a2460994c0c58bd97d38010c5ac0698137522a4e7730f1480b7a03b3a667e9b9
SIZE (rust/2017-07-20/cargo-0.20.0-x86_64-unknown-freebsd.tar.gz) = 5248001
TIMESTAMP = 1508970863
SHA256 (rust/rustc-1.21.0-src.tar.gz) = 1707c142244b5bd909993559c6116c81987c1de21d6207c05d3ecbe5bba548fa
SIZE (rust/rustc-1.21.0-src.tar.gz) = 52555346
SHA256 (rust/2017-08-31/rustc-1.20.0-aarch64-unknown-freebsd.tar.gz) = 6703e3205c5d7075ea49acb5a0a2bf4fb1dfe3a10daf160a67a1c4376e37e530
SIZE (rust/2017-08-31/rustc-1.20.0-aarch64-unknown-freebsd.tar.gz) = 42731935
SHA256 (rust/2017-08-31/rust-std-1.20.0-aarch64-unknown-freebsd.tar.gz) = 9da54867a9b65e708f7e31c615f7a31bfacad2d9fe5459e570575118f29a122c
SIZE (rust/2017-08-31/rust-std-1.20.0-aarch64-unknown-freebsd.tar.gz) = 59365419
SHA256 (rust/2017-08-31/cargo-0.21.0-aarch64-unknown-freebsd.tar.gz) = 9d556e11ea2f391bfa382f08818185c5d05bf94966ff35ae24e53a510f7ae5da
SIZE (rust/2017-08-31/cargo-0.21.0-aarch64-unknown-freebsd.tar.gz) = 2915815
SHA256 (rust/2017-08-31/rustc-1.20.0-i686-unknown-freebsd.tar.gz) = 58c8c4f73c9170cd0e81071147cd0772fc5e8512f4fcfb6fd08ad2c60b69177d
SIZE (rust/2017-08-31/rustc-1.20.0-i686-unknown-freebsd.tar.gz) = 44170684
SHA256 (rust/2017-08-31/rust-std-1.20.0-i686-unknown-freebsd.tar.gz) = 3426262d596ab8bf41b818965f995588256ae7008c162a39f83eed93ce3c42f8
SIZE (rust/2017-08-31/rust-std-1.20.0-i686-unknown-freebsd.tar.gz) = 60720005
SHA256 (rust/2017-08-31/cargo-0.21.0-i686-unknown-freebsd.tar.gz) = cad85e8beb87eeacfa80944b63653ed00a60b9d6f7e423ea0c58a83db8a2ea4a
SIZE (rust/2017-08-31/cargo-0.21.0-i686-unknown-freebsd.tar.gz) = 5134986
SHA256 (rust/2017-08-31/rustc-1.20.0-x86_64-unknown-freebsd.tar.gz) = d7f06662a29023043e21f598d24803d6c2f0d801635016abb32636b55ca14535
SIZE (rust/2017-08-31/rustc-1.20.0-x86_64-unknown-freebsd.tar.gz) = 43348607
SHA256 (rust/2017-08-31/rust-std-1.20.0-x86_64-unknown-freebsd.tar.gz) = aa1773ec1049247ef0730195eb83a7a73f22df556fe759029679aabe0235a3d3
SIZE (rust/2017-08-31/rust-std-1.20.0-x86_64-unknown-freebsd.tar.gz) = 60215051
SHA256 (rust/2017-08-31/cargo-0.21.0-x86_64-unknown-freebsd.tar.gz) = 522592cdee824d8d7b7c3472f29ded39d10f1fb3d07f3b3ea0673b8edf6d5b66
SIZE (rust/2017-08-31/cargo-0.21.0-x86_64-unknown-freebsd.tar.gz) = 5183277