diff options
Diffstat (limited to 'eclass/golang-live.eclass')
-rw-r--r-- | eclass/golang-live.eclass | 157 |
1 files changed, 0 insertions, 157 deletions
diff --git a/eclass/golang-live.eclass b/eclass/golang-live.eclass deleted file mode 100644 index 2d8902f..0000000 --- a/eclass/golang-live.eclass +++ /dev/null @@ -1,157 +0,0 @@ -# Copyright 1999-2017 Gentoo Foundation -# Distributed under the terms of the GNU General Public License v2 -# $Id$ - -# @ECLASS: golang-live.eclass -# @MAINTAINER: -# Mauro Toffanin <toffanin.mauro@gmail.com> -# @AUTHOR: -# Mauro Toffanin <toffanin.mauro@gmail.com> -# @BLURB: Eclass for fetching and unpacking HEAD shapshot of go repositories -# @DESCRIPTION: -# This eclass is written to ease the maintenance of live ebuilds -# of software written in the Go programming language. - -inherit golang-common - -EXPORT_FUNCTIONS src_prepare src_unpack src_configure src_compile src_install src_test - -if [[ -z ${_GOLANG_LIVE_ECLASS} ]]; then -_GOLANG_LIVE_ECLASS=1 - - -# @ECLASS-VARIABLE: EGO_LIVESTORE_DIR -# @INTERNAL -# @DESCRIPTION: -# Storage directory for Go sources. -# Ebuilds must not set it. - -# @ECLASS-VARIABLE: EVCS_UMASK -# @DEFAULT_UNSET -# @DESCRIPTION: -# Set this variable to a custom umask. This is intended to be set by -# users. By setting this to something like 002, it can make life easier -# for people who do development as non-root (but are in the portage -# group), and then switch over to building with FEATURES=userpriv. -# Or vice-versa. Shouldn't be a security issue here as anyone who has -# portage group write access already can screw the system over in more -# creative ways. - - -# Validates use of GOLANG_PKG_DEPENDENCIES. -# NOTE: a live ebuild should not have go dependencies. -# TODO: check also if GOLANG_PKG_DEPENDENCIES is an array -if [[ -n ${GOLANG_PKG_DEPENDENCIES} ]]; then - eerror "Ebuild ${CATEGORY}/${PF} specifies GOLANG_PKG_DEPENDENCIES." - eerror "Please, fix it by removing GOLANG_PKG_DEPENDENCIES entirely." - die "Banned variable GOLANG_PKG_DEPENDENCIES is set" -fi - - -# @FUNCTION: golang-live_src_fetch -# @DESCRIPTION: -# Fetch a go package along with its dependencies. -golang-live_src_fetch() { - debug-print-function ${FUNCTION} "$@" - - [[ -z ${EGO_LIVESTORE_DIR} ]] && die "No EGO_LIVESTORE_DIR set (golang-live_src_unpack not called?)." - - # Fetch the go package - [[ -n ${EVCS_UMASK} ]] && eumask_push ${EVCS_UMASK} - - set -- env \ - GOPATH="${EGO_LIVESTORE_DIR}" \ - go get -d -u -v -t -tags="${GOLANG_PKG_TAGS}" ${@} - echo "$@" - "$@" || die - - [[ -n ${EVCS_UMASK} ]] && eumask_pop -} - -# @FUNCTION: golang-live_src_unpack -# @DESCRIPTION: -# Unpack the source archive. -golang-live_src_unpack() { - debug-print-function ${FUNCNAME} "$@" - - # Creates EGO_LIVESTORE_DIR if necessary. - local distdir=${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}} - : EGO_LIVESTORE_DIR=${EGO_LIVESTORE_DIR:=${distdir}/go-${PN}-livesrc} - - [[ -n ${EVCS_UMASK} ]] && eumask_push ${EVCS_UMASK} - - if [[ ! -d ${EGO_LIVESTORE_DIR} ]]; then - ( - addwrite / - mkdir -p "${EGO_LIVESTORE_DIR}" - ) || die "${ECLASS}: unable to create ${EGO_LIVESTORE_DIR}" - fi - - addwrite "${EGO_LIVESTORE_DIR}" - - [[ -n ${EVCS_UMASK} ]] && eumask_pop - - # Retrieves the GOLANG_PKG_IMPORTPATH go package. - golang-live_src_fetch "${GOLANG_PKG_IMPORTPATH}/${GOLANG_PKG_NAME}"/... - - # Creates SOURCE directory. - mkdir -p "${S}" || die -} - - -# @FUNCTION: golang-live_src_prepare -# @DESCRIPTION: -# Prepare source code. -golang-live_src_prepare() { - debug-print-function ${FUNCNAME} "${@}" - - # Sets up GoLang build environment. - golang_setup - - # Imports all go dependencies - ebegin "Importing all the sources in ${GOPATH}" - cp -r "${EGO_LIVESTORE_DIR}/src" "${GOPATH}" || die "Unable to copy sources to ${GOPATH}" - eend - - golang-common_src_prepare -} - - -# @FUNCTION: golang-live_src_configure -# @DESCRIPTION: -# Configure the package. -golang-live_src_configure() { - debug-print-function ${FUNCNAME} "$@" - - golang-common_src_configure -} - -# @FUNCTION: golang-live_src_compile -# @DESCRIPTION: -# Compiles the package. -golang-live_src_compile() { - debug-print-function ${FUNCNAME} "$@" - - golang-common_src_compile -} - -# @FUNCTION: golang-live_src_install -# @DESCRIPTION: -# Installs binaries and documents from DOCS or HTML_DOCS arrays. -golang-live_src_install() { - debug-print-function ${FUNCNAME} "$@" - - golang-common_src_install -} - -# @FUNCTION: golang-live_src_test -# @DESCRIPTION: -# Runs the unit tests for the main package. -golang-live_src_test() { - debug-print-function ${FUNCNAME} "$@" - - golang-common_src_test -} - - -fi |