Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 21 Dec 2018 10:37:09 +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: r487977 - in head/lang/rust: . files
Message-ID:  <201812211037.wBLAb9qh090579@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: tobik
Date: Fri Dec 21 10:37:09 2018
New Revision: 487977
URL: https://svnweb.freebsd.org/changeset/ports/487977

Log:
  lang/rust: Update to 1.31.1
  
  - Simplify .cargo-checksum.json handling [1].  Similar to USES=cargo
    we disable vendor checksum checking by clearing the list of files
    in all .cargo-checksum.json, so that cargo does not complain when
    we patch something.  The overall distfile is already checked by
    us which should be enough.
  - Add an overridable CARGO_VENDOR_DIR variable to set the crate
    vendor directory which has moved location in nightly
  - Add upstream openssl-sys patch to fix build with LibreSSL 2.9.0 [2]
  
  Changes:	https://blog.rust-lang.org/2018/12/20/Rust-1.31.1.html
  Submitted by:	mikael.urankar@gmail.com [1], ml@vishwin.info [2]
  Differential Revision:	https://reviews.freebsd.org/D18610

Deleted:
  head/lang/rust/files/patch-src_vendor_openssl-sys_.cargo-checksum.json
Modified:
  head/lang/rust/Makefile
  head/lang/rust/distinfo
  head/lang/rust/files/patch-src_vendor_openssl-sys_build_main.rs

Modified: head/lang/rust/Makefile
==============================================================================
--- head/lang/rust/Makefile	Fri Dec 21 10:31:30 2018	(r487976)
+++ head/lang/rust/Makefile	Fri Dec 21 10:37:09 2018	(r487977)
@@ -2,7 +2,7 @@
 # $FreeBSD$
 
 PORTNAME=	rust
-PORTVERSION?=	1.31.0
+PORTVERSION?=	1.31.1
 PORTREVISION?=	0
 CATEGORIES=	lang
 MASTER_SITES=	http://static.rust-lang.org/dist/:src \
