lang/rust: sync with upstream

Taken from: HardenedBSD
This commit is contained in:
Franco Fichtner 2019-11-17 04:13:05 +01:00
parent 250056f648
commit f9fe208b96
3 changed files with 133 additions and 52 deletions

View File

@ -14,9 +14,9 @@ MASTER_SITES= https://static.rust-lang.org/dist/:src \
https://github.com/llvm/llvm-project/releases/download/llvmorg-${COMPILER_RT_VERSION}/:compiler_rt
DISTNAME?= ${PORTNAME}c-${PORTVERSION}-src
DISTFILES?= ${NIGHTLY_SUBDIR}${DISTNAME}${EXTRACT_SUFX}:src \
${_RUSTC_BOOTSTRAP}${BOOTSTRAPS_SUFFIX}.tar.gz:rust_bootstrap \
${_RUST_STD_BOOTSTRAP}${BOOTSTRAPS_SUFFIX}.tar.gz:rust_bootstrap \
${_CARGO_BOOTSTRAP}${BOOTSTRAPS_SUFFIX}.tar.gz:cargo_bootstrap \
${_RUSTC_BOOTSTRAP}${BOOTSTRAPS_SUFFIX}${EXTRACT_SUFX}:rust_bootstrap \
${_RUST_STD_BOOTSTRAP}${BOOTSTRAPS_SUFFIX}${EXTRACT_SUFX}:rust_bootstrap \
${_CARGO_BOOTSTRAP}${BOOTSTRAPS_SUFFIX}${EXTRACT_SUFX}:cargo_bootstrap \
${DISTFILES_${ARCH}}
DISTFILES_armv6= compiler-rt-${COMPILER_RT_VERSION}.src.tar.xz:compiler_rt
DISTFILES_armv7= compiler-rt-${COMPILER_RT_VERSION}.src.tar.xz:compiler_rt
@ -41,7 +41,7 @@ LIB_DEPENDS= libcurl.so:ftp/curl \
libgit2.so:devel/libgit2 \
libssh2.so:security/libssh2
USES= pkgconfig python:build ssl tar:xz
USES= pkgconfig python:3.3+,build ssl tar:xz
CONFLICTS_INSTALL?= rust-nightly
@ -106,12 +106,12 @@ X_PY_CMD= ${PYTHON_CMD} ${WRKSRC}/x.py
post-extract:
@${MKDIR} ${WRKSRC}/build/cache/${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}}
${LN} -sf ${DISTDIR}/${DIST_SUBDIR}/${_RUSTC_BOOTSTRAP}${BOOTSTRAPS_SUFFIX}.tar.gz \
${WRKSRC}/build/cache/${_RUSTC_BOOTSTRAP}.tar.gz
${LN} -sf ${DISTDIR}/${DIST_SUBDIR}/${_RUST_STD_BOOTSTRAP}${BOOTSTRAPS_SUFFIX}.tar.gz \
${WRKSRC}/build/cache/${_RUST_STD_BOOTSTRAP}.tar.gz
${LN} -sf ${DISTDIR}/${DIST_SUBDIR}/${_CARGO_BOOTSTRAP}${BOOTSTRAPS_SUFFIX}.tar.gz \
${WRKSRC}/build/cache/${_CARGO_BOOTSTRAP}.tar.gz
${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}
.if ${ARCH} == armv6 || ${ARCH} == armv7
${LN} -sf ${WRKDIR}/compiler-rt-${COMPILER_RT_VERSION}.src ${WRKSRC}/src/llvm-project/compiler-rt
.endif

View File

