summaryrefslogtreecommitdiff
path: root/dev-lang/rust
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
committerV3n3RiX <venerix@redcorelinux.org>2017-10-09 18:53:29 +0100
commit4f2d7949f03e1c198bc888f2d05f421d35c57e21 (patch)
treeba5f07bf3f9d22d82e54a462313f5d244036c768 /dev-lang/rust
reinit the tree, so we can have metadata
Diffstat (limited to 'dev-lang/rust')
-rw-r--r--dev-lang/rust/Manifest19
-rw-r--r--dev-lang/rust/metadata.xml15
-rw-r--r--dev-lang/rust/rust-1.15.1.ebuild153
-rw-r--r--dev-lang/rust/rust-1.16.0.ebuild149
-rw-r--r--dev-lang/rust/rust-1.19.0.ebuild166
5 files changed, 502 insertions, 0 deletions
diff --git a/dev-lang/rust/Manifest b/dev-lang/rust/Manifest
new file mode 100644
index 000000000000..279a4c409126
--- /dev/null
+++ b/dev-lang/rust/Manifest
@@ -0,0 +1,19 @@
+DIST cargo-0.19.0-i686-unknown-linux-gnu.tar.gz 5068212 SHA256 30ffc32615626b746cbdd2c34d79b3de8ae9889ae56ab33feed9c3a1b9c170fc SHA512 bfe5df682eb566c91995b8c00b5e8edb5d2c3410d1baa5be2ede2e39260b653d34b7723c6c3e8f07d8102ffab50b13e62f9f2d816dad8fba9f39b7bec984181e WHIRLPOOL 3a2c9f36470f611dbd4d8e48c94b401d584b25208abafa1a1073eca33009185e37d92a3f59200027bcfb82bb50acbf5acf4aa87649360afaba7d380bdfcffff0
+DIST cargo-0.19.0-x86_64-unknown-linux-gnu.tar.gz 5133993 SHA256 24d5e01b09ba0fb15c4b7ef4f527aca874ce2e0cebc3850fdc2535ac7e25b205 SHA512 6fedb8f83d70dc4fb93a29d400577a5578ceed1448f4e85e8a9509b98b037a125532ebfb6a7e6bc9411501ea74774d2c47ac7e2bcb7ac82baeb925abc46609e8 WHIRLPOOL eb76664d0ac08389beb9feae5f6d603b6846cb3d21f015e97bf702789afa7cedd4cd1fb04594d48af8840dece0bc9c44c74fb84390c5b24dcb5061567b59737f
+DIST rust-std-1.18.0-i686-unknown-linux-gnu.tar.gz 66316236 SHA256 3b93c7b856b98f61ec0f640bc96373f4762484ab3340866902c8c96933bcf10b SHA512 0649743437f15d80f7fe08ae32177b36e2a89e87db8062433cfa6d0f62fe7e8fdbc109a025c02dc110d8abdf4b74ddfe80ba8fb895992b0f5ac6a880bbbdf051 WHIRLPOOL 668f41c1fc96083c974b62ce831c254b8707fc7a452e55927ed77943548b829ff8164618ed5bec29f766366af8682e4d91edd9cd0d615bacc9d47c610f8bb87e
+DIST rust-std-1.18.0-x86_64-unknown-linux-gnu.tar.gz 75723132 SHA256 4a66150781e224412ebd9dd6d643ad65ecc5668a7754e4a12e115be6ce7bf527 SHA512 98f50016cf6f7c89f90830e1c9f41b5413adf2eaa5e2874ca117ffe84ee59fe77cb461ca3601ee65c5c5c884eb42e22509a94c00544527c727f2e3d6d0adb530 WHIRLPOOL 0c08c956be2252f25098d2007a5d57d4e74b3ef9fba47a0b3e291db9575cf41986d89a8b24f6966f73c830b52d2a481a6248deec9a6502baf3fa5b79afe2c342
+DIST rustc-1.14.0-i686-unknown-linux-gnu.tar.gz 51391277 SHA256 52b7df5025c302d82f0572fbdc74309334bad36e796c4a2fdf934abe2e5e23ac SHA512 4a951439d8c001b8ff2f6aa2f505e23130209494026fdacea019aef05bebb2f0d3404df047ccedbe9f4140cb5163404db22a5b0977752c495fc45f739d1252fb WHIRLPOOL 881f1a042568d55a3826f629ddd04642dbbfa3a7f423bb3c1d4e1d4e73fa31fe34c708b718b5d44cdd34cc71f99243de98f1478d880ff5804375bbc33ff4766e
+DIST rustc-1.14.0-x86_64-unknown-linux-gnu.tar.gz 49370951 SHA256 0eeec4211aa872f24c220200a0c2b095bbfc9c0f737c1c5df2555967c8f36787 SHA512 da33a8c509d3a554bed3173f8cdd6fc3639646e5b12eae80654d83290160227238c6f9ff9c0247d63a90f48eeafc8dc31a4a02575ba43fa6d5f75ae58a347c32 WHIRLPOOL a5aa3eb98b0b6b080057a4c5ffb00996904d3a6bb660297a984205f85e9fd6932f9e9c6c4d4fe60a8ca16a216304ab6e504a45b75b876408a8f3450f29872332
+DIST rustc-1.15.1-i686-unknown-linux-gnu.tar.gz 39314075 SHA256 a833304f99071600c72ecd868c1c7bd5ce49d1102332637a8eb7adb942f349ab SHA512 138a4a893a70860650da1636f734977c215e32b1f9b15b957bfc31575d2662ea6c2c65a130bd13647ec1f2366fe0deb26a94ea09aaec7cbda8e466fa295a0c42 WHIRLPOOL 175e1c7ae1352b955c4e9fc3ea2175e91fe9037e356898fc7dc61ce55f5932db6cf4efac834cecc95b6c90c411b57f0ddb398e9b1f3af843a77f1fd84d52c36b
+DIST rustc-1.15.1-src.tar.gz 28100203 SHA256 2e7daad418a830b45b977cd7ecf181b65f30f73df63ff36e124ea5fe5d1af327 SHA512 10d533b17cf7f92b9dff14b399b5dd0ac8b68284eea072c85ede78a4e4c2c4fce8c781777124c64798057aceb6444535e02e067fd67ba3633c3e828fb4d2d339 WHIRLPOOL 8b80298cd0a8c3ae0f7ad11052e2dd0bd48b589a95e4bbda4db32ac62d52f9252fe783d46b00484550099b99c3871bd577f8ef54ed45c20b477f9742220497fa
+DIST rustc-1.15.1-x86_64-unknown-linux-gnu.tar.gz 37650863 SHA256 33ff44672b731fc71145974ce84194a1a9bafe6da3a74fd1e7543f12467f8894 SHA512 97f2fd905b1c2c9ee1fb9a9604a931154aa928692e6334af5a60f1853e49246b13af26afb6342f085cf77e624f23e90c409f05b81983408cf0538ba1401ef7cb WHIRLPOOL 92d4659712a3c8c5908f2abff4f582233a2b5aea2256213376f4830aaddb8470257e49d9f65503e7d82845648a898fd980afb070c39c37feaf8d489fdd9e238e
+DIST rustc-1.16.0-src.tar.gz 28470372 SHA256 f966b31eb1cd9bd2df817c391a338eeb5b9253ae0a19bf8a11960c560f96e8b4 SHA512 096b1b7406be9bc61161bb7cdd2061f2bc2174c161a31f4ed6ceecf7fc379f315fc2f7cb9f6c134ea4f8519c27bf6e5a3f712cf1e56d5785831d8c8374eb0ba5 WHIRLPOOL a59a19b63d64fd98d4f488e465c7a89ca034eaddb3ef6272fe3ab6c3e411afb7ca3b34926201815ce208a5de78dc9e9018caa1d05b71d1cbc80912d46eb8b074
+DIST rustc-1.18.0-i686-unknown-linux-gnu.tar.gz 47281118 SHA256 0cb9bb95373cee8ba26e8f517c46f8c58a29e22f2c7c08a4d152306c6ffc7115 SHA512 e270a314fb326fb226226741a5a15f237846ffb7ae6e0ab349f56328f5b3557d8b3dfdcfbc168f3ed4d9875806434537ce7bd5fb97b2c3078f7d03fd6ce65d2d WHIRLPOOL 598aaa0c8ded68fdddd28f827b07e3841355e1ff67aed20d31cc7728fc351a95e8c521661487905fba0689c0513b5f3baf31ed34cfae5f396731a5e72da2067b
+DIST rustc-1.18.0-x86_64-unknown-linux-gnu.tar.gz 45281645 SHA256 f2a34e20166ccf6eda4de46a9efb02821df5c3f34667e2988284a8eaee408113 SHA512 7d8865a43b979150c3dc3abaa852921f46bebb54659bb0f14bc9b82b367f94ec031da4d03242cb6aae8bd11167402b9e166a14aa3c4a141413be54e9a685af31 WHIRLPOOL 0dc7b498701e3d40b3242e7860b6b5b6ccdd437d0e1d0a6c492fd6b7fa539800b6722e2da124b8ba9568beccc34e83cab080045f41450a4fb5a123c99f6136fb
+DIST rustc-1.19.0-src.tar.gz 50108626 SHA256 15231f5053fb72ad82be91f5abfd6aa60cb7898c5089e4f1ac5910a731090c51 SHA512 080a8625fc15bc4fc17ab910bdcc0d9a88ce8922f1a3eb241d0f956b5799e4db6df45ebabb5497295c198be08686e5a94dff65569582fc6a5ecb9200cfee5c24 WHIRLPOOL 1dabcc0966a2e69f6c8105e39b82f31bc1c64803318c3a82f63f82afbc67e566d6969568678e86079e1fb515f73feb23d981920c232d836d297abf58010612fe
+EBUILD rust-1.15.1.ebuild 3984 SHA256 b1d1e31eea488eddf2ab37af72eb21e5b278293ff6fc3c256c17a7ec8f147299 SHA512 a6b14e295a562308f5d9bfa2e5087c5ede31c93a99cc41b37fcabca42042ed958384660e51486372127d2262feb1071e3ffd386c974d86ad7647eb9c0ef8648d WHIRLPOOL 4ebd8a878dad27318a208b30dd3a043b3840fce4bfa8f6a858e7b39da59ab5da775374fec25ebaf970088a7cda378c407407f0bc5d0d589371ab9233a41d0c69
+EBUILD rust-1.16.0.ebuild 3840 SHA256 8712a23144f80395cc8eb99dd30c0dbd66548c0af8c2f81dc7a9f17c2b2f08f5 SHA512 8c661074f6a53f6d8397d712c8236dfc34f18c386e699a1ab1db9a9eceba9e776c09c733ad615a1897916f1268c46e58a56c5f80cd2efe787fca5f8fdc8591e4 WHIRLPOOL 54b73f98c30d4d8422843078968a1bd90c8bff5c48196e3992766b4361c2ffa0cf4bf70c8fe1297b4eb330e227e967d696fd4725e97cad4a7e2c5426d6e9de60
+EBUILD rust-1.19.0.ebuild 4145 SHA256 e79d0b976253503ee5e15564e51e980b5cc42ea3439825931c46c0f96f6d1c2d SHA512 0da72a60a704d7215a3dea336e780c81473253ea3ccbfc41c1cef4cf2b2f86a791a41f42356a8958088d6522e6c3a917cfa196d14556feef5f56667b92012739 WHIRLPOOL 05d27b8378525c15b72cd11b6dea534255a0ff0f63eeb6ebc1de3326b5e49f864583c0fb8ded325e521393b7e5805d8cac724fadf9ac77350caac6c6a95e9b3b
+MISC ChangeLog 10556 SHA256 d137f1eb60479332b21c359d506d2856d91a27b458de4c38e57be3b7997cb7bb SHA512 c9eb6d623969559659065ad69efb5f9c1199587c740f9b73b29157f68c68a284bf0c3aacd7456122ce102d41ae4cbb7a19f2e634f7477c65a4a2a0d1640969d2 WHIRLPOOL b3036acdb63d7c405187e9ae8400808c267541ec0dbd0cb4196d5277e11e842103cc6dab096d9f3995ba30e2c2a1a65a5be29b1268851030ad7f23401f1bdac6
+MISC ChangeLog-2015 4442 SHA256 37cc85223ed117da5749eb4956c1efd3015e46284d062a10e8421b5797b1619e SHA512 66f9e94329c2c31c8e0a3941796d140590e65610fdca987bee5ac0861506eebc3152bdef0f2f2dac9e84767a4eb3c666c2b92a3c1e1bb78c02a317a29651e236 WHIRLPOOL 917d74c777f82241eb57f6afbab6ea95e928fedf661d61fd2f46e79c242ad1c6db73b8ef9f33b3521f04cb60e08ba794a18f23659d004a5849eb08caf67d64f4
+MISC metadata.xml 578 SHA256 14c70fbe484d7251138113abc717dd7e9a995768f692829335ab95faa682e1ac SHA512 c2e4e7f1bbb0227493875a1ff9e55f870313b615a7234f716984366760dccc5b5186a2a03591533769958c3a70f8a973d5d22111cfe29849e835f5b0a400c26d WHIRLPOOL 3d204fe92188b93d46809f8f9e6a50fc5066299d3fec1c515c28acd118b131ee9503789089486c7a4e63c35743bd9b6992b88b08cf5f31a4a43ff18d72b5f77e
diff --git a/dev-lang/rust/metadata.xml b/dev-lang/rust/metadata.xml
new file mode 100644
index 000000000000..6d0b35dc8f72
--- /dev/null
+++ b/dev-lang/rust/metadata.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>rust@gentoo.org</email>
+ <name>Rust Project</name>
+ </maintainer>
+ <use>
+ <flag name="clang">Use <pkg>sys-devel/clang</pkg> for building</flag>
+ <flag name="libcxx">Use <pkg>sys-libs/libcxx</pkg> as standard
+ library when building with <pkg>sys-devel/clang</pkg></flag>
+ <flag name="system-llvm">Use system <pkg>sys-devel/llvm</pkg> in
+ place of the bundled one</flag>
+ </use>
+</pkgmetadata>
diff --git a/dev-lang/rust/rust-1.15.1.ebuild b/dev-lang/rust/rust-1.15.1.ebuild
new file mode 100644
index 000000000000..5d7f76787c57
--- /dev/null
+++ b/dev-lang/rust/rust-1.15.1.ebuild
@@ -0,0 +1,153 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit python-any-r1 versionator toolchain-funcs
+
+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.gz"
+ KEYWORDS=""
+else
+ ABI_VER="$(get_version_component_range 1-2)"
+ SLOT="stable/${ABI_VER}"
+ MY_P="rustc-${PV}"
+ SRC="${MY_P}-src.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+CARGO_VERSION="0.$(($(get_version_component_range 2) + 1)).0"
+STAGE0_VERSION="1.$(($(get_version_component_range 2) - 1)).0"
+RUST_STAGE0_amd64="rustc-${STAGE0_VERSION}-x86_64-unknown-linux-gnu"
+RUST_STAGE0_x86="rustc-${STAGE0_VERSION}-i686-unknown-linux-gnu"
+
+DESCRIPTION="Systems programming language from Mozilla"
+HOMEPAGE="http://www.rust-lang.org/"
+
+SRC_URI="https://static.rust-lang.org/dist/${SRC} -> rustc-${PV}-src.tar.gz
+ amd64? ( https://static.rust-lang.org/dist/${RUST_STAGE0_amd64}.tar.gz )
+ x86? ( https://static.rust-lang.org/dist/${RUST_STAGE0_x86}.tar.gz )
+"
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA"
+
+IUSE="clang debug doc libcxx +system-llvm"
+REQUIRED_USE="libcxx? ( clang )"
+
+RDEPEND="libcxx? ( sys-libs/libcxx )
+ system-llvm? ( >=sys-devel/llvm-3.8.1-r2:0
+ <sys-devel/llvm-3.10.0:0 )
+"
+
+DEPEND="${RDEPEND}
+ ${PYTHON_DEPS}
+ >=dev-lang/perl-5.0
+ clang? ( sys-devel/clang )
+"
+
+PDEPEND=">=app-eselect/eselect-rust-0.3_pre20150425
+ >=dev-util/cargo-${CARGO_VERSION}"
+
+S="${WORKDIR}/${MY_P}-src"
+
+src_prepare() {
+ find mk -name '*.mk' -exec \
+ sed -i -e "s/-Werror / /g" {} \; || die
+
+ default
+}
+
+src_configure() {
+ export CFG_DISABLE_LDCONFIG="notempty"
+
+ local stagename="RUST_STAGE0_${ARCH}"
+ local stage0="${!stagename}"
+
+ "${ECONF_SOURCE:-.}"/configure \
+ --prefix="${EPREFIX}/usr" \
+ --libdir="${EPREFIX}/usr/$(get_libdir)/${P}" \
+ --mandir="${EPREFIX}/usr/share/${P}/man" \
+ --release-channel=${SLOT%%/*} \
+ --disable-manage-submodules \
+ --disable-rustbuild \
+ --default-linker=$(tc-getBUILD_CC) \
+ --default-ar=$(tc-getBUILD_AR) \
+ --python=${EPYTHON} \
+ --disable-rpath \
+ --enable-local-rust \
+ --local-rust-root="${WORKDIR}/${stage0}/rustc" \
+ $(use_enable clang) \
+ $(use_enable debug) \
+ $(use_enable debug llvm-assertions) \
+ $(use_enable !debug optimize) \
+ $(use_enable !debug optimize-cxx) \
+ $(use_enable !debug optimize-llvm) \
+ $(use_enable !debug optimize-tests) \
+ $(use_enable doc docs) \
+ $(use_enable libcxx libcpp) \
+ $(usex system-llvm "--llvm-root=${EPREFIX}/usr" " ") \
+ || die
+}
+
+src_compile() {
+ emake VERBOSE=1
+}
+
+src_install() {
+ unset SUDO_USER
+
+ default
+
+ 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
+
+ dodoc COPYRIGHT
+
+ dodir "/usr/share/doc/rust-${PV}/"
+ mv "${D}/usr/share/doc/rust"/* "${D}/usr/share/doc/rust-${PV}/" || die
+ rmdir "${D}/usr/share/doc/rust/" || die
+
+ 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
+ EOF
+ 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 now,"
+ elog "for your convenience it is installed under /usr/bin/rust-gdb-${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.16.0.ebuild b/dev-lang/rust/rust-1.16.0.ebuild
new file mode 100644
index 000000000000..e13e960aba12
--- /dev/null
+++ b/dev-lang/rust/rust-1.16.0.ebuild
@@ -0,0 +1,149 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit python-any-r1 versionator toolchain-funcs
+
+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.gz"
+ KEYWORDS=""
+else
+ ABI_VER="$(get_version_component_range 1-2)"
+ SLOT="stable/${ABI_VER}"
+ MY_P="rustc-${PV}"
+ SRC="${MY_P}-src.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+CARGO_VERSION="0.$(($(get_version_component_range 2) + 1)).0"
+STAGE0_VERSION="1.$(($(get_version_component_range 2) - 1)).1"
+RUST_STAGE0_amd64="rustc-${STAGE0_VERSION}-x86_64-unknown-linux-gnu"
+RUST_STAGE0_x86="rustc-${STAGE0_VERSION}-i686-unknown-linux-gnu"
+
+DESCRIPTION="Systems programming language from Mozilla"
+HOMEPAGE="http://www.rust-lang.org/"
+
+SRC_URI="https://static.rust-lang.org/dist/${SRC} -> rustc-${PV}-src.tar.gz
+ amd64? ( https://static.rust-lang.org/dist/${RUST_STAGE0_amd64}.tar.gz )
+ x86? ( https://static.rust-lang.org/dist/${RUST_STAGE0_x86}.tar.gz )
+"
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA"
+
+IUSE="clang debug doc libcxx"
+REQUIRED_USE="libcxx? ( clang )"
+
+RDEPEND="libcxx? ( sys-libs/libcxx )"
+
+DEPEND="${RDEPEND}
+ ${PYTHON_DEPS}
+ >=dev-lang/perl-5.0
+ clang? ( sys-devel/clang )
+"
+
+PDEPEND=">=app-eselect/eselect-rust-0.3_pre20150425
+ >=dev-util/cargo-${CARGO_VERSION}"
+
+S="${WORKDIR}/${MY_P}-src"
+
+src_prepare() {
+ find mk -name '*.mk' -exec \
+ sed -i -e "s/-Werror / /g" {} \; || die
+
+ default
+}
+
+src_configure() {
+ export CFG_DISABLE_LDCONFIG="notempty"
+
+ local stagename="RUST_STAGE0_${ARCH}"
+ local stage0="${!stagename}"
+
+ "${ECONF_SOURCE:-.}"/configure \
+ --prefix="${EPREFIX}/usr" \
+ --libdir="${EPREFIX}/usr/$(get_libdir)/${P}" \
+ --mandir="${EPREFIX}/usr/share/${P}/man" \
+ --release-channel=${SLOT%%/*} \
+ --disable-manage-submodules \
+ --disable-rustbuild \
+ --default-linker=$(tc-getBUILD_CC) \
+ --default-ar=$(tc-getBUILD_AR) \
+ --python=${EPYTHON} \
+ --disable-rpath \
+ --enable-local-rust \
+ --local-rust-root="${WORKDIR}/${stage0}/rustc" \
+ $(use_enable clang) \
+ $(use_enable debug) \
+ $(use_enable debug llvm-assertions) \
+ $(use_enable !debug optimize) \
+ $(use_enable !debug optimize-cxx) \
+ $(use_enable !debug optimize-llvm) \
+ $(use_enable !debug optimize-tests) \
+ $(use_enable doc docs) \
+ $(use_enable libcxx libcpp) \
+ || die
+}
+
+src_compile() {
+ emake VERBOSE=1
+}
+
+src_install() {
+ unset SUDO_USER
+
+ default
+
+ 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
+
+ dodoc COPYRIGHT
+
+ dodir "/usr/share/doc/rust-${PV}/"
+ mv "${D}/usr/share/doc/rust"/* "${D}/usr/share/doc/rust-${PV}/" || die
+ rmdir "${D}/usr/share/doc/rust/" || die
+
+ 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
+ EOF
+ 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 now,"
+ elog "for your convenience it is installed under /usr/bin/rust-gdb-${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.19.0.ebuild b/dev-lang/rust/rust-1.19.0.ebuild
new file mode 100644
index 000000000000..402db0937fa3
--- /dev/null
+++ b/dev-lang/rust/rust-1.19.0.ebuild
@@ -0,0 +1,166 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+PYTHON_COMPAT=( python2_7 )
+
+inherit python-any-r1 versionator toolchain-funcs
+
+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.gz"
+ KEYWORDS=""
+else
+ ABI_VER="$(get_version_component_range 1-2)"
+ SLOT="stable/${ABI_VER}"
+ MY_P="rustc-${PV}"
+ SRC="${MY_P}-src.tar.gz"
+ KEYWORDS="~amd64 ~x86"
+fi
+
+if [[ ${ARCH} = "amd64" ]]; then
+ TRIPLE="x86_64-unknown-linux-gnu"
+else
+ TRIPLE="i686-unknown-linux-gnu"
+fi
+
+CARGO_VERSION="0.$(($(get_version_component_range 2) + 1)).0"
+STAGE0_VERSION="1.$(($(get_version_component_range 2) - 1)).0"
+STAGE0_VERSION_CARGO="0.$(($(get_version_component_range 2))).0"
+BOOTSTRAP_DATE="2017-06-08" # found in src/stage0.txt
+
+DESCRIPTION="Systems programming language from Mozilla"
+HOMEPAGE="http://www.rust-lang.org/"
+
+SRC_URI="amd64? (
+ https://static.rust-lang.org/dist/rustc-${STAGE0_VERSION}-x86_64-unknown-linux-gnu.tar.gz
+ https://static.rust-lang.org/dist/rust-std-${STAGE0_VERSION}-x86_64-unknown-linux-gnu.tar.gz
+ https://static.rust-lang.org/dist/cargo-${STAGE0_VERSION_CARGO}-x86_64-unknown-linux-gnu.tar.gz
+ )
+ x86? (
+ https://static.rust-lang.org/dist/rustc-${STAGE0_VERSION}-i686-unknown-linux-gnu.tar.gz
+ https://static.rust-lang.org/dist/rust-std-${STAGE0_VERSION}-i686-unknown-linux-gnu.tar.gz
+ https://static.rust-lang.org/dist/cargo-${STAGE0_VERSION_CARGO}-i686-unknown-linux-gnu.tar.gz
+ )
+ https://static.rust-lang.org/dist/rustc-${PV}-src.tar.gz"
+
+LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA"
+
+IUSE="clang debug doc libcxx"
+REQUIRED_USE="libcxx? ( clang )"
+
+RDEPEND="libcxx? ( sys-libs/libcxx )"
+
+DEPEND="${RDEPEND}
+ ${PYTHON_DEPS}
+ >=dev-lang/perl-5.0
+ clang? ( sys-devel/clang )
+ >=dev-util/cmake-3.4.3
+"
+
+PDEPEND=">=app-eselect/eselect-rust-0.3_pre20150425
+ >=dev-util/cargo-${CARGO_VERSION}"
+
+S="${WORKDIR}/rustc-${PV}-src"
+
+src_unpack() {
+ unpack ${A##* }
+}
+
+src_configure() {
+ echo "No configure step for rust"
+}
+
+src_compile() {
+ local stage0="rust-${STAGE0_VERSION}-${TRIPLE}"
+ if use debug ; then
+ local optimized="false";
+ local debug="true";
+ else
+ local optimized="true";
+ local debug="false";
+ fi
+
+ cat <<- EOF > config.toml
+ [llvm]
+ optimize = ${optimized}
+ assertions = ${debug}
+ [build]
+ docs = false
+ submodules = false
+ python = "${EPYTHON}"
+ vendor = true
+ [install]
+ prefix = "${EPREFIX}/usr"
+ libdir = "$(get_libdir)/${P}"
+ mandir = "share/${P}/man"
+ docdir = "share/${P}/doc"
+ [rust]
+ optimize = ${optimized}
+ default-linker = "$(tc-getBUILD_CC)"
+ default-ar = "$(tc-getBUILD_AR)"
+ channel = "${SLOT%%/*}"
+ rpath = false
+ optimize-tests = ${optimized}
+ EOF
+
+ local cache_dir="build/cache/${BOOTSTRAP_DATE}"
+ mkdir -p ${cache_dir}
+ for i in ${A}; do
+ cp "${DISTDIR}/${i}" $cache_dir/
+ done
+ ${EPYTHON} x.py build || die
+}
+
+src_install() {
+ default
+
+ local obj="build/${TRIPLE}/stage2"
+ dobin "${obj}/bin/rustc" "${obj}/bin/rustdoc"
+ dobin src/etc/rust-gdb src/etc/rust-lldb
+ insinto "/usr/$(get_libdir)"
+ doins -r "${obj}/lib/"*
+ dodoc COPYRIGHT
+ doman man/*
+
+ 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
+ EOF
+ 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 now,"
+ elog "for your convenience it is installed under /usr/bin/rust-gdb-${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
+}