From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 35733138359 for ; Fri, 25 Sep 2020 07:38:33 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id 4FC25E0830; Fri, 25 Sep 2020 07:38:32 +0000 (UTC) Received: from smtp.gentoo.org (smtp.gentoo.org [140.211.166.183]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 2103EE0830 for ; Fri, 25 Sep 2020 07:38:32 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id DE8F933BEB8 for ; Fri, 25 Sep 2020 07:38:30 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 5915B373 for ; Fri, 25 Sep 2020 07:38:29 +0000 (UTC) From: "Georgy Yakovlev" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Georgy Yakovlev" Message-ID: <1601019478.e2701fa0f4b3b3a3d971c2274c36b4ea4bce7181.gyakovlev@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: sys-devel/rust-std/ X-VCS-Repository: repo/gentoo X-VCS-Files: sys-devel/rust-std/Manifest sys-devel/rust-std/metadata.xml sys-devel/rust-std/rust-std-1.46.0.ebuild X-VCS-Directories: sys-devel/rust-std/ X-VCS-Committer: gyakovlev X-VCS-Committer-Name: Georgy Yakovlev X-VCS-Revision: e2701fa0f4b3b3a3d971c2274c36b4ea4bce7181 X-VCS-Branch: master Date: Fri, 25 Sep 2020 07:38:29 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: 08974996-6357-41b9-83e9-d8cb27bc88f5 X-Archives-Hash: e287bf654b5d7b7168a9f82776c80031 commit: e2701fa0f4b3b3a3d971c2274c36b4ea4bce7181 Author: Georgy Yakovlev gentoo org> AuthorDate: Fri Sep 25 07:26:47 2020 +0000 Commit: Georgy Yakovlev gentoo org> CommitDate: Fri Sep 25 07:37:58 2020 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=e2701fa0 sys-devel/rust-std: new package, for crossdev #679878 EXPERIMENTAL! Bug: https://bugs.gentoo.org/680652 Bug: https://bugs.gentoo.org/679878 Bug: https://bugs.gentoo.org/689336 Package-Manager: Portage-3.0.8, Repoman-3.0.1 Signed-off-by: Georgy Yakovlev gentoo.org> sys-devel/rust-std/Manifest | 1 + sys-devel/rust-std/metadata.xml | 21 +++++ sys-devel/rust-std/rust-std-1.46.0.ebuild | 146 ++++++++++++++++++++++++++++++ 3 files changed, 168 insertions(+) diff --git a/sys-devel/rust-std/Manifest b/sys-devel/rust-std/Manifest new file mode 100644 index 00000000000..4a83cef970c --- /dev/null +++ b/sys-devel/rust-std/Manifest @@ -0,0 +1 @@ +DIST rustc-1.46.0-src.tar.xz 101868452 BLAKE2B da9798596b124a10d79c236a871228f05e5f571d22c2259328e7026c91e088c85f5de9c0536a16531e0cb10477bfcd16d3ac11467979f5561cb6199442b877ef SHA512 099857f1d295043587a4e2a65ef3e6a90e12c8b6958e98535a1656c113c553f9a9b621aba8a19cf21bd8d2c79d27cbfa4b8e6fabbcb3cbfee23b545be7b450b4 diff --git a/sys-devel/rust-std/metadata.xml b/sys-devel/rust-std/metadata.xml new file mode 100644 index 00000000000..c736f846eb1 --- /dev/null +++ b/sys-devel/rust-std/metadata.xml @@ -0,0 +1,21 @@ + + + + + gyakovlev@gentoo.org + Georgy Yakovlev + + + rust@gentoo.org + Rust Project + + + The Rust Standard Library is the foundation of portable Rust software, + a set of minimal and battle-tested shared abstractions for the broader Rust ecosystem. + It offers core types, like Vec<T> and Option<T>, library-defined operations on language primitives, + standard macros, I/O and multithreading, among many other things. + + + rust-lang/rust + + diff --git a/sys-devel/rust-std/rust-std-1.46.0.ebuild b/sys-devel/rust-std/rust-std-1.46.0.ebuild new file mode 100644 index 00000000000..a90e4641c1f --- /dev/null +++ b/sys-devel/rust-std/rust-std-1.46.0.ebuild @@ -0,0 +1,146 @@ +# Copyright 2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{6,7,8} ) + +inherit flag-o-matic multiprocessing python-any-r1 rust-toolchain toolchain-funcs + +DESCRIPTION="Rust standard library, standalone (for crossdev)" +HOMEPAGE="https://www.rust-lang.org" +SRC_URI="https://static.rust-lang.org/dist/rustc-${PV}-src.tar.xz" + +LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA" +SLOT="stable/$(ver_cut 1-2)" +# please do not keyword yet +#KEYWORDS="" #nowarn +IUSE="debug" + +BDEPEND=" + ${PYTHON_DEPS} + ~dev-lang/rust-${PV}:= +" + +DEPEND="|| + ( + >="${CATEGORY}"/gcc-4.7:* + >="${CATEGORY}"/clang-3.5:* + ) +" + +RDEPEND="${DEPEND}" + +# need full compiler to run tests +RESTRICT="test" + +QA_FLAGS_IGNORED="usr/lib.*/rust-.*/rustlib/.*/lib/lib.*.so" + +S="${WORKDIR}/${P/-std/c}-src" + +# +# The cross magic +# +export CTARGET=${CTARGET:-${CHOST}} +if [[ ${CTARGET} == ${CHOST} ]] ; then + if [[ ${CATEGORY} == cross-* ]] ; then + export CTARGET=${CATEGORY#cross-} + fi +fi + +is_cross() { [[ ${CHOST} != ${CTARGET} ]] ; } + +toml_usex() { + usex "$1" true false +} + +pkg_pretend() { + is_cross || die "${PN} should only be used for cross" +} + +pkg_setup() { + python-any-r1_pkg_setup +} + +src_prepare() { + default +} + +src_configure() { + # do the great cleanup + strip-flags + filter-flags '-mcpu=*' '-march=*' '-mtune=*' '-m32' '-m64' + strip-unsupported-flags + + local rust_root x + rust_root="$(rustc --print sysroot)" + rtarget="$(rust_abi ${CTARGET})" + rtarget="${ERUST_STD_RTARGET:-${rtarget}}" # some targets need to be custom. + rbuild="$(rust_abi ${CBUILD})" + rhost="$(rust_abi ${CHOST})" + + echo + for x in CATEGORY rust_root rbuild rhost rtarget RUSTFLAGS CFLAGS CXXFLAGS LDFLAGS; do + einfo "$(printf '%10s' ${x^^}:) ${!x}" + done + + cat <<- EOF > "${S}"/config.toml + [build] + build = "${rbuild}" + host = ["${rhost}"] + target = ["${rtarget}"] + cargo = "${rust_root}/bin/cargo" + rustc = "${rust_root}/bin/rustc" + submodules = false + python = "${EPYTHON}" + locked-deps = true + vendor = true + extended = true + verbose = 2 + cargo-native-static = false + [install] + prefix = "${EPREFIX}/usr" + libdir = "$(get_libdir)/${P/-std/}" + [rust] + optimize = true + debug = $(toml_usex debug) + debug-assertions = $(toml_usex debug) + debuginfo-level-rustc = 0 + backtrace = true + incremental = false + default-linker = "$(tc-getCC)" + rpath = false + dist-src = false + remap-debuginfo = true + jemalloc = false + [dist] + src-tarball = false + [target.${rtarget}] + cc = "$(tc-getCC ${CTARGET})" + cxx = "$(tc-getCXX ${CTARGET})" + linker = "$(tc-getCC ${CTARGET})" + ar = "$(tc-getAR ${CTARGET})" + $(usex elibc_musl 'crt-static = false' '') + EOF + + einfo "${PN^} configured with the following settings:" + cat "${S}"/config.toml || die +} + +src_compile() { + env RUST_BACKTRACE=1 \ + "${EPYTHON}" ./x.py build -vv --config="${S}"/config.toml -j$(makeopts_jobs) \ + src/libstd --stage 0 || die +} + +src_test() { + ewarn "${PN} can't run tests" +} + +src_install() { + local rustlib="$(get_libdir)/${P/-std/}/rustlib" + dodir "/usr/${rustlib}" + pushd "build/${rhost}/stage0-sysroot/${rustlib}" > /dev/null || die + cp -pPRv "${rtarget}" "${ED}/usr/${rustlib}" || die + popd > /dev/null || die +}