@ -1,47 +1,47 @@
TIMESTAMP = 1573135953
SHA256 (rust/rustc-1.39.0-src.tar.xz) = 4b0dbb356070687a606034f71dc032b783bbf8b5d3f9fff39f2c1fbc4f171c29
SIZE (rust/rustc-1.39.0-src.tar.xz) = 96495140
SHA256 (rust/2019-09-26/rustc-1.38.0-aarch64-unknown-freebsd.tar.gz) = 07a769da1a47e8f507e87d723b7de115b1ea916f34339b0fe5bc583a75e0f3ea
SIZE (rust/2019-09-26/rustc-1.38.0-aarch64-unknown-freebsd.tar.gz) = 37145293
SHA256 (rust/2019-09-26/rust-std-1.38.0-aarch64-unknown-freebsd.tar.gz) = 18b84f46c767071e282fe9a5813317294b0cb7959f6ab30abd0a949531eb2817
SIZE (rust/2019-09-26/rust-std-1.38.0-aarch64-unknown-freebsd.tar.gz) = 191199264
SHA256 (rust/2019-09-26/cargo-0.39.0-aarch64-unknown-freebsd.tar.gz) = 2b97bda932259c10b41583226539bcd637d0efa6253a3eb390f622e6f7f6d27d
SIZE (rust/2019-09-26/cargo-0.39.0-aarch64-unknown-freebsd.tar.gz) = 4556329
SHA256 (rust/2019-09-26/rustc-1.38.0-x86_64-unknown-freebsd.tar.gz) = 1d99318bbdc947c6dc375215f0eddcd767348c309811cd141e5d18e17d5aaaa4
SIZE (rust/2019-09-26/rustc-1.38.0-x86_64-unknown-freebsd.tar.gz) = 49746736
SHA256 (rust/2019-09-26/rust-std-1.38.0-x86_64-unknown-freebsd.tar.gz) = 9f1d88449ef56c31ebc514873ba4d5889fa12697c4c2ea1071f15127f301ac4d
SIZE (rust/2019-09-26/rust-std-1.38.0-x86_64-unknown-freebsd.tar.gz) = 218121173
SHA256 (rust/2019-09-26/cargo-0.39.0-x86_64-unknown-freebsd.tar.gz) = 4ef06348157836fd6a144acc13578653d77ff05d0b1a220437b8cde0492c8dd2
SIZE (rust/2019-09-26/cargo-0.39.0-x86_64-unknown-freebsd.tar.gz) = 6793022
SHA256 (rust/2019-09-26/rustc-1.38.0-armv6-unknown-freebsd.tar.gz) = 33e0d04dd94c5a0c6c546cf9c1aefb79d7141b1612635f88d02cd0e693c50e1d
SIZE (rust/2019-09-26/rustc-1.38.0-armv6-unknown-freebsd.tar.gz) = 39977103
SHA256 (rust/2019-09-26/rust-std-1.38.0-armv6-unknown-freebsd.tar.gz) = 35648a4c90b9f9a5c92bcefc9bf493f446fa53da746eec84fa0b7112b5bd4245
SIZE (rust/2019-09-26/rust-std-1.38.0-armv6-unknown-freebsd.tar.gz) = 198873440
SHA256 (rust/2019-09-26/cargo-0.39.0-armv6-unknown-freebsd.tar.gz) = d4b88144a7aae90ea3174bff8cfe0142b1a761e5ad50adfd24d39fa713682712
SIZE (rust/2019-09-26/cargo-0.39.0-armv6-unknown-freebsd.tar.gz) = 5583543
SHA256 (rust/2019-09-26/rustc-1.38.0-aarch64-unknown-freebsd.tar.xz) = 44abd5b5ec1aac0e2e250d8b05bfb744cfff00fcda0f227d66315a533bde3dc9
SIZE (rust/2019-09-26/rustc-1.38.0-aarch64-unknown-freebsd.tar.xz) = 23883616
SHA256 (rust/2019-09-26/rust-std-1.38.0-aarch64-unknown-freebsd.tar.xz) = fa9e8780cc40b9db916b746ca189ae51cc4f3dafcd0672bf7f4799cbae40fab9
SIZE (rust/2019-09-26/rust-std-1.38.0-aarch64-unknown-freebsd.tar.xz) = 162273100
SHA256 (rust/2019-09-26/cargo-0.39.0-aarch64-unknown-freebsd.tar.xz) = d60e8f39bef4fa04aec1ba0e9f53faf3c32d311667b2f95cbc300879d4933dc9
SIZE (rust/2019-09-26/cargo-0.39.0-aarch64-unknown-freebsd.tar.xz) = 2987936
SHA256 (rust/2019-09-26/rustc-1.38.0-x86_64-unknown-freebsd.tar.xz) = 7609333d9ae4e9e3da182c914f0d312b9463beee77b7c445fad2197b0656bab2
SIZE (rust/2019-09-26/rustc-1.38.0-x86_64-unknown-freebsd.tar.xz) = 33259900
SHA256 (rust/2019-09-26/rust-std-1.38.0-x86_64-unknown-freebsd.tar.xz) = f01d0f7bcfe07ef363a4ae74058e3d9570a2bfdaa1f01db615d8f5a219e59d4b
SIZE (rust/2019-09-26/rust-std-1.38.0-x86_64-unknown-freebsd.tar.xz) = 186447712
SHA256 (rust/2019-09-26/cargo-0.39.0-x86_64-unknown-freebsd.tar.xz) = e522e6b66e8ec286dd002d138f4e94a0730f32ff79376c6d2a00379ee9fceacf
SIZE (rust/2019-09-26/cargo-0.39.0-x86_64-unknown-freebsd.tar.xz) = 4899828
SHA256 (rust/2019-09-26/rustc-1.38.0-armv6-unknown-freebsd.tar.xz) = 462fe4db32640138e3a14db38bfcac910ff678b7f4008e561d66c9eee67ae117
SIZE (rust/2019-09-26/rustc-1.38.0-armv6-unknown-freebsd.tar.xz) = 25395180
SHA256 (rust/2019-09-26/rust-std-1.38.0-armv6-unknown-freebsd.tar.xz) = 72aee35e3c6e04ac68d21d45c444264672c69be11896841ba13d2daa651dcb2f
SIZE (rust/2019-09-26/rust-std-1.38.0-armv6-unknown-freebsd.tar.xz) = 167971780
SHA256 (rust/2019-09-26/cargo-0.39.0-armv6-unknown-freebsd.tar.xz) = f66284f9d4ea93117d0ef9e4ba3af38e0e49d39fc33ccca64965a73fae0d8adf
SIZE (rust/2019-09-26/cargo-0.39.0-armv6-unknown-freebsd.tar.xz) = 3624392
SHA256 (rust/compiler-rt-9.0.0.src.tar.xz) = 56e4cd96dd1d8c346b07b4d6b255f976570c6f2389697347a6c3dcb9e820d10e
SIZE (rust/compiler-rt-9.0.0.src.tar.xz) = 1993084
SHA256 (rust/2019-09-26/rustc-1.38.0-armv7-unknown-freebsd.tar.gz) = 95e33dda5c68ff0a8452472079f852e449bbcdbaf60ef0aca8068bd23d81f4d2
SIZE (rust/2019-09-26/rustc-1.38.0-armv7-unknown-freebsd.tar.gz) = 38588675
SHA256 (rust/2019-09-26/rust-std-1.38.0-armv7-unknown-freebsd.tar.gz) = d7e7671fe7c0aa53c6df4ca60547e6518416bd8497fc1f75c92366468f607d1b
SIZE (rust/2019-09-26/rust-std-1.38.0-armv7-unknown-freebsd.tar.gz) = 197638533
SHA256 (rust/2019-09-26/cargo-0.39.0-armv7-unknown-freebsd.tar.gz) = c49fef9d921ff02b700bb302147dd1c9b32d2afdfc92beedf574d075a27e36cb
SIZE (rust/2019-09-26/cargo-0.39.0-armv7-unknown-freebsd.tar.gz) = 4835740
SHA256 (rust/2019-09-26/rustc-1.38.0-i686-unknown-freebsd.tar.gz) = 1e4c148ffb38fdf8f3de3e6355ea418056e40749c4a29af1a447019b04891817
SIZE (rust/2019-09-26/rustc-1.38.0-i686-unknown-freebsd.tar.gz) = 50284685
SHA256 (rust/2019-09-26/rust-std-1.38.0-i686-unknown-freebsd.tar.gz) = 7eb02bd86f78dc0748d45a41748c0dfa145aab33d552a14dae2fce22f9d0f9b6
SIZE (rust/2019-09-26/rust-std-1.38.0-i686-unknown-freebsd.tar.gz) = 218440878
SHA256 (rust/2019-09-26/cargo-0.39.0-i686-unknown-freebsd.tar.gz) = 57179ee4f61be55a978aff61cea7475fe31dcac4d763e735637219a661a812fa
SIZE (rust/2019-09-26/cargo-0.39.0-i686-unknown-freebsd.tar.gz) = 6669103
SHA256 (rust/2019-09-26/rustc-1.38.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = d6654031b77b9e90b0a3b2d2e5d702ea6f52b50b6589606043036e1780192da9
SIZE (rust/2019-09-26/rustc-1.38.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = 48397197
SHA256 (rust/2019-09-26/rust-std-1.38.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = 4a7a1cbfd4aa169528e4aad4c46a1690db4d5477c73e2e857bce9d3735f8b76f
SIZE (rust/2019-09-26/rust-std-1.38.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = 196472426
SHA256 (rust/2019-09-26/cargo-0.39.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = 1b23312ae307293c5e53282d799bf7688269d9ed3946729cf8886710581284b0
SIZE (rust/2019-09-26/cargo-0.39.0-powerpc64-unknown-freebsd-elfv1.tar.gz) = 5676205
SHA256 (rust/2019-09-26/rustc-1.38.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = 8d877ef738ee01548b1be69a7bf6f4619a0909a7a4db12ab414441b32763b9af
SIZE (rust/2019-09-26/rustc-1.38.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = 39853681
SHA256 (rust/2019-09-26/rust-std-1.38.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = 2c5da67f44b5bc8cf4c5f58d11e7200ef5d64a66416d9cdf6b5bc4f55774b8ba
SIZE (rust/2019-09-26/rust-std-1.38.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = 193639233
SHA256 (rust/2019-09-26/cargo-0.39.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = 4a91b5db28538504992462ea65945419d28fe6ee5fa3a48b23055b4a2f3edc91
SIZE (rust/2019-09-26/cargo-0.39.0-powerpc64-unknown-freebsd-elfv2.tar.gz) = 4604255
SHA256 (rust/2019-09-26/rustc-1.38.0-armv7-unknown-freebsd.tar.xz) = ff3f711829f0b90493f2992c207cfd4270503bd8c843e87e08e05a6778cb9d27
SIZE (rust/2019-09-26/rustc-1.38.0-armv7-unknown-freebsd.tar.xz) = 24787468
SHA256 (rust/2019-09-26/rust-std-1.38.0-armv7-unknown-freebsd.tar.xz) = a1cf96df349d80a41237ff5d05102bf177ff168a2a6c90555818ce51b8aa7e92
SIZE (rust/2019-09-26/rust-std-1.38.0-armv7-unknown-freebsd.tar.xz) = 167337984
SHA256 (rust/2019-09-26/cargo-0.39.0-armv7-unknown-freebsd.tar.xz) = cce45b73eb45470320e2987e3593628a041dac1ea30052768654437cffe002f1
SIZE (rust/2019-09-26/cargo-0.39.0-armv7-unknown-freebsd.tar.xz) = 3108548
SHA256 (rust/2019-09-26/rustc-1.38.0-i686-unknown-freebsd.tar.xz) = 9a493a8655b9d3e69209a1abe55f25ee78ad2ce9eca856290091d1795a10e51f
SIZE (rust/2019-09-26/rustc-1.38.0-i686-unknown-freebsd.tar.xz) = 34147964
SHA256 (rust/2019-09-26/rust-std-1.38.0-i686-unknown-freebsd.tar.xz) = 4abe9994980461dfa73834bf2faab5d0f8f9655b644cdca60ac8a10c6e02322b
SIZE (rust/2019-09-26/rust-std-1.38.0-i686-unknown-freebsd.tar.xz) = 187369152
SHA256 (rust/2019-09-26/cargo-0.39.0-i686-unknown-freebsd.tar.xz) = 7d7a8c3e2a8445b466d387dcbb507f9ac46f409be1bafc1b3ac39cfca18db4a5
SIZE (rust/2019-09-26/cargo-0.39.0-i686-unknown-freebsd.tar.xz) = 4860804
SHA256 (rust/2019-09-26/rustc-1.38.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = 2857509d0d6f805d3aea98cc590d873a9ce2edd578fbb55947478f99729462d2
SIZE (rust/2019-09-26/rustc-1.38.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = 28965588
SHA256 (rust/2019-09-26/rust-std-1.38.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = b7d6cc495982f1ad61c374d481f7e8a8dd6c4a33b0819d945d49e21724fb0fac
SIZE (rust/2019-09-26/rust-std-1.38.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = 162577000
SHA256 (rust/2019-09-26/cargo-0.39.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = 5ff7b32e7181dc1170b38c0b8c49bd25d8d2f6681edd10f77b6f1f3ce9c95c62
SIZE (rust/2019-09-26/cargo-0.39.0-powerpc64-unknown-freebsd-elfv1.tar.xz) = 3405136
SHA256 (rust/2019-09-26/rustc-1.38.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 196f1cd3bc0d897eebf91ca27e8ffa7ab572db2314a1945a46c63d797f6d664b
SIZE (rust/2019-09-26/rustc-1.38.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 24239572
SHA256 (rust/2019-09-26/rust-std-1.38.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 0ac8a495b698eb6133e353520ae84514c7bbd9be7b77b38020675f416bdd5db4
SIZE (rust/2019-09-26/rust-std-1.38.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 161764580
SHA256 (rust/2019-09-26/cargo-0.39.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 4ab55f0a19306b55b03743b2f726b6d939e1a4e8686be89f52e98023b585f114
SIZE (rust/2019-09-26/cargo-0.39.0-powerpc64-unknown-freebsd-elfv2.tar.xz) = 2733760

View File

@ -0,0 +1,81 @@
https://github.com/rust-lang/rust/commit/8d56bcc59c92
--- src/bootstrap/bootstrap.py.orig 2019-11-04 15:45:21 UTC
+++ src/bootstrap/bootstrap.py
@@ -102,10 +102,10 @@ def verify(path, sha_path, verbose):
return verified
-def unpack(tarball, dst, verbose=False, match=None):
+def unpack(tarball, tarball_suffix, dst, verbose=False, match=None):
"""Unpack the given tarball file"""
print("extracting", tarball)
- fname = os.path.basename(tarball).replace(".tar.gz", "")
+ fname = os.path.basename(tarball).replace(tarball_suffix, "")
with contextlib.closing(tarfile.open(tarball)) as tar:
for member in tar.getnames():
if "/" not in member:
@@ -331,6 +331,18 @@ class RustBuild(object):
self.use_vendored_sources = ''
self.verbose = False
+ def support_xz():
+ try:
+ with tempfile.NamedTemporaryFile(delete=False) as temp_file:
+ temp_path = temp_file.name
+ with tarfile.open(temp_path, "w:xz") as tar:
+ pass
+ return True
+ except tarfile.CompressionError:
+ return False
+
+ self.tarball_suffix = '.tar.xz' if support_xz() else '.tar.gz'
+
def download_stage0(self):
"""Fetch the build system for Rust, written in Rust
@@ -349,12 +361,13 @@ class RustBuild(object):
self.program_out_of_date(self.rustc_stamp())):
if os.path.exists(self.bin_root()):
shutil.rmtree(self.bin_root())
- filename = "rust-std-{}-{}.tar.gz".format(
- rustc_channel, self.build)
+ filename = "rust-std-{}-{}{}".format(
+ rustc_channel, self.build, self.tarball_suffix)
pattern = "rust-std-{}".format(self.build)
self._download_stage0_helper(filename, pattern)
- filename = "rustc-{}-{}.tar.gz".format(rustc_channel, self.build)
+ filename = "rustc-{}-{}{}".format(rustc_channel, self.build,
+ self.tarball_suffix)
self._download_stage0_helper(filename, "rustc")
self.fix_executable("{}/bin/rustc".format(self.bin_root()))
self.fix_executable("{}/bin/rustdoc".format(self.bin_root()))
@@ -365,14 +378,15 @@ class RustBuild(object):
# libraries/binaries that are included in rust-std with
# the system MinGW ones.
if "pc-windows-gnu" in self.build:
- filename = "rust-mingw-{}-{}.tar.gz".format(
- rustc_channel, self.build)
+ filename = "rust-mingw-{}-{}{}".format(
+ rustc_channel, self.build, self.tarball_suffix)
self._download_stage0_helper(filename, "rust-mingw")
if self.cargo().startswith(self.bin_root()) and \
(not os.path.exists(self.cargo()) or
self.program_out_of_date(self.cargo_stamp())):
- filename = "cargo-{}-{}.tar.gz".format(cargo_channel, self.build)
+ filename = "cargo-{}-{}{}".format(cargo_channel, self.build,
+ self.tarball_suffix)
self._download_stage0_helper(filename, "cargo")
self.fix_executable("{}/bin/cargo".format(self.bin_root()))
with output(self.cargo_stamp()) as cargo_stamp:
@@ -388,7 +402,7 @@ class RustBuild(object):
tarball = os.path.join(rustc_cache, filename)
if not os.path.exists(tarball):
get("{}/{}".format(url, filename), tarball, verbose=self.verbose)
- unpack(tarball, self.bin_root(), match=pattern, verbose=self.verbose)
+ unpack(tarball, self.tarball_suffix, self.bin_root(), match=pattern, verbose=self.verbose)
@staticmethod
def fix_executable(fname):