@@ -51,6 +51,8 @@ RUST_STD_BOOTSTRAP=		${BOOTSTRAPS_DATE_${ARCH}:U${BOOT
 CARGO_BOOTSTRAP_VERSION?=	0.31.0
 CARGO_BOOTSTRAP=		${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}}/cargo-${CARGO_BOOTSTRAP_VERSION_${ARCH}:U${CARGO_BOOTSTRAP_VERSION}}-${RUST_TARGET}.tar.gz
 
+CARGO_VENDOR_DIR?=		${WRKSRC}/src/vendor
+
 RUST_CHANNEL=	${PKGNAMESUFFIX:Ustable:S/^-//}
 
 # Rust's target arch string is different from *BSD arch strings
@@ -98,11 +100,8 @@ X_PY_ENV=	HOME="${WRKDIR}" \
 		OPENSSL_DIR="${OPENSSLBASE}"
 X_PY_CMD=	${PYTHON_CMD} ${WRKSRC}/x.py
 
-CRATES_PATCHED_BY_FBSD10_FIX?=	src/vendor/libssh2-sys \
-				src/vendor/lzma-sys
+RUST_STD_DIR=	${RUST_STD_BOOTSTRAP:T:R:R}
 
-RUST_STD_DIR=		${RUST_STD_BOOTSTRAP:T:R:R}
-
 post-extract:
 	@${MKDIR} \
 		${WRKSRC}/build/cache/${BOOTSTRAPS_DATE_${ARCH}:U${BOOTSTRAPS_DATE}} \
@@ -129,35 +128,10 @@ post-patch:
 	@${REINPLACE_CMD} -e \
 		's|^cargo:.*|cargo: ${CARGO_BOOTSTRAP_VERSION_${ARCH}:U${CARGO_BOOTSTRAP_VERSION}}|' \
 		${WRKSRC}/src/stage0.txt
-# After patching crates, we need to update their corresponding
-# `.cargo-checksum.json` to reflect the new checksums verified by Cargo.
-	@for dir in "${WRKSRC}/src/vendor/libc" \
-	"${WRKSRC}/src/vendor/libgit2-sys" \
-	"${WRKSRC}/src/vendor/openssl"; do \
-		if ! test -d "$$dir"; then \
-			continue; \
-		fi; \
-		cd "$$dir"; \
-		for file in $$(${FIND} * -name "*.orig"); do \
-			old_checksum=$$(${SHA256} -q "$$file"); \
-			new_checksum=$$(${SHA256} -q "$${file%%.orig}"); \
-			regex="$$regex -e s|\"$${file%%.orig}\":\"$$old_checksum\"|\"$${file%%.orig}\":\"$$new_checksum\"|"; \
-		done; \
-		if test "$$regex"; then \
-			${REINPLACE_CMD} -E $$regex .cargo-checksum.json; \
-		fi; \
-	done
-# We make a backup of a few files before the FreeBSD 10 autotools
-# fix is applied. We'll need them in `do-configure` to update the
-# `.cargo-checksum.json` files.
-	@for crate in ${CRATES_PATCHED_BY_FBSD10_FIX}; do \
-		if ! test -d "${WRKSRC}/$$crate"; then \
-			continue; \
-		fi; \
-		for file in $$(${FIND} "${WRKSRC}/$$crate" -name "config.rpath"); do \
-			${CP} "$$file" "$$file.orig"; \
-		done; \
-	done
+# Disable vendor checksums
+	@${REINPLACE_CMD} -e \
+		's/"files":{[^}]*}/"files":{}/' \
+		${CARGO_VENDOR_DIR}/*/.cargo-checksum.json
 
 .if defined(WITH_CCACHE_BUILD) && !defined(NO_CCACHE)
 CCACHE_VALUE=	"${CCACHE_WRAPPER_PATH:C,/libexec/ccache$,,}/bin/ccache"
@@ -165,14 +139,12 @@ CCACHE_VALUE=	"${CCACHE_WRAPPER_PATH:C,/libexec/ccache
 CCACHE_VALUE=	false
 .endif
 
-.if !target(pre-configure)
 pre-configure:
 	@for file in \
-		${WRKSRC}/src/vendor/backtrace-sys/src/libbacktrace/configure \
-		${WRKSRC}/src/vendor/backtrace-sys/src/libbacktrace/config/libtool.m4; do \
+		${CARGO_VENDOR_DIR}/backtrace-sys/src/libbacktrace/configure \
+		${CARGO_VENDOR_DIR}/backtrace-sys/src/libbacktrace/config/libtool.m4; do \
 		mv "$$file" "$$file.dont-fix"; \
 	done
-.endif
 
 do-configure:
 	${SED} -E \
@@ -185,32 +157,13 @@ do-configure:
 		-e 's,%CCACHE%,${CCACHE_VALUE},' \
 		< ${FILESDIR}/config.toml \
 		> ${WRKSRC}/config.toml
-# The FreeBSD 10 autotools fix may modify some files just before
-# `do-configure`. Like after `extra-path-ino64`, we need to update
-# `.cargo-checksum.json`.
-	@for crate in ${CRATES_PATCHED_BY_FBSD10_FIX}; do \
-		if ! test -d "${WRKSRC}/$$crate"; then \
-			continue; \
-		fi; \
-		cd "${WRKSRC}/$$crate"; \
-		for file in $$(${FIND} * -name "*.orig"); do \
-			old_checksum=$$(${SHA256} -q "$$file"); \
-			new_checksum=$$(${SHA256} -q "$${file%%.orig}"); \
-			regex="$$regex -e s|\"$${file%%.orig}\":\"$$old_checksum\"|\"$${file%%.orig}\":\"$$new_checksum\"|"; \
-		done; \
-		if test "$$regex"; then \
-			${REINPLACE_CMD} -E $$regex .cargo-checksum.json; \
-		fi; \
-	done
 
-.if !target(post-configure)
 post-configure:
 	@for file in \
-		${WRKSRC}/src/vendor/backtrace-sys/src/libbacktrace/configure \
-		${WRKSRC}/src/vendor/backtrace-sys/src/libbacktrace/config/libtool.m4; do \
+		${CARGO_VENDOR_DIR}/backtrace-sys/src/libbacktrace/configure \
+		${CARGO_VENDOR_DIR}/backtrace-sys/src/libbacktrace/config/libtool.m4; do \
 		mv "$$file.dont-fix" "$$file"; \
 	done
-.endif
 
 post-configure-DOCS-on:
 	${REINPLACE_CMD} -e 's,%DOCS%,true,' ${WRKSRC}/config.toml

Modified: head/lang/rust/distinfo
==============================================================================
--- head/lang/rust/distinfo	Fri Dec 21 10:31:30 2018	(r487976)
+++ head/lang/rust/distinfo	Fri Dec 21 10:37:09 2018	(r487977)
@@ -1,6 +1,6 @@
-TIMESTAMP = 1543972935
-SHA256 (rust/rustc-1.31.0-src.tar.xz) = 9581c5673937f8b1c3c21060ef7c1fcd3e5574a0fc0b27e1888cb37c4b2ec393
-SIZE (rust/rustc-1.31.0-src.tar.xz) = 96914112
+TIMESTAMP = 1545210622
+SHA256 (rust/rustc-1.31.1-src.tar.xz) = b38f6a1b5e12619f242e44ea494d177c72fd1f80160386b2e69b69446685fcfa
+SIZE (rust/rustc-1.31.1-src.tar.xz) = 96915864
 SHA256 (rust/2018-10-25/rustc-1.30.0-x86_64-unknown-freebsd.tar.gz) = 68a74949e34118406673cf8cc0098b011907c840890e0640aa3b145ce91c521d
 SIZE (rust/2018-10-25/rustc-1.30.0-x86_64-unknown-freebsd.tar.gz) = 68231553
 SHA256 (rust/2018-10-25/rust-std-1.30.0-x86_64-unknown-freebsd.tar.gz) = 4040fe677524e2ead69a2fcab4c16acaad3d4c4f1210ae36f400f82463bdfbc7

Modified: head/lang/rust/files/patch-src_vendor_openssl-sys_build_main.rs
==============================================================================
--- head/lang/rust/files/patch-src_vendor_openssl-sys_build_main.rs	Fri Dec 21 10:31:30 2018	(r487976)
+++ head/lang/rust/files/patch-src_vendor_openssl-sys_build_main.rs	Fri Dec 21 10:37:09 2018	(r487977)
@@ -1,6 +1,7 @@
 https://github.com/sfackler/rust-openssl/commit/9fd7584a8416
+https://github.com/sfackler/rust-openssl/commit/e75793e8962d
 
---- src/vendor/openssl-sys/build/main.rs.orig	2018-12-03 20:08:24 UTC
+--- src/vendor/openssl-sys/build/main.rs.orig	2018-12-05 01:24:32 UTC
 +++ src/vendor/openssl-sys/build/main.rs
 @@ -1,9 +1,9 @@
  extern crate cc;
@@ -45,11 +46,21 @@ https://github.com/sfackler/rust-openssl/commit/9fd758
      use std::process::{self, Command};
  
      use super::env;
-@@ -500,6 +503,7 @@ See rust-openssl README for more information:
+@@ -500,6 +503,8 @@ See rust-openssl README for more information:
              (7, _) => ('7', 'x'),
              (8, 0) => ('8', '0'),
              (8, 1) => ('8', '1'),
 +            (8, _) => ('8', 'x'),
++            (9, 0) => ('9', '0'),
              _ => version_error(),
          };
  
+@@ -540,7 +545,7 @@ fn version_error() -> ! {
+         "
+ 
+ This crate is only compatible with OpenSSL 1.0.1 through 1.1.1, or LibreSSL 2.5
+-through 2.8.1, but a different version of OpenSSL was found. The build is now aborting
++through 2.9.0, but a different version of OpenSSL was found. The build is now aborting
+ due to this version mismatch.
+ 
+ "



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201812211037.wBLAb9qh090579>