Skip to content

Commit

Permalink
dev-lang/rust: version bump
Browse files Browse the repository at this point in the history
Based on the work of the Gentoo Rust overlay team's work. Includes
additional improvements such as:
- using the system LLVM by default
- updates for cross compile support
- using the latest stage0 bootstrap binary
- drop the custom postfix that Gentoo used
- provide a sub-slot for ABI so packages can rebuild
- EAPI=6
- misc cleanups

Package-Manager: portage-2.2.26
Signed-off-by: Doug Goldstein <[email protected]>
  • Loading branch information
cardoe committed Mar 26, 2016
1 parent f6c685f commit 0683dbd
Show file tree
Hide file tree
Showing 2 changed files with 151 additions and 0 deletions.
3 changes: 3 additions & 0 deletions dev-lang/rust/Manifest
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ DIST rust-stage0-2015-07-26-a5c12f4-linux-i386-3459275cdf3896f678e225843fa56f0d9
DIST rust-stage0-2015-07-26-a5c12f4-linux-x86_64-e451e3bd6e5fcef71e41ae6f3da9fb1cf0e13a0c.tar.bz2 15900837 SHA256 779943595dd63d6869c747e2a31c13095f9c5354d4530327d6f9310cc580c2ff SHA512 c6d74065f785719bb7e394e42bc64d323d00c0c3e70a4e16961055b8fbe69e557c7dc4875b3ba3d8c04184220aa35da7311d880b5f987b7105f54fdfcc20ded4 WHIRLPOOL f0c5ba9f40cc857dc5406704a3d8dfd468150d6ff0494a206d43a2e0e12c6670a23079b932f59233c64cce6af75f1e677c308e3434f9e416ac5e21951129afcb
DIST rust-stage0-2015-08-11-1af31d4-linux-i386-e2553bf399cd134a08ef3511a0a6ab0d7a667216.tar.bz2 16320060 SHA256 7319c60faad6dc380775e8a104c67d58b1365dbbed31a3bd15e1b8bc5004d59f SHA512 ce98bedd99dc00f60c869f3bfa4028e17f28d328b9cdae3f3279c8a7f4fb767f6bcb0655d28f17a3df581cb1a56d0326da7333d403e6921c46a51648ff2b1ef9 WHIRLPOOL 1ed9017636d421aaef053df0fd5a2d3aafbdb93f1ac7053fa7b4135189e7a926b87fa2cca93fd11112fdada72f3f9cb7ee7942cfab30540cb5e311b17b198b91
DIST rust-stage0-2015-08-11-1af31d4-linux-x86_64-7df8ba9dec63ec77b857066109d4b6250f3d222f.tar.bz2 15826164 SHA256 5936f5ec4327d41f3aa9f98cbedebb6fd3d72715f8df578e0c9a669154c80bc3 SHA512 6a761971757df2fb9668f9225c2d364cc16352f61205ae88e4cce38f95e94e75e3fd8b5e8a3684c2c8550ae26091714be1d8c1602ddf286af35ea49f81b5c728 WHIRLPOOL 0d3b716efabede055e017f55ec702231c2457cde06efa093e61341bc441aee4b812ee31f9665c5cb1a2e4930a913e06286a3b59a3f63ed93378bb3427d225eb4
DIST rust-stage0-2015-12-18-3391630-linux-i386-a09c4a4036151d0cb28e265101669731600e01f2.tar.bz2 17372311 SHA256 b1bfa86ed526bea5710dbbf44852fa9c49276bb8d6a6a5be6a266b162ef94d92 SHA512 1b23160ea385cfa9d5240271bc9947a2bfdb94b72147140b4b1a8241354fab456f833e0e0d32d7ba13243007ebb6d935a78fe72523d86a987d672df4caa6a90d WHIRLPOOL c399124bb75ba45011abafb37be1b6add570b079d5d2accc22abd8b774c27eb85e02b23813520838b2ce6b6dcf822b6554d6c5e94c9a7af819b8f281c79db6f0
DIST rust-stage0-2015-12-18-3391630-linux-x86_64-97e2a5eb8904962df8596e95d6e5d9b574d73bf4.tar.bz2 16832231 SHA256 a8dc5203673ce43f47316beb02ee0c427edb7bbde2ab5fc662a06b52db2950e7 SHA512 e6768cdafa845b65f86069b3d35df9ec28121d1c55b5033eb34f6fdc0e20485335c977588f44d170d194550fc5f3b4b675f896ebb1e3ea05e1c96ff423343509 WHIRLPOOL 4d46083ec5e5cb57f42311518f51d4d04138b07a31b6fe29eae0da55f3137ef4e122f0d2d0f0cfd139316ee90f2d0c8211b80f37bcec6b8b65efb4189e391753
DIST rustc-1.2.0-src.tar.gz 23863924 SHA256 ea6eb983daf2a073df57186a58f0d4ce0e85c711bec13c627a8c85d51b6a6d78 SHA512 2596c0dddff0276916edbb7d68ae610209c75d53d89f1f15dc56ad7408e235dbedfcd1bba9c446dd1e32a8d274cedebb7b32b328223280c28ab546bbd06f1c76 WHIRLPOOL 741118f7e265129bfd0f0d66487e12dc8f95018d8479e8f3cde555160abdb29ade9c69607a2daa088ae3dbe74c1120c16141248cd771a6e56759ce10cfc45a62
DIST rustc-1.3.0-src.tar.gz 24308223 SHA256 ea02d7bc9e7de5b8be3fe6b37ea9b2bd823f9a532c8e4c47d02f37f24ffa3126 SHA512 d9a4851d958e6a62f0997af5451c1c1ba2bd3ace595cf9f1dbc5977a6efb0ba802d108d4aa6fc29540c41b36d7f5a04e518700b5c1426fe18d1627d5fa779d58 WHIRLPOOL 21d9216bfa31b71e04ad35b4d72fd2b7b466b89cf62be2f9b0d734af21d1cba2050171bf3b9757c14a675fae11b869fcda30abc528e07ddcdc9d1a2bf0e3b7dc
DIST rustc-1.5.0-src.tar.gz 24586539 SHA256 641037af7b7b6cad0b231cc20671f8a314fbf2f40fc0901d0b877c39fc8da5a0 SHA512 c56f02f39093e5ce1f9a29b295ea1a6d69192d554a64c1b49b6bb5328884e9bbfb1681ea4362166e3fa91ff4b4e17c9a9de6720a70d22a852060bd6b9de6a30b WHIRLPOOL a6138754168065dca7d5a68afd99dc9a2eb0abcbf2eb8d3908646c2e3e6fd84b344dd96ba7d2fe6db4ae703baa0ab60a3594471705b5173ba3e45a959b0a97c1
DIST rustc-1.7.0-src.tar.gz 25097611 SHA256 6df96059d87b718676d9cd879672e4e22418b6093396b4ccb5b5b66df37bf13a SHA512 ef49bba9e8324c5b24a257131a31df4902f13ee4e0b763a2260df6ac8abbb150a6b9e5b36f52c6dc6c3f63fd3b1a9fb303a072973b054851f5d03a0d32df7317 WHIRLPOOL f39953c678f42fa44da4b27eddb87627cd9b10a9002457c895cbae119d778a7496aebb1776cf0cfb4cd48f54513faf3d1b3b1afb7ee879d93978351443eb5963
148 changes: 148 additions & 0 deletions dev-lang/rust/rust-1.7.0.ebuild
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Id$

