summaryrefslogtreecommitdiff
path: root/dev-lang/rust
diff options
context:
space:
mode:
Diffstat (limited to 'dev-lang/rust')
-rw-r--r--dev-lang/rust/Manifest7
-rw-r--r--dev-lang/rust/metadata.xml3
-rw-r--r--dev-lang/rust/rust-1.27.1-r2.ebuild271
-rw-r--r--dev-lang/rust/rust-1.27.1.ebuild (renamed from dev-lang/rust/rust-1.27.0.ebuild)0
4 files changed, 278 insertions, 3 deletions
diff --git a/dev-lang/rust/Manifest b/dev-lang/rust/Manifest
index fa09b9b24764..9dfc987dc422 100644
--- a/dev-lang/rust/Manifest
+++ b/dev-lang/rust/Manifest
@@ -9,8 +9,9 @@ DIST rust-1.26.2-i686-unknown-linux-gnu.tar.xz 143090096 BLAKE2B 7871fa4e4d0f320
DIST rust-1.26.2-x86_64-unknown-linux-gnu.tar.xz 138609432 BLAKE2B 54507a8ce3ab2676e6e66852b6d3f1a47ca07ad4b56383f6247149309a0f60f67fbf0a6ba27d968c24340c07d7d5074942c6eaccbc1207c5e75fd9a6f47b2481 SHA512 29e474b0eab4dd2ffa0b964d83f52ffce530e75c4193e307410ef6d20ef9ad2b300a4f467bdf06b3311157340e9295cb9b1efdcf08dafee66979b076c2afba7e
DIST rustc-1.25.0-src.tar.gz 98639156 BLAKE2B 1408d5dd0611d4830de3b6b3d00e3fad4198a47599b639d0ac0bd05aaba401f743056a942e9df04a4d192c6b12e8cfe9a9cdf8cd26e48b72104ce9b423df049e SHA512 7d8886f4d5a621eb794e814deb60be681fa38cf086f87ffa14e5a3500c640b237c549a632de1331a0f1b71963de41f6d31a4df3866b7e597424002316fed81ce
DIST rustc-1.26.2-src.tar.xz 54613640 BLAKE2B f361b7a0ed40ccb026750b4a70b99931f1abf52024e907b588e339902de2fbbd15501d237ac048d0537005834b0a2f49935f654a8c75d40ed95c65894f611481 SHA512 a598858ddce0e05d1d431be383400f44fc551eb2e368f37b01670c0b65ea5da6a7d5b2b68bb6ef806d2107cfa0d5007008442ad4d5ddb17d18d04e0ab31600b0
-DIST rustc-1.27.0-src.tar.xz 55455772 BLAKE2B 5c1b26a3e8c6e45aaa43b3ccb5819089cf03c32807ac1adc46ec4f9ff8cf803ec444587ccb737b5d701c4ef5fa634fc4c89de3d71e6202b64ec125f986e54ffd SHA512 b80af48c637741add1d2846e6e3153b0125fb22ed587036fb9d27ad3961419af64802aa91a79258277b1be20718281558989ea0283db0c482fe1512354ba79d8
+DIST rustc-1.27.1-src.tar.xz 55458892 BLAKE2B 9c5cec24760afdcee51fb0ba8d2289b92d34de57e97e57f2e5dc129674edab4a595ab5756c789b5de15bdd5107363f12a517169cedc7c3093fa0241d200ca3ab SHA512 4a8c03476ca1867a1130b825724ecb6bd629b889d704fdd6c3de4e188f73e2d1acdfae413f26e37505d76109d23d8e9ab409b31af3d67d244f8552730ada292d
EBUILD rust-1.25.0.ebuild 4602 BLAKE2B ef12c22219b70843d6132e07dc0df131502ba441a750c86f1863bd55c708df992a8d359fd62da11ff473806998673fbe0db11ff8129d4af42295ad6d849be511 SHA512 737a3f8469cac36442f11260de811294ab38faa23c515c78159288f340e51bafbb64b7c6354e8409f5b7093e65907aaebcc787493779f70f56a5bb02535574c3
EBUILD rust-1.26.2.ebuild 6405 BLAKE2B 42ba958bf51ca06863a7daf33af65edf6ca9a8661403c3790beb0767275ef351c624bab40eec7d6b191f9ff366a00ffe9b9419edf6ad95093adc130e1c3c8c27 SHA512 5475113b82ae3d5406a41a2ad1d37dd0997be401dbe5f61a3f50234b208b23f6b3bb465baffc0e05b3c667416dcd870d61b918f36ef3e41ae30009b600eb7524
-EBUILD rust-1.27.0.ebuild 6502 BLAKE2B 7c00b39b5db8347085ec6060019ce20f0914aed7c1f62da31d7d3114451253a076f11b60c4615f7b5f1afb0cd7bd25e0e89f328b29fe4c041bad242f69e9cb36 SHA512 57c6ac383e47aec3d86b7d1ec198c843b89498c2f2fea17f1e1ce07ec4a9405ec48add0e3e683a378f74650582ded64a3d610c7d1014295ca9e141bd7d0961a6
-MISC metadata.xml 567 BLAKE2B ba37cc554e05535739292d3c69155bb53bf0c99260dd60b4e7cab0eae13edee8c7e66204e3aaf9d917153714651486370db64bcda5200d6302bd8bee8eff989c SHA512 57384c3ef2f103b20d64854e5c3e50237be7f1af57687abae6a067d452b10a16ead4534b8302beb782273a8bf353adb3da90c5c140bd5394eac2ce0d3dbcc1e3
+EBUILD rust-1.27.1-r2.ebuild 7460 BLAKE2B 24163e17a44a120b62230b95c4134b181463cfdf6bce19107251e91c1bb9d37a7850c06ba6b1928c1296844902e0dd0454dd07753130cb9f655f55ec95588bb0 SHA512 5a865e7013ca04f12be10031c08aec7f5008e488489bef9bcc7c62aaf06c0b2278aa514054bb309fb73f546796f054e2b801cadc8a2883e01a88980b8a8453c7
+EBUILD rust-1.27.1.ebuild 6502 BLAKE2B 7c00b39b5db8347085ec6060019ce20f0914aed7c1f62da31d7d3114451253a076f11b60c4615f7b5f1afb0cd7bd25e0e89f328b29fe4c041bad242f69e9cb36 SHA512 57c6ac383e47aec3d86b7d1ec198c843b89498c2f2fea17f1e1ce07ec4a9405ec48add0e3e683a378f74650582ded64a3d610c7d1014295ca9e141bd7d0961a6
+MISC metadata.xml 729 BLAKE2B fabcd84f8393ad53a0a5a44d9ec6320d1ff8defa7bca5af818b28571af017739348de98c5b60db6140929f576393e70ddaebc2d255011c22ba1c6e16672b375a SHA512 103448ae7c168a0dc30539f1e747200990ffec66d62a66876c1d186d03eabdded5238175584269472b7fca53bf596b26dc58dbb732751d7971dc0c75ccf37211
diff --git a/dev-lang/rust/metadata.xml b/dev-lang/rust/metadata.xml
index c03ce153031e..88d117336094 100644
--- a/dev-lang/rust/metadata.xml
+++ b/dev-lang/rust/metadata.xml
@@ -8,8 +8,11 @@
<use>
<flag name="extended">Build and install rls, rustfmt and cargo
alongside the compiler and stdlib</flag>
+ <flag name="cargo">Install cargo component</flag>
<flag name="jemalloc">Use <pkg>dev-libs/jemalloc</pkg> as the
standard memory allocator</flag>
+ <flag name="rls">Install rls component</flag>
+ <flag name="rustfmt">Install rustfmt component</flag>
<flag name="wasm">Build support for the wasm32-unknown-unknown
target</flag>
</use>
diff --git a/dev-lang/rust/rust-1.27.1-r2.ebuild b/dev-lang/rust/rust-1.27.1-r2.ebuild
new file mode 100644
index 000000000000..1dc2182f159c
--- /dev/null
+++ b/dev-lang/rust/rust-1.27.1-r2.ebuild
@@ -0,0 +1,271 @@
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 python3_{5,6} pypy )
+
+inherit multiprocessing multilib-build python-any-r1 toolchain-funcs versionator
+
+if [[ ${PV} = *beta* ]]; then
+ betaver=${PV//*beta}
+ BETA_SNAPSHOT="${betaver:0:4}-${betaver:4:2}-${betaver:6:2}"
+ MY_P="rustc-beta"
+ SLOT="beta/${PV}"
+ SRC="${BETA_SNAPSHOT}/rustc-beta-src.tar.xz"
+ KEYWORDS=""
+else
+ ABI_VER="$(get_version_component_range 1-2)"
+ SLOT="stable/${ABI_VER}"
+ MY_P="rustc-${PV}"
+ SRC="${MY_P}-src.tar.xz"
+ KEYWORDS="~amd64 ~arm64 ~x86"
+fi
+
+CHOST_amd64=x86_64-unknown-linux-gnu
+CHOST_x86=i686-unknown-linux-gnu
+CHOST_arm64=aarch64-unknown-linux-gnu
+
+RUST_STAGE0_VERSION="1.$(($(get_version_component_range 2) - 1)).2"
+RUST_STAGE0_amd64="rust-${RUST_STAGE0_VERSION}-${CHOST_amd64}"
+RUST_STAGE0_x86="rust-${RUST_STAGE0_VERSION}-${CHOST_x86}"
+RUST_STAGE0_arm64="rust-${RUST_STAGE0_VERSION}-${CHOST_arm64}"
+
+# there is no cargo 0.28 tag, so use 0.27
+#CARGO_DEPEND_VERSION="0.$(($(version_get_comp 2) + 1)).0"
+CARGO_DEPEND_VERSION="0.$(($(get_version_component_range 2))).0"
+
+DESCRIPTION="Systems programming language from Mozilla"
+HOMEPAGE="https://www.rust-lang.org/"
+
+SRC_URI="https://static.rust-lang.org/dist/${SRC} -> rustc-${PV}-src.tar.xz
+ amd64? ( https://static.rust-lang.org/dist/${RUST_STAGE0_amd64}.tar.xz )
+ x86? ( https://static.rust-lang.org/dist/${RUST_STAGE0_x86}.tar.xz )
+ arm64? ( https://static.rust-lang.org/dist/${RUST_STAGE0_arm64}.tar.xz )
+"
+
+ALL_LLVM_TARGETS=( AArch64 AMDGPU ARM BPF Hexagon Lanai Mips MSP430
+ NVPTX PowerPC Sparc SystemZ X86 XCore )
+ALL_LLVM_TARGETS=( "${ALL_LLVM_TARGETS[@]/#/llvm_targets_}" )
+LLVM_TARGET_USEDEPS=${ALL_LLVM_TARGETS[@]/%/?}
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA"
+
+IUSE="cargo debug doc +jemalloc rls rustfmt wasm ${ALL_LLVM_TARGETS[*]}"
+
+RDEPEND=">=app-eselect/eselect-rust-0.3_pre20150425
+ jemalloc? ( dev-libs/jemalloc )"
+DEPEND="${RDEPEND}
+ ${PYTHON_DEPS}
+ || (
+ >=sys-devel/gcc-4.7
+ >=sys-devel/clang-3.5
+ )
+ cargo? ( !dev-util/cargo )
+ rustfmt? ( !dev-util/rustfmt )
+ dev-util/cmake
+"
+PDEPEND="!cargo? ( >=dev-util/cargo-${CARGO_DEPEND_VERSION} )"
+
+REQUIRED_USE="|| ( ${ALL_LLVM_TARGETS[*]} )"
+
+S="${WORKDIR}/${MY_P}-src"
+
+toml_usex() {
+ usex "$1" true false
+}
+
+src_prepare() {
+ local rust_stage0_root="${WORKDIR}"/rust-stage0
+
+ local rust_stage0_name="RUST_STAGE0_${ARCH}"
+ local rust_stage0="${!rust_stage0_name}"
+
+ "${WORKDIR}/${rust_stage0}"/install.sh --disable-ldconfig --destdir="${rust_stage0_root}" --prefix=/ || die
+
+ default
+}
+
+src_configure() {
+ local rust_target="" rust_targets="" rust_target_name arch_cflags
+
+ # Collect rust target names to compile standard libs for all ABIs.
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_target_name="CHOST_${v##*.}"
+ rust_targets="${rust_targets},\"${!rust_target_name}\""
+ done
+ if use wasm; then
+ rust_targets="${rust_targets},\"wasm32-unknown-unknown\""
+ fi
+ rust_targets="${rust_targets#,}"
+
+ local extended="false" tools=""
+ if use cargo; then
+ extended="true"
+ tools="\"cargo\","
+ fi
+ if use rls; then
+ extended="true"
+ tools="\"rls\",$tools"
+ fi
+ if use rustfmt; then
+ extended="true"
+ tools="\"rustfmt\",$tools"
+ fi
+
+ local rust_stage0_root="${WORKDIR}"/rust-stage0
+
+ rust_target_name="CHOST_${ARCH}"
+ rust_target="${!rust_target_name}"
+
+ cat <<- EOF > "${S}"/config.toml
+ [llvm]
+ optimize = $(toml_usex !debug)
+ release-debuginfo = $(toml_usex debug)
+ assertions = $(toml_usex debug)
+ targets = "${LLVM_TARGETS// /;}"
+ [build]
+ build = "${rust_target}"
+ host = ["${rust_target}"]
+ target = [${rust_targets}]
+ cargo = "${rust_stage0_root}/bin/cargo"
+ rustc = "${rust_stage0_root}/bin/rustc"
+ docs = $(toml_usex doc)
+ submodules = false
+ python = "${EPYTHON}"
+ locked-deps = true
+ vendor = true
+ extended = ${extended}
+ tools = [${tools}]
+ [install]
+ prefix = "${EPREFIX}/usr"
+ libdir = "$(get_libdir)"
+ docdir = "share/doc/${P}"
+ mandir = "share/${P}/man"
+ [rust]
+ optimize = $(toml_usex !debug)
+ debuginfo = $(toml_usex debug)
+ debug-assertions = $(toml_usex debug)
+ use-jemalloc = $(toml_usex jemalloc)
+ default-linker = "$(tc-getCC)"
+ rpath = false
+ lld = $(toml_usex wasm)
+ EOF
+
+ for v in $(multilib_get_enabled_abi_pairs); do
+ rust_target=$(get_abi_CHOST ${v##*.})
+ arch_cflags="$(get_abi_CFLAGS ${v##*.})"
+
+ cat <<- EOF >> "${S}"/config.env
+ CFLAGS_${rust_target}=${arch_cflags}
+ EOF
+
+ cat <<- EOF >> "${S}"/config.toml
+ [target.${rust_target}]
+ cc = "$(tc-getBUILD_CC)"
+ cxx = "$(tc-getBUILD_CXX)"
+ linker = "$(tc-getCC)"
+ ar = "$(tc-getAR)"
+ EOF
+ done
+
+ if use wasm; then
+ cat <<- EOF >> "${S}"/config.toml
+ [target.wasm32-unknown-unknown]
+ linker = "lld"
+ EOF
+ fi
+}
+
+src_compile() {
+ env $(cat "${S}"/config.env)\
+ ./x.py build --config="${S}"/config.toml -j$(makeopts_jobs) \
+ --exclude src/tools/miri || die # https://github.com/rust-lang/rust/issues/52305
+}
+
+src_install() {
+ local rust_target abi_libdir
+
+ env DESTDIR="${D}" ./x.py install || die
+
+ mv "${D}/usr/bin/rustc" "${D}/usr/bin/rustc-${PV}" || die
+ mv "${D}/usr/bin/rustdoc" "${D}/usr/bin/rustdoc-${PV}" || die
+ mv "${D}/usr/bin/rust-gdb" "${D}/usr/bin/rust-gdb-${PV}" || die
+ mv "${D}/usr/bin/rust-lldb" "${D}/usr/bin/rust-lldb-${PV}" || die
+ if use cargo; then
+ mv "${D}/usr/bin/cargo" "${D}/usr/bin/cargo-${PV}" || die
+ fi
+ if use rls; then
+ mv "${D}/usr/bin/rls" "${D}/usr/bin/rls-${PV}" || die
+ fi
+ if use rustfmt; then
+ mv "${D}/usr/bin/rustfmt" "${D}/usr/bin/rustfmt-${PV}" || die
+ mv "${D}/usr/bin/cargo-fmt" "${D}/usr/bin/cargo-fmt-${PV}" || die
+ fi
+
+ # Copy shared library versions of standard libraries for all targets
+ # into the system's abi-dependent lib directories because the rust
+ # installer only does so for the native ABI.
+ for v in $(multilib_get_enabled_abi_pairs); do
+ if [ ${v##*.} = ${DEFAULT_ABI} ]; then
+ continue
+ fi
+ abi_libdir=$(get_abi_LIBDIR ${v##*.})
+ rust_target=$(get_abi_CHOST ${v##*.})
+ mkdir -p "${D}/usr/${abi_libdir}"
+ cp "${D}/usr/$(get_libdir)/rustlib/${rust_target}/lib"/*.so \
+ "${D}/usr/${abi_libdir}" || die
+ done
+
+ dodoc COPYRIGHT
+
+ # FIXME:
+ # Really not sure if that env is needed, specailly LDPATH
+ cat <<-EOF > "${T}"/50${P}
+ LDPATH="/usr/$(get_libdir)/${P}"
+ MANPATH="/usr/share/${P}/man"
+ EOF
+ doenvd "${T}"/50${P}
+
+ cat <<-EOF > "${T}/provider-${P}"
+ /usr/bin/rustdoc
+ /usr/bin/rust-gdb
+ /usr/bin/rust-lldb
+ EOF
+ if use cargo; then
+ echo /usr/bin/cargo >> "${T}/provider-${P}"
+ fi
+ if use rls; then
+ echo /usr/bin/rls >> "${T}/provider-${P}"
+ fi
+ if use rustfmt; then
+ echo /usr/bin/rustfmt >> "${T}/provider-${P}"
+ echo /usr/bin/cargo-fmt >> "${T}/provider-${P}"
+ fi
+ dodir /etc/env.d/rust
+ insinto /etc/env.d/rust
+ doins "${T}/provider-${P}"
+}
+
+pkg_postinst() {
+ eselect rust update --if-unset
+
+ elog "Rust installs a helper script for calling GDB and LLDB,"
+ elog "for your convenience it is installed under /usr/bin/rust-{gdb,lldb}-${PV}."
+
+ if has_version app-editors/emacs || has_version app-editors/emacs-vcs; then
+ elog "install app-emacs/rust-mode to get emacs support for rust."
+ fi
+
+ if has_version app-editors/gvim || has_version app-editors/vim; then
+ elog "install app-vim/rust-vim to get vim support for rust."
+ fi
+
+ if has_version 'app-shells/zsh'; then
+ elog "install app-shells/rust-zshcomp to get zsh completion for rust."
+ fi
+}
+
+pkg_postrm() {
+ eselect rust unset --if-invalid
+}
diff --git a/dev-lang/rust/rust-1.27.0.ebuild b/dev-lang/rust/rust-1.27.1.ebuild
index 46186c32ca15..46186c32ca15 100644
--- a/dev-lang/rust/rust-1.27.0.ebuild
+++ b/dev-lang/rust/rust-1.27.1.ebuild