summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorgy Yakovlev <gyakovlev@gentoo.org>2020-09-22 19:38:33 -0700
committerGeorgy Yakovlev <gyakovlev@gentoo.org>2020-09-22 19:38:33 -0700
commit3498f32e4906a6952c4f0853a6fb8e4f01fc2457 (patch)
tree1db57281fcec6d86b4aeaabf3240a03bb738d7a1 /dev-util/rustup/rustup-9999.ebuild
parentapp-emulation/crun: add ~ppc64 keyword (diff)
downloadgentoo-3498f32e4906a6952c4f0853a6fb8e4f01fc2457.tar.gz
gentoo-3498f32e4906a6952c4f0853a6fb8e4f01fc2457.tar.bz2
gentoo-3498f32e4906a6952c4f0853a6fb8e4f01fc2457.zip
dev-util/rustup: add live ebuild
Package-Manager: Portage-3.0.8, Repoman-3.0.1 Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org>
Diffstat (limited to 'dev-util/rustup/rustup-9999.ebuild')
-rw-r--r--dev-util/rustup/rustup-9999.ebuild80
1 files changed, 80 insertions, 0 deletions
diff --git a/dev-util/rustup/rustup-9999.ebuild b/dev-util/rustup/rustup-9999.ebuild
new file mode 100644
index 000000000000..17de8dc63195
--- /dev/null
+++ b/dev-util/rustup/rustup-9999.ebuild
@@ -0,0 +1,80 @@
+# Copyright 2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+CRATES=""
+
+inherit bash-completion-r1 cargo prefix
+
+DESCRIPTION="Rust toolchain installer"
+HOMEPAGE="https://rust-lang.github.io/rustup/"
+
+if [[ ${PV} == "9999" ]] ; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/rust-lang/${PN}.git"
+else
+ SRC_URI="https://github.com/rust-lang/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz
+ $(cargo_crate_uris ${CRATES})"
+ KEYWORDS="~amd64 ~ppc64"
+fi
+
+LICENSE="Apache-2.0 Apache-2.0-with-LLVM-exceptions BSD Boost-1.0 CC0-1.0 MIT Unlicense ZLIB"
+SLOT="0"
+IUSE=""
+
+DEPEND="
+ app-arch/xz-utils
+ net-misc/curl:=[http2,ssl]
+ dev-libs/openssl:0=
+"
+RDEPEND="${DEPEND}"
+BDEPEND="virtual/rust"
+
+QA_FLAGS_IGNORED="usr/bin/.*"
+
+# uses network
+RESTRICT="test"
+
+src_unpack() {
+ if [[ "${PV}" == *9999* ]]; then
+ git-r3_src_unpack
+ cargo_live_src_unpack
+ else
+ cargo_src_unpack
+ fi
+}
+
+src_compile() {
+ export OPENSSL_NO_VENDOR=true
+ cargo_src_compile --features no-self-update
+}
+
+src_install() {
+ cargo_src_install --features no-self-update
+ einstalldocs
+ exeinto /usr/share/rustup
+ newexe "$(prefixify_ro "${FILESDIR}"/symlink_rustup.sh)" symlink_rustup
+
+ ln -s "${ED}/usr/bin/rustup-init" rustup || die
+ ./rustup completions bash rustup > "${T}/rustup" || die
+ ./rustup completions zsh rustup > "${T}/_rustup" || die
+
+ dobashcomp "${T}/rustup"
+
+ insinto /usr/share/zsh/site-functions
+ doins "${T}/_rustup"
+}
+
+src_test() {
+ cargo_src_test --features no-self-update
+}
+
+pkg_postinst() {
+ einfo "No rustup toolchains installed by default"
+ einfo "system rust toolchain can be added to rustup by running"
+ einfo "helper script installed to ${EPREFIX}/usr/share/rustup/symlink_rustup"
+ einfo "it will create proper symlinks in user home directory"
+ einfo "and rustup updates will be managed by portage"
+ einfo "please delete current rustup installation (if any) before running the script"
+}