Index: lang/rust/Makefile =================================================================== --- lang/rust/Makefile +++ lang/rust/Makefile @@ -6,7 +6,9 @@ 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://s3.amazonaws.com/rust-lang-ci/cargo-builds/:cargo_bootstrap \ + LOCAL/dumbbell/rust:cargo_bootstrap \ LOCAL/marino:bootstrap DISTNAME?= ${PORTNAME}c-${PORTVERSION}-src BOOTSTRAP_FILES=${RUSTC_BOOTSTRAP}:rust_bootstrap \ @@ -33,7 +35,7 @@ BUILD_DEPENDS= cmake:devel/cmake -ONLY_FOR_ARCHS?= amd64 i386 +ONLY_FOR_ARCHS?= aarch64 amd64 i386 ONLY_FOR_ARCHS_REASON= requires prebuilt bootstrap compiler # FIXME: The bootstrapped rustc adds -L/usr/local/lib in front of @@ -44,21 +46,26 @@ CONFLICTS_INSTALL?= rust-nightly RUST_BOOTSTRAP_DIR?= 2017-03-11 +RUST_BOOTSTRAP_DIR_aarch64?= 2017-04-24 RUST_BOOTSTRAP_VERSION?= 1.16.0 -RUSTC_BOOTSTRAP= ${RUST_BOOTSTRAP_DIR}/rustc-${RUST_BOOTSTRAP_VERSION}-${RUST_TARGET}.tar.gz -RUST_STD_BOOTSTRAP= ${RUST_BOOTSTRAP_DIR}/rust-std-${RUST_BOOTSTRAP_VERSION}-${RUST_TARGET}.tar.gz +RUST_BOOTSTRAP_VERSION_aarch64?=1.17.0 +RUSTC_BOOTSTRAP= ${RUST_BOOTSTRAP_DIR_${ARCH}:U${RUST_BOOTSTRAP_DIR}}/rustc-${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}-${RUST_TARGET}.tar.gz +RUST_STD_BOOTSTRAP= ${RUST_BOOTSTRAP_DIR_${ARCH}:U${RUST_BOOTSTRAP_DIR}}/rust-std-${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}-${RUST_TARGET}.tar.gz CARGO_BOOTSTRAP_DIR?= 6b05583d71f982bcad049b9fa094c637c062e751 +CARGO_BOOTSTRAP_DIR_aarch64?= 2017-04-24 CARGO_BOOTSTRAP_VERSION?= nightly -CARGO_BOOTSTRAP= ${CARGO_BOOTSTRAP_DIR}/cargo-${CARGO_BOOTSTRAP_VERSION}-${RUST_TARGET}.tar.gz +CARGO_BOOTSTRAP_VERSION_aarch64?=0.18.0 +CARGO_BOOTSTRAP= ${CARGO_BOOTSTRAP_DIR_${ARCH}:U${CARGO_BOOTSTRAP_DIR}}/cargo-${CARGO_BOOTSTRAP_VERSION_${ARCH}:U${CARGO_BOOTSTRAP_VERSION}}-${RUST_TARGET}.tar.gz CARGO_REGISTRY= ${PORTNAME}-registry-${DISTVERSIONFULL}.tar.xz RUST_CHANNEL= ${PKGNAMESUFFIX:Ustable:S/^-//} # Rust's target arch string is different from *BSD arch strings -RUST_ARCH_x86_64= x86_64 # dragonfly +RUST_ARCH_aarch64= aarch64 RUST_ARCH_amd64= x86_64 RUST_ARCH_i386= i686 +RUST_ARCH_x86_64= x86_64 # dragonfly RUST_TARGET= ${RUST_ARCH_${ARCH}}-unknown-${OPSYS:tl} PLIST_SUB+= RUST_TARGET=${RUST_TARGET} @@ -131,14 +138,14 @@ post-extract: @${MKDIR} \ - ${WRKSRC}/build/cache/${RUST_BOOTSTRAP_DIR} \ - ${WRKSRC}/build/cache/${CARGO_BOOTSTRAP_DIR} + ${WRKSRC}/build/cache/${RUST_BOOTSTRAP_DIR_${ARCH}:U${RUST_BOOTSTRAP_DIR}} \ + ${WRKSRC}/build/cache/${CARGO_BOOTSTRAP_DIR_${ARCH}:U${CARGO_BOOTSTRAP_DIR}} ${LN} -sf ${DISTDIR}/${DIST_SUBDIR}/${RUSTC_BOOTSTRAP} \ - ${WRKSRC}/build/cache/${RUST_BOOTSTRAP_DIR} + ${WRKSRC}/build/cache/${RUST_BOOTSTRAP_DIR_${ARCH}:U${RUST_BOOTSTRAP_DIR}} ${LN} -sf ${DISTDIR}/${DIST_SUBDIR}/${RUST_STD_BOOTSTRAP} \ - ${WRKSRC}/build/cache/${RUST_BOOTSTRAP_DIR} + ${WRKSRC}/build/cache/${RUST_BOOTSTRAP_DIR_${ARCH}:U${RUST_BOOTSTRAP_DIR}} ${LN} -sf ${DISTDIR}/${DIST_SUBDIR}/${CARGO_BOOTSTRAP} \ - ${WRKSRC}/build/cache/${CARGO_BOOTSTRAP_DIR} + ${WRKSRC}/build/cache/${CARGO_BOOTSTRAP_DIR_${ARCH}:U${CARGO_BOOTSTRAP_DIR}} post-patch: @test ! -f ${WRKSRC}/mk/main.mk || \ @@ -146,6 +153,21 @@ ${WRKSRC}/mk/main.mk @${REINPLACE_CMD} -e 's|gdb|${LOCALBASE}/bin/gdb|' \ ${WRKSRC}/src/etc/rust-gdb + @if test "${RUST_BOOTSTRAP_DIR_${ARCH}}" -o "${RUST_BOOTSTRAP_VERSION_${ARCH}}"; then \ + ${REINPLACE_CMD} -e \ + 's|^rustc:.*|rustc: ${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}}-${RUST_BOOTSTRAP_DIR_${ARCH}:U${RUST_BOOTSTRAP_DIR}}|' \ + ${WRKSRC}/src/stage0.txt; \ + fi + @if test "${CARGO_BOOTSTRAP_DIR_${ARCH}}"; then \ + ${REINPLACE_CMD} -e \ + 's|^cargo:.*|cargo: ${RUST_BOOTSTRAP_DIR_${ARCH}:U${RUST_BOOTSTRAP_DIR}}|' \ + ${WRKSRC}/src/stage0.txt; \ + fi + @if test "${CARGO_BOOTSTRAP_VERSION_${ARCH}}"; then \ + ${REINPLACE_CMD} -e \ + 's|cargo-nightly-|cargo-${CARGO_BOOTSTRAP_VERSION_${ARCH}:U${CARGO_BOOTSTRAP_VERSION}}-|' \ + ${WRKSRC}/src/bootstrap/bootstrap.py; \ + fi # In case the previous "make stage" failed, this ensures rust's # install.sh won't backup previously staged files before reinstalling Index: lang/rust/distinfo =================================================================== --- lang/rust/distinfo +++ lang/rust/distinfo @@ -7,6 +7,12 @@ SIZE (rust/2017-03-11/rust-std-1.16.0-x86_64-unknown-freebsd.tar.gz) = 54920061 SHA256 (rust/6b05583d71f982bcad049b9fa094c637c062e751/cargo-nightly-x86_64-unknown-freebsd.tar.gz) = 924b172afe6a990ae19b346ef5ca2a6203f68a22af8d7229039fdc28068ff125 SIZE (rust/6b05583d71f982bcad049b9fa094c637c062e751/cargo-nightly-x86_64-unknown-freebsd.tar.gz) = 4970379 +SHA256 (rust/2017-04-24/rustc-1.17.0-aarch64-unknown-freebsd.tar.gz) = 85c234018cfc7548051d6f726a379ba2c37b80c393a74a96e7212a0c4e15e92e +SIZE (rust/2017-04-24/rustc-1.17.0-aarch64-unknown-freebsd.tar.gz) = 33612511 +SHA256 (rust/2017-04-24/rust-std-1.17.0-aarch64-unknown-freebsd.tar.gz) = a86d963998cce1f357cbb748c0cd45307255eac964181f3879348e44faf6772c +SIZE (rust/2017-04-24/rust-std-1.17.0-aarch64-unknown-freebsd.tar.gz) = 43207694 +SHA256 (rust/2017-04-24/cargo-0.18.0-aarch64-unknown-freebsd.tar.gz) = 8cdbf046bfc98e1cb92b89c306e4389b92a8df9db44b8f7c784aaac25ad52877 +SIZE (rust/2017-04-24/cargo-0.18.0-aarch64-unknown-freebsd.tar.gz) = 2935624 SHA256 (rust/2017-03-11/rustc-1.16.0-i686-unknown-freebsd.tar.gz) = 6d32e211c0e9d33adc65f96f06d3996d8e167a29df85ddc6d877d424f82c7443 SIZE (rust/2017-03-11/rustc-1.16.0-i686-unknown-freebsd.tar.gz) = 42809380 SHA256 (rust/2017-03-11/rust-std-1.16.0-i686-unknown-freebsd.tar.gz) = 62c2f030cefe475b7c9e349543f134d3a9ad22830b0422db8230f47e7619fc5f