summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDoug Goldstein <cardoe@gentoo.org>2016-11-26 09:22:13 -0600
committerDoug Goldstein <cardoe@gentoo.org>2016-11-30 11:17:51 -0600
commit89f261de268b9b381b8e7593e270287ff281728c (patch)
treeb0046fae2b90ea80d578554927b97681da8bceaf /dev-util/cargo/cargo-0.14.0.ebuild
parenteclass/cargo: extend to support building packages (diff)
downloadgentoo-89f261de268b9b381b8e7593e270287ff281728c.tar.gz
gentoo-89f261de268b9b381b8e7593e270287ff281728c.tar.bz2
gentoo-89f261de268b9b381b8e7593e270287ff281728c.zip
dev-util/cargo: preserve older build method
Cargo bootstraps itself with a 0.10.0 version of Cargo that does not support the newer features we're rolling into the eclass. As a result this lifts out bits from the eclass and moves it into the Cargo ebuilds so that the eclass can be updated. Signed-off-by: Doug Goldstein <cardoe@gentoo.org>
Diffstat (limited to 'dev-util/cargo/cargo-0.14.0.ebuild')
-rw-r--r--dev-util/cargo/cargo-0.14.0.ebuild46
1 files changed, 46 insertions, 0 deletions
diff --git a/dev-util/cargo/cargo-0.14.0.ebuild b/dev-util/cargo/cargo-0.14.0.ebuild
index b78e2057d1c2..1b8d661b3a11 100644
--- a/dev-util/cargo/cargo-0.14.0.ebuild
+++ b/dev-util/cargo/cargo-0.14.0.ebuild
@@ -116,6 +116,52 @@ DEPEND="${COMMON_DEPEND}
sys-apps/findutils
sys-apps/sed"
+# Until cargo bootstraps itself with a version based on 0.13.0, this needs
+# to stay (these variables and src_unpack)
+ECARGO_HOME="${WORKDIR}/cargo_home"
+ECARGO_REPO="github.com-88ac128001ac3a9a"
+ECARGO_INDEX="${ECARGO_HOME}/registry/index/${ECARGO_REPO}"
+ECARGO_SRC="${ECARGO_HOME}/registry/src/${ECARGO_REPO}"
+ECARGO_CACHE="${ECARGO_HOME}/registry/cache/${ECARGO_REPO}"
+
+src_unpack() {
+ mkdir -p "${ECARGO_INDEX}" || die
+ mkdir -p "${ECARGO_CACHE}" || die
+ mkdir -p "${ECARGO_SRC}" || die
+ mkdir -p "${S}" || die
+
+ local archive
+ for archive in ${A}; do
+ case "${archive}" in
+ *.crate)
+ ebegin "Unpacking ${archive}"
+ cp "${DISTDIR}"/${archive} "${ECARGO_CACHE}/" || die
+ tar -xf "${DISTDIR}"/${archive} -C "${ECARGO_SRC}/" || die
+ eend $?
+ ;;
+ cargo-snapshot*)
+ ebegin "Unpacking ${archive}"
+ mkdir -p "${S}"/target/snapshot
+ tar -xzf "${DISTDIR}"/${archive} -C "${S}"/target/snapshot --strip-components 2 || die
+ # cargo's makefile needs this otherwise it will try to
+ # download it
+ touch "${S}"/target/snapshot/bin/cargo || die
+ eend $?
+ ;;
+ cargo-registry*)
+ ebegin "Unpacking ${archive}"
+ tar -xzf "${DISTDIR}"/${archive} -C "${ECARGO_INDEX}" --strip-components 1 || die
+ # prevent cargo from attempting to download this again
+ touch "${ECARGO_INDEX}"/.cargo-index-lock || die
+ eend $?
+ ;;
+ *)
+ unpack ${archive}
+ ;;
+ esac
+ done
+}
+
src_configure() {
# Cargo only supports these GNU triples:
# - Linux: <arch>-unknown-linux-gnu