EAPI=6

PYTHON_COMPAT=( python2_7 )

inherit python-any-r1 versionator toolchain-funcs

MY_P="rustc-${PV}"
ABI_VER="$(get_version_component_range 1-2)"

# from src/snapshots.txt
RUST_SNAPSHOT_DATE="2015-12-18"
RUST_SNAPSHOT_SRCHASH="3391630"
RUST_SNAPSHOT_HASH_amd64="97e2a5eb8904962df8596e95d6e5d9b574d73bf4"
RUST_SNAPSHOT_HASH_x86="a09c4a4036151d0cb28e265101669731600e01f2"
RUST_STAGE0="rust-stage0-${RUST_SNAPSHOT_DATE}-${RUST_SNAPSHOT_SRCHASH}"
RUST_STAGE0_amd64="${RUST_STAGE0}-linux-x86_64-${RUST_SNAPSHOT_HASH_amd64}"
RUST_STAGE0_x86="${RUST_STAGE0}-linux-i386-${RUST_SNAPSHOT_HASH_x86}"

DESCRIPTION="Systems programming language from Mozilla"
HOMEPAGE="http://www.rust-lang.org/"

SRC_URI="http://static.rust-lang.org/dist/${MY_P}-src.tar.gz
amd64? ( http://static.rust-lang.org/stage0-snapshots/${RUST_STAGE0_amd64}.tar.bz2 )
x86? ( http://static.rust-lang.org/stage0-snapshots/${RUST_STAGE0_x86}.tar.bz2 )
"

LICENSE="|| ( MIT Apache-2.0 ) BSD-1 BSD-2 BSD-4 UoI-NCSA"
SLOT="stable/${ABI_VER}"
KEYWORDS="~amd64 ~x86"

IUSE="clang debug doc libcxx +system-llvm"
REQUIRED_USE="libcxx? ( clang )"

RDEPEND="libcxx? ( sys-libs/libcxx )
system-llvm? ( >=sys-devel/llvm-3.6.0:=[multitarget]
<sys-devel/llvm-3.7.0:=[multitarget] )
"

DEPEND="${RDEPEND}
${PYTHON_DEPS}
>=dev-lang/perl-5.0
clang? ( sys-devel/clang )
"

PDEPEND=">=app-eselect/eselect-rust-0.3_pre20150425"

S="${WORKDIR}/${MY_P}"

src_unpack() {
unpack "${MY_P}-src.tar.gz" || die
mkdir "${MY_P}/dl" || die
local stagename="RUST_STAGE0_${ARCH}"
local stage0="${!stagename}"
cp "${DISTDIR}/${stage0}.tar.bz2" "${MY_P}/dl/" || die "cp stage0"
}

src_prepare() {
find mk -name '*.mk' -exec \
sed -i -e "s/-Werror / /g" {} \; || die

eapply_user
}

src_configure() {
export CFG_DISABLE_LDCONFIG="notempty"

"${ECONF_SOURCE:-.}"/configure \
--prefix="${EPREFIX}/usr" \
--libdir="${EPREFIX}/usr/$(get_libdir)/${P}" \
--mandir="${EPREFIX}/usr/share/${P}/man" \
--release-channel=${SLOT%%/*} \
--disable-manage-submodules \
--default-linker=$(tc-getBUILD_CC) \
--default-ar=$(tc-getBUILD_AR) \
--python=${EPYTHON} \
$(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-mode 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
}

0 comments on commit 0683dbd

Please sign in to comment.