Date: Tue, 28 Apr 2020 04:33:36 +0000 (UTC) From: Tobias Kortkamp <tobik@FreeBSD.org> To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r533234 - head/lang/rust Message-ID: <202004280433.03S4Xar5058150@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: tobik Date: Tue Apr 28 04:33:35 2020 New Revision: 533234 URL: https://svnweb.freebsd.org/changeset/ports/533234 Log: lang/rust: Let the framework extract the bootstraps It is possible for lang/python37 to be built in such a way that it installs an unloadable lzma module which then causes Rust to fallback to trying to fetch/extract the tar.gz bootstraps instead. As a workaround and since it also simplifies some things, let the ports framework extract the bootstraps and "install" them under WRKDIR. We point the build to them in config.toml. This is similar to how things are hooked up in lang/rust-bootstrap and Rust will then not try to fetch and extract the bootstraps on its own. PR: 243766 Reviewed by: mikael Differential Revision: https://reviews.freebsd.org/D24582 Modified: head/lang/rust/Makefile Modified: head/lang/rust/Makefile ============================================================================== --- head/lang/rust/Makefile Tue Apr 28 03:55:36 2020 (r533233) +++ head/lang/rust/Makefile Tue Apr 28 04:33:35 2020 (r533234) @@ -14,7 +14,6 @@ DISTFILES?= ${NIGHTLY_DATE:D${NIGHTLY_DATE}/}${DISTNAM ${_RUST_STD_BOOTSTRAP}${BOOTSTRAPS_SUFFIX}${EXTRACT_SUFX}:bootstrap \ ${_CARGO_BOOTSTRAP}${BOOTSTRAPS_SUFFIX}${EXTRACT_SUFX}:bootstrap DIST_SUBDIR?= rust -EXTRACT_ONLY?= ${DISTFILES:N*\:bootstrap:C/:.*//} MAINTAINER= rust@FreeBSD.org COMMENT= Language with a focus on memory safety and concurrency @@ -100,29 +99,11 @@ IGNORE= fails to run due to a bug in rtld, update to 1 IGNORE= fails to build with qemu-user-static .endif -post-extract: - @${MKDIR} ${WRKSRC}/build/cache/${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}} - ${LN} -sf ${DISTDIR}/${DIST_SUBDIR}/${_RUSTC_BOOTSTRAP}${BOOTSTRAPS_SUFFIX}${EXTRACT_SUFX} \ - ${WRKSRC}/build/cache/${_RUSTC_BOOTSTRAP}${EXTRACT_SUFX} - ${LN} -sf ${DISTDIR}/${DIST_SUBDIR}/${_RUST_STD_BOOTSTRAP}${BOOTSTRAPS_SUFFIX}${EXTRACT_SUFX} \ - ${WRKSRC}/build/cache/${_RUST_STD_BOOTSTRAP}${EXTRACT_SUFX} - ${LN} -sf ${DISTDIR}/${DIST_SUBDIR}/${_CARGO_BOOTSTRAP}${BOOTSTRAPS_SUFFIX}${EXTRACT_SUFX} \ - ${WRKSRC}/build/cache/${_CARGO_BOOTSTRAP}${EXTRACT_SUFX} - post-patch: @${REINPLACE_CMD} 's,gdb,${LOCALBASE}/bin/gdb,' ${WRKSRC}/src/etc/rust-gdb - @${ECHO_MSG} "Canonical bootstrap date and version before patching:" - @${GREP} -E '^(date|rustc|cargo)' ${WRKSRC}/src/stage0.txt -# 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. - @${REINPLACE_CMD} -e 's,^date:.*,date: ${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}},' \ - -e 's,^rustc:.*,rustc: ${RUST_BOOTSTRAP_VERSION_${ARCH}:U${RUST_BOOTSTRAP_VERSION}},' \ - -e '/^rustfmt:/d' \ - -e 's,^cargo:.*,cargo: ${CARGO_BOOTSTRAP_VERSION_${ARCH}:U${CARGO_BOOTSTRAP_VERSION}},' \ - ${WRKSRC}/src/stage0.txt - @${ECHO_MSG} "Bootstrap date and version after patching:" - @${GREP} -E '^(date|rustc|cargo)' ${WRKSRC}/src/stage0.txt +.if defined(NIGHTLY_DATE) + @${REINPLACE_CMD} '/^rustfmt:/d' ${WRKSRC}/src/stage0.txt +.endif .if ${ARCH} == powerpc64 # Starting with 13.0 powerpc64 is ELFv2 while 12.0 is ELFv1. Pass the correct LLVM target triple. @${REINPLACE_CMD} 's,powerpc64-unknown-freebsd,powerpc64-unknown-freebsd${OSREL},' \ @@ -141,6 +122,11 @@ do-configure: # Check that the running kernel has COMPAT_FREEBSD11 required by lang/rust post-ino64 @${SETENV} CC="${CC}" OPSYS="${OPSYS}" OSVERSION="${OSVERSION}" WRKDIR="${WRKDIR}" \ ${SH} ${SCRIPTSDIR}/rust-compat11-canary.sh +.for _component in cargo rust-std rustc + @cd ${WRKDIR}/${_component}-*-${OPSYS:tl} && \ + ${SH} install.sh --disable-ldconfig --prefix=${WRKDIR}/bootstrap \ + --verbose +.endfor @${ECHO_CMD} '[build]' > ${WRKSRC}/config.toml @${ECHO_CMD} 'vendor=true' >> ${WRKSRC}/config.toml @${ECHO_CMD} 'extended=true' >> ${WRKSRC}/config.toml @@ -148,6 +134,8 @@ do-configure: @${ECHO_CMD} 'docs=${_RUST_BUILD_DOCS}' >> ${WRKSRC}/config.toml @${ECHO_CMD} 'verbose=2' >> ${WRKSRC}/config.toml @${ECHO_CMD} 'target=[${_RUST_TARGETS:@.target.@"${.target.}"@:ts,}]' >> ${WRKSRC}/config.toml + @${ECHO_CMD} 'cargo="${WRKDIR}/bootstrap/bin/cargo"' >> ${WRKSRC}/config.toml + @${ECHO_CMD} 'rustc="${WRKDIR}/bootstrap/bin/rustc"' >> ${WRKSRC}/config.toml @${ECHO_CMD} '[install]' >> ${WRKSRC}/config.toml @${ECHO_CMD} 'prefix="${PREFIX}"' >> ${WRKSRC}/config.toml @${ECHO_CMD} 'sysconfdir="${PREFIX}/etc"' >> ${WRKSRC}/config.toml
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202004280433.03S4Xar5058150>