changeset 1176:e45b5d1810ab

lang/rust: initial import, closes #1097
author David Demelier <markand@malikania.fr>
date Wed, 23 Oct 2019 07:10:36 +0200
parents 944780161c16
children 6dd3148ac08d
files lang/rust/config.toml lang/rust/patch-clang.patch lang/rust/patch-libressl.patch lang/rust/patch-rust.patch lang/rust/rust.sh lang/rust/rust.sha1
diffstat 6 files changed, 177 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/rust/config.toml	Wed Oct 23 07:10:36 2019 +0200
@@ -0,0 +1,34 @@
+[build]
+#rustc = "@PWD@/bootstrap/bin/rustc"
+#cargo = "@PWD@/bootstrap/bin/cargo"
+rustc = "/bin/rustc"
+cargo = "/bin/cargo"
+python = "/bin/python"
+build = '@ARCH@-unknown-linux-musl'
+host = ['@ARCH@-unknown-linux-musl']
+target = ['@ARCH@-unknown-linux-musl']
+vendor = true
+extended = true
+
+[install]
+prefix = "/"
+
+[rust]
+channel = "stable"
+rpath = false
+codegen-tests = false
+verbose-tests = false
+default-linker = "@CC@"
+llvm-libunwind = true
+
+[dist]
+src-tarball = false
+
+[target.@ARCH@-unknown-linux-musl]
+cc = "@CC@"
+cxx = "@CXX@"
+ar = "llvm-ar"
+ranlib = "llvm-ranlib"
+linker = "@CC@"
+llvm-config = "/bin/llvm-config"
+crt-static = false
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/rust/patch-clang.patch	Wed Oct 23 07:10:36 2019 +0200
@@ -0,0 +1,20 @@
+--- src/librustc_target/spec/linux_musl_base.rs.orig	2019-10-15 14:51:21.989949084 +0200
++++ src/librustc_target/spec/linux_musl_base.rs	2019-10-15 14:51:42.253949707 +0200
+@@ -24,6 +24,7 @@
+     base.pre_link_objects_exe_crt.push("crt1.o".to_string());
+     base.pre_link_objects_exe_crt.push("crti.o".to_string());
+     base.post_link_objects_crt.push("crtn.o".to_string());
++    base.post_link_objects_crt.push("-lunwind".to_string());
+ 
+     // These targets statically link libc by default
+     base.crt_static_default = true;
+--- src/libunwind/lib.rs.orig	2019-10-15 14:54:58.457955734 +0200
++++ src/libunwind/lib.rs	2019-10-15 14:55:28.705956663 +0200
+@@ -23,6 +23,5 @@
+ }
+ 
+ #[cfg(target_env = "musl")]
+-#[link(name = "unwind", kind = "static", cfg(target_feature = "crt-static"))]
+-#[link(name = "gcc_s", cfg(not(target_feature = "crt-static")))]
++#[link(name = "unwind")]
+ extern {}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/rust/patch-libressl.patch	Wed Oct 23 07:10:36 2019 +0200
@@ -0,0 +1,21 @@
+$OpenBSD: patch-vendor_openssl-sys_build_main_rs,v 1.3 2019/07/09 11:24:28 semarie Exp $
+The LibreSSL version in -current isn't explicitly supported.
+Index: vendor/openssl-sys/build/main.rs
+--- vendor/openssl-sys/build/main.rs.orig
++++ vendor/openssl-sys/build/main.rs
+@@ -199,7 +199,7 @@ See rust-openssl README for more information:
+             (8, 1) => ('8', '1'),
+             (8, _) => ('8', 'x'),
+             (9, 0) => ('9', '0'),
+-            _ => version_error(),
++            _ => ('9', '0'),
+         };
+ 
+         println!("cargo:libressl=true");
+--- vendor/openssl-sys/.cargo-checksum.json.orig	2019-10-21 08:44:48.674137248 +0000
++++ vendor/openssl-sys/.cargo-checksum.json	2019-10-21 08:45:17.854138145 +0000
+@@ -1 +1 @@
+-{"files":{"CHANGELOG.md":"a3e7e4750fe6130a93e9423d5b1b68c659dd29246602f71583c7a101c4d647be","Cargo.toml":"5fdba4ce7cf40abec303651694e79a5ae551f040a7bbaad134ed9ab54d26a613","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"96a414be6e7e061a21a9e39a61449039f6791225264032641dd044a1a9b88111","build/cfgs.rs":"61b741c4fe9612f5a70b19bec53d3ab7ec2d7038b163c35b54f0664caa104a31","build/expando.c":"c4fa8a4424b2321f1857edfc5ce1ac1f03eda54440367d3142310c0eb5553004","build/find_normal.rs":"0a2dc417eace7fc72c27b9046ebaf53c75e418b27baa877434925a81fe6c23ed","build/find_vendored.rs":"d88c47f4cf851aa67c0e3dec679910c5c7ba239bc5a1aa89e507a875b4c4ca0f","build/main.rs":"681a1f8a8f389c82bbd3d2498a3692c201c63db658e7c3d162f09d5d81892fd4","src/aes.rs":"660efd70f809cb2f5dbbf527be8f9592911776bab7dafa1fc4cc72dd9a576b67","src/asn1.rs":"f72d6871d38865d9e7378882135cdc6f1acd66c48a4fc846502b7f488dbbf111","src/bio.rs":"5c6f394a78f258af3babb68330fa3571610476c4c3ba3404359db928f2f706ee","src/bn.rs":"c71b9c79f704a94a889d27bf75e7e5b1f9f10b0df0aeb485aef509cf05d7467f","src/cms.rs":"95a0803286d1efbe709a3668443b5001f5cce6f9db216165b1e08950972e0bfd","src/conf.rs":"511e008c18039f54d856d70b80009426fc7f4ce34fe4304e2c58ebf465031de0","src/crypto.rs":"f6e8a116940755b2b53e3d0d49d1b451fc6e4269831fd1cfcee9d6ed404cf487","src/dh.rs":"7cc334e86d16b3eae165dfa3a6c8e488bc0fe590c17beda38893d2e9d784d5a6","src/dsa.rs":"ae79baf231681900ea76304285b3ffacf5298c90b8c04d371269cf4adbb5b9fa","src/dtls1.rs":"45e1dbf94a42d587fd948d553dc30187aa6aa2b5b82d554cf725ff36df768aa0","src/ec.rs":"5341787b108f4e9acb12428fbf993aa507e9d77b97284912f7eab414ec6aeff9","src/err.rs":"f6641be5df397086a9db80667e191fb1d92972c29151e617df86672c1a16d3ad","src/evp.rs":"300007bcf00eaff03cb1d113547a79c9495b498ede9e1b2f709a9e6e1ba42ac1","src/hmac.rs":"fa3976d94a1383f300bdec228270afb8b47c97bb019d727c7d59ba783be3c42e","src/lib.rs":"e8931dd7e59a56a247823201f52828ec15d0b8dbd15ba297cacd3dcb3ca747cf","src/macros.rs":"638fb9098f6024e82b331eeee50c64cefdb58456dba28ee42560be655a0c2bf6","src/obj_mac.rs":"9c20609db7115c9edb99185375426169cb5b7caee839d892b556e92285e65309","src/object.rs":"7539eb2164c3fe2162a339ef5b45f1c835010a1522307803815779a01825eed7","src/ocsp.rs":"1db59566d2f072f7ae981f0c07e1604fcdf60e66845afe0689d588f8e4272115","src/ossl_typ.rs":"fc7366e75c78707650c8667593ed183eca6a8ce8dd6b911e342f644d1bcf98bd","src/pem.rs":"83bb7745615a99fe2a8d5f8f51addba2024c7e6be847ab6c9244bfd04388c4f9","src/pkcs12.rs":"93aab2820008ad90dc346a7dcc02f9201d94bff0bb7d1d71031c097850287c50","src/pkcs7.rs":"5370c8d4bfbf1502fa33aff635cb730e7c87814580f1df9bdb1412a492377813","src/rand.rs":"469601b4fbb56d4dbf5cf5d7bb8483e3bde411edea18601e7d1ed6ef27180fd3","src/rsa.rs":"0e8c1f0bc37620a9208175542143bfd411ae88188974d2d5b37a2b8b77d0e2c8","src/safestack.rs":"6c39e28565d34efad707d77561d4caa99e3f028fcac3a2ef6fd403a78de1190c","src/sha.rs":"05044d221d8d205010a4e3760c0b5c0e2e923e165db0d65f9a8c9bcedaad9961","src/srtp.rs":"306047f3f31828fe7d15de154b375f071ae07012a94c0b5c909f5fe57962a11b","src/ssl.rs":"18c0c0c5ef02329be90fd279968da61d3e1a6b3a3aec102d6fefd99021d1822a","src/ssl3.rs":"9336c816e00847d552dea22587d4ac72ff3cbd469fa5ff750423a19ea11e68eb","src/stack.rs":"1a509907283e5a2bf88cf193ce607f49ce7d2d95547c2ce2abc0fd4567aad334","src/tls1.rs":"60ca3dea1bbfda645bde563b4a878dac129c3f760e3ad572381000fc7a8ef522","src/x509.rs":"20e221731587221aab00aef21b4e4bebb7635603d265d424f3dd3c60d4c511e2","src/x509_vfy.rs":"5609f6300ab37a4d4755c81f7af1e6bb93a2f1a6f333c6e42f1e73ebf83ddc05","src/x509v3.rs":"30c58ce7d80670cc597d041e0f59862c1100e38743fc9dde2aec6dc811a4a558"},"package":"33c86834957dd5b915623e94f2f4ab2c70dd8f6b70679824155d5ae21dbd495d"}
+\ No newline at end of file
++{"files":{"CHANGELOG.md":"a3e7e4750fe6130a93e9423d5b1b68c659dd29246602f71583c7a101c4d647be","Cargo.toml":"5fdba4ce7cf40abec303651694e79a5ae551f040a7bbaad134ed9ab54d26a613","LICENSE-MIT":"378f5840b258e2779c39418f3f2d7b2ba96f1c7917dd6be0713f88305dbda397","README.md":"96a414be6e7e061a21a9e39a61449039f6791225264032641dd044a1a9b88111","build/cfgs.rs":"61b741c4fe9612f5a70b19bec53d3ab7ec2d7038b163c35b54f0664caa104a31","build/expando.c":"c4fa8a4424b2321f1857edfc5ce1ac1f03eda54440367d3142310c0eb5553004","build/find_normal.rs":"0a2dc417eace7fc72c27b9046ebaf53c75e418b27baa877434925a81fe6c23ed","build/find_vendored.rs":"d88c47f4cf851aa67c0e3dec679910c5c7ba239bc5a1aa89e507a875b4c4ca0f","build/main.rs":"c8c67992d712b4757239a7e806bf407641a323d64eddd398e4896e954ed7d3ff","src/aes.rs":"660efd70f809cb2f5dbbf527be8f9592911776bab7dafa1fc4cc72dd9a576b67","src/asn1.rs":"f72d6871d38865d9e7378882135cdc6f1acd66c48a4fc846502b7f488dbbf111","src/bio.rs":"5c6f394a78f258af3babb68330fa3571610476c4c3ba3404359db928f2f706ee","src/bn.rs":"c71b9c79f704a94a889d27bf75e7e5b1f9f10b0df0aeb485aef509cf05d7467f","src/cms.rs":"95a0803286d1efbe709a3668443b5001f5cce6f9db216165b1e08950972e0bfd","src/conf.rs":"511e008c18039f54d856d70b80009426fc7f4ce34fe4304e2c58ebf465031de0","src/crypto.rs":"f6e8a116940755b2b53e3d0d49d1b451fc6e4269831fd1cfcee9d6ed404cf487","src/dh.rs":"7cc334e86d16b3eae165dfa3a6c8e488bc0fe590c17beda38893d2e9d784d5a6","src/dsa.rs":"ae79baf231681900ea76304285b3ffacf5298c90b8c04d371269cf4adbb5b9fa","src/dtls1.rs":"45e1dbf94a42d587fd948d553dc30187aa6aa2b5b82d554cf725ff36df768aa0","src/ec.rs":"5341787b108f4e9acb12428fbf993aa507e9d77b97284912f7eab414ec6aeff9","src/err.rs":"f6641be5df397086a9db80667e191fb1d92972c29151e617df86672c1a16d3ad","src/evp.rs":"300007bcf00eaff03cb1d113547a79c9495b498ede9e1b2f709a9e6e1ba42ac1","src/hmac.rs":"fa3976d94a1383f300bdec228270afb8b47c97bb019d727c7d59ba783be3c42e","src/lib.rs":"e8931dd7e59a56a247823201f52828ec15d0b8dbd15ba297cacd3dcb3ca747cf","src/macros.rs":"638fb9098f6024e82b331eeee50c64cefdb58456dba28ee42560be655a0c2bf6","src/obj_mac.rs":"9c20609db7115c9edb99185375426169cb5b7caee839d892b556e92285e65309","src/object.rs":"7539eb2164c3fe2162a339ef5b45f1c835010a1522307803815779a01825eed7","src/ocsp.rs":"1db59566d2f072f7ae981f0c07e1604fcdf60e66845afe0689d588f8e4272115","src/ossl_typ.rs":"fc7366e75c78707650c8667593ed183eca6a8ce8dd6b911e342f644d1bcf98bd","src/pem.rs":"83bb7745615a99fe2a8d5f8f51addba2024c7e6be847ab6c9244bfd04388c4f9","src/pkcs12.rs":"93aab2820008ad90dc346a7dcc02f9201d94bff0bb7d1d71031c097850287c50","src/pkcs7.rs":"5370c8d4bfbf1502fa33aff635cb730e7c87814580f1df9bdb1412a492377813","src/rand.rs":"469601b4fbb56d4dbf5cf5d7bb8483e3bde411edea18601e7d1ed6ef27180fd3","src/rsa.rs":"0e8c1f0bc37620a9208175542143bfd411ae88188974d2d5b37a2b8b77d0e2c8","src/safestack.rs":"6c39e28565d34efad707d77561d4caa99e3f028fcac3a2ef6fd403a78de1190c","src/sha.rs":"05044d221d8d205010a4e3760c0b5c0e2e923e165db0d65f9a8c9bcedaad9961","src/srtp.rs":"306047f3f31828fe7d15de154b375f071ae07012a94c0b5c909f5fe57962a11b","src/ssl.rs":"18c0c0c5ef02329be90fd279968da61d3e1a6b3a3aec102d6fefd99021d1822a","src/ssl3.rs":"9336c816e00847d552dea22587d4ac72ff3cbd469fa5ff750423a19ea11e68eb","src/stack.rs":"1a509907283e5a2bf88cf193ce607f49ce7d2d95547c2ce2abc0fd4567aad334","src/tls1.rs":"60ca3dea1bbfda645bde563b4a878dac129c3f760e3ad572381000fc7a8ef522","src/x509.rs":"20e221731587221aab00aef21b4e4bebb7635603d265d424f3dd3c60d4c511e2","src/x509_vfy.rs":"5609f6300ab37a4d4755c81f7af1e6bb93a2f1a6f333c6e42f1e73ebf83ddc05","src/x509v3.rs":"30c58ce7d80670cc597d041e0f59862c1100e38743fc9dde2aec6dc811a4a558"},"package":"33c86834957dd5b915623e94f2f4ab2c70dd8f6b70679824155d5ae21dbd495d"}
+\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/rust/patch-rust.patch	Wed Oct 23 07:10:36 2019 +0200
@@ -0,0 +1,23 @@
+$OpenBSD: patch-src_bootstrap_lib_rs,v 1.24 2019/09/29 08:23:17 semarie Exp $
+let us compilation choice to be honored.
+https://github.com/rust-lang/rust/issues/39900
+Index: src/bootstrap/lib.rs
+--- src/bootstrap/lib.rs.orig
++++ src/bootstrap/lib.rs
+@@ -104,7 +104,7 @@
+ //! also check out the `src/bootstrap/README.md` file for more information.
+ 
+ // NO-RUSTC-WRAPPER
+-#![deny(warnings, rust_2018_idioms, unused_lifetimes)]
++#![deny(rust_2018_idioms, unused_lifetimes)]
+ 
+ #![feature(core_intrinsics)]
+ #![feature(drain_filter)]
+@@ -768,7 +768,6 @@ impl Build {
+         // cc-rs because the build scripts will determine that for themselves.
+         let mut base = self.cc[&target].args().iter()
+                            .map(|s| s.to_string_lossy().into_owned())
+-                           .filter(|s| !s.starts_with("-O") && !s.starts_with("/O"))
+                            .collect::<Vec<String>>();
+ 
+         // If we're compiling on macOS then we add a few unconditional flags
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/rust/rust.sh	Wed Oct 23 07:10:36 2019 +0200
@@ -0,0 +1,77 @@
+#!/bin/sh
+#
+# Copyright (c) 2019 David Demelier <markand@malikania.fr>
+#
+# Permission to use, copy, modify, and/or distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+#
+
+PKGNAME=rust
+PKGVERSION=1.38.0
+PKGREVISION=1
+PKGLICENSE="APACHEv20 MIT"
+PKGSUMMARY="the Rust programming language"
+PKGDOWNLOAD="https://static.rust-lang.org/dist/rustc-$PKGVERSION-src.tar.gz"
+PKGDEPENDS="bash:build rust:build python:build"
+PKGTAGS="CUSTOM"
+PKGOPTIONS="COMPONENTS"
+
+: ${CC:=clang}
+: ${CFLAGS:=-O2}
+: ${CXX:=clang++}
+: ${CXXFLAGS:=-O2}
+: ${LDFLAGS:=}
+: ${LIBS:=}
+: ${COMPONENTS:=yes}
+
+case $COMPONENTS in
+"yes")
+	with_components="cargo clippy rustfmt" ;;
+"no")
+	with_components="" ;;
+*)
+	with_components="$COMPONENTS"
+esac
+
+build()
+{
+	rm -rf rustc-$PKGVERSION-src
+	tar xvpf rustc-$PKGVERSION-src.tar.gz
+	cd rustc-$PKGVERSION-src
+
+	if [ "$CC" = "clang" ]; then
+		patch -p0 < ../patch-clang.patch
+	fi
+
+	# http://cvsweb.openbsd.org/cgi-bin/cvsweb/ports/lang/rust/patches
+	patch -p0 < ../patch-libressl.patch
+	patch -p0 < ../patch-rust.patch
+
+	sed \
+		-e "s|@PWD@|$cwd|" \
+		-e "s|@ARCH@|$(uname -m)|" \
+		-e "s|@CC@|$CC|" \
+		-e "s|@CXX@|$CXX|" \
+		-e "s|@VERSION@|$PKGVERSION|" ../config.toml > config.toml
+
+	./x.py build -v -j 2 src/libstd src/librustc $with_components
+	DESTDIR=$DESTDIR ./x.py install -v src/libstd src/librustc $with_components
+
+	# Remove useless bits.
+	rm -f $DESTDIR/lib/rustlib/uninstall.sh
+	rm -f $DESTDIR/lib/rustlib/install.log
+	rm -f $DESTDIR/lib/rustlib/components
+	rm -f $DESTDIR/lib/rustlib/manifest*
+
+	cd ..
+	rm -rf rustc-$PKGVERSION-src
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/lang/rust/rust.sha1	Wed Oct 23 07:10:36 2019 +0200
@@ -0,0 +1,2 @@
+6ad0f778882c73a689c88e1ecdaab8e7b9ceb27b  rustc-1.38.0-src.tar.gz
+06ef7a9801872fad718dff88fdc647555b9a7938  rust-1.37.0-x86_64-unknown-linux-musl.tar.gz