commit:     89f261de268b9b381b8e7593e270287ff281728c
Author:     Doug Goldstein <cardoe <AT> gentoo <DOT> org>
AuthorDate: Sat Nov 26 15:22:13 2016 +0000
Commit:     Doug Goldstein <cardoe <AT> gentoo <DOT> org>
CommitDate: Wed Nov 30 17:17:51 2016 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=89f261de

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 <AT> gentoo.org>

 dev-util/cargo/cargo-0.12.0.ebuild    | 46 +++++++++++++++++++++++++++++++++++
 dev-util/cargo/cargo-0.13.0-r1.ebuild | 46 +++++++++++++++++++++++++++++++++++
 dev-util/cargo/cargo-0.13.0.ebuild    | 46 +++++++++++++++++++++++++++++++++++
 dev-util/cargo/cargo-0.14.0.ebuild    | 46 +++++++++++++++++++++++++++++++++++
 4 files changed, 184 insertions(+)

diff --git a/dev-util/cargo/cargo-0.12.0.ebuild 
b/dev-util/cargo/cargo-0.12.0.ebuild
index 68140cd..3ab9f11 100644
--- a/dev-util/cargo/cargo-0.12.0.ebuild
+++ b/dev-util/cargo/cargo-0.12.0.ebuild
@@ -103,6 +103,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

diff --git a/dev-util/cargo/cargo-0.13.0-r1.ebuild 
b/dev-util/cargo/cargo-0.13.0-r1.ebuild
index c6a5f05..12d1dd2 100644
--- a/dev-util/cargo/cargo-0.13.0-r1.ebuild
+++ b/dev-util/cargo/cargo-0.13.0-r1.ebuild
@@ -115,6 +115,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

diff --git a/dev-util/cargo/cargo-0.13.0.ebuild 
b/dev-util/cargo/cargo-0.13.0.ebuild
index 3f74ad6..56c7772 100644
--- a/dev-util/cargo/cargo-0.13.0.ebuild
+++ b/dev-util/cargo/cargo-0.13.0.ebuild
@@ -114,6 +114,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

diff --git a/dev-util/cargo/cargo-0.14.0.ebuild 
b/dev-util/cargo/cargo-0.14.0.ebuild
index b78e205..1b8d661 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

Reply via email to