Index: lang/rust-nightly/distinfo =================================================================== --- lang/rust-nightly/distinfo +++ lang/rust-nightly/distinfo @@ -1,15 +1,15 @@ TIMESTAMP = 1573682012 SHA256 (rust/2019-11-14/rustc-nightly-src.tar.xz) = 8f1dc3401e2ef73041fa36f0a2f5e34fa37e6022c8ad26eb24b9a04e6736ee4b SIZE (rust/2019-11-14/rustc-nightly-src.tar.xz) = 93685380 -SHA256 (rust/2019-11-06/rustc-beta-x86_64-unknown-freebsd.tar.gz) = 0df08afaecf4fc97fa38bff16c27ebece22abfc7da381f5dde563f1f2c90f4e9 -SIZE (rust/2019-11-06/rustc-beta-x86_64-unknown-freebsd.tar.gz) = 50671425 -SHA256 (rust/2019-11-06/rust-std-beta-x86_64-unknown-freebsd.tar.gz) = 80492aca01cb0d3b18d7c4f8e48c5bbf9716a96bbf1bcfca791eb6d617aabf8f -SIZE (rust/2019-11-06/rust-std-beta-x86_64-unknown-freebsd.tar.gz) = 23162282 -SHA256 (rust/2019-11-06/cargo-beta-x86_64-unknown-freebsd.tar.gz) = 0cae91b6b628a10b427152b1b902e39cfd6236ed5053c8dc97467593694740ab -SIZE (rust/2019-11-06/cargo-beta-x86_64-unknown-freebsd.tar.gz) = 6760338 -SHA256 (rust/2019-11-06/rustc-beta-i686-unknown-freebsd.tar.gz) = 6bbe292e34b8b420c980e9ffa44ab652b3d517ece35da58dd65da184663d63d0 -SIZE (rust/2019-11-06/rustc-beta-i686-unknown-freebsd.tar.gz) = 51141819 -SHA256 (rust/2019-11-06/rust-std-beta-i686-unknown-freebsd.tar.gz) = a8078449cd3224c2f6e117c866a61737e088b99f7438c447c72f4fa29d930e22 -SIZE (rust/2019-11-06/rust-std-beta-i686-unknown-freebsd.tar.gz) = 23129341 -SHA256 (rust/2019-11-06/cargo-beta-i686-unknown-freebsd.tar.gz) = 5fbf0760ab45eeb95e7b0766e846660a20742b96992b6dc200e66d5a52a5de5d -SIZE (rust/2019-11-06/cargo-beta-i686-unknown-freebsd.tar.gz) = 6552828 +SHA256 (rust/2019-11-06/rustc-beta-x86_64-unknown-freebsd.tar.xz) = ed72f49a205f71ba8b3b9f5ab44f16c69697a8552bbc19874beb2bf930d94f67 +SIZE (rust/2019-11-06/rustc-beta-x86_64-unknown-freebsd.tar.xz) = 34059716 +SHA256 (rust/2019-11-06/rust-std-beta-x86_64-unknown-freebsd.tar.xz) = ea1c3b6fbcaaffae21e15cb9ac9db050f3183a9214ef5da89f6ace98c63ac584 +SIZE (rust/2019-11-06/rust-std-beta-x86_64-unknown-freebsd.tar.xz) = 17296548 +SHA256 (rust/2019-11-06/cargo-beta-x86_64-unknown-freebsd.tar.xz) = f8cce957d635e981fb6a0dfec0547cfa5e7377c2351822b5f1d926c13c5be68e +SIZE (rust/2019-11-06/cargo-beta-x86_64-unknown-freebsd.tar.xz) = 4909756 +SHA256 (rust/2019-11-06/rustc-beta-i686-unknown-freebsd.tar.xz) = 80188459fa594e3088a29fd3adf2ce06a7a753121e5dbb4118711dbf4c13be39 +SIZE (rust/2019-11-06/rustc-beta-i686-unknown-freebsd.tar.xz) = 34946924 +SHA256 (rust/2019-11-06/rust-std-beta-i686-unknown-freebsd.tar.xz) = 929789b5f67a92a4b068a4e949b9f1a6d4aeee92ac56699144965c8150bd8edb +SIZE (rust/2019-11-06/rust-std-beta-i686-unknown-freebsd.tar.xz) = 17325204 +SHA256 (rust/2019-11-06/cargo-beta-i686-unknown-freebsd.tar.xz) = bda668c5ed89d528538748ddc6718363e8cdf826f6a9a121f9db181ee2ddf0c6 +SIZE (rust/2019-11-06/cargo-beta-i686-unknown-freebsd.tar.xz) = 4837340 Index: lang/rust-nightly/files/patch-src_bootstrap_bootstrap.py =================================================================== --- lang/rust-nightly/files/patch-src_bootstrap_bootstrap.py +++ /dev/null @@ -1,23 +0,0 @@ -Disable https://github.com/rust-lang/rust/commit/8d56bcc59c92 until -master port drops Python 2.x support. - ---- src/bootstrap/bootstrap.py.orig 2019-11-13 20:12:18 UTC -+++ src/bootstrap/bootstrap.py -@@ -360,7 +360,7 @@ class RustBuild(object): - self.program_out_of_date(self.rustc_stamp())): - if os.path.exists(self.bin_root()): - shutil.rmtree(self.bin_root()) -- tarball_suffix = '.tar.xz' if support_xz() else '.tar.gz' -+ tarball_suffix = '.tar.gz' - filename = "rust-std-{}-{}{}".format( - rustc_channel, self.build, tarball_suffix) - pattern = "rust-std-{}".format(self.build) -@@ -385,7 +385,7 @@ class RustBuild(object): - if self.cargo().startswith(self.bin_root()) and \ - (not os.path.exists(self.cargo()) or - self.program_out_of_date(self.cargo_stamp())): -- tarball_suffix = '.tar.xz' if support_xz() else '.tar.gz' -+ tarball_suffix = '.tar.gz' - filename = "cargo-{}-{}{}".format(cargo_channel, self.build, - tarball_suffix) - self._download_stage0_helper(filename, "cargo", tarball_suffix) Index: lang/rust/Makefile =================================================================== --- lang/rust/Makefile +++ lang/rust/Makefile @@ -14,9 +14,9 @@ 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 @@ 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 @@ 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 Index: lang/rust/distinfo =================================================================== --- lang/rust/distinfo +++ lang/rust/distinfo @@ -7,12 +7,12 @@ 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-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.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 @@ -27,12 +27,12 @@ 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-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.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 Index: lang/rust/files/patch-src_bootstrap_bootstrap.py =================================================================== --- /dev/null +++ lang/rust/files/patch-src_bootstrap_bootstrap.py @@ -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):