williamh 15/06/16 21:40:51 Modified: ChangeLog Added: golang-vcs.eclass Log: Add golang-vcs.eclass to retrieve go packages from vcs repositories for software written in the Go programming language
Revision Changes Path 1.1669 eclass/ChangeLog file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1669&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?rev=1.1669&content-type=text/plain diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/ChangeLog?r1=1.1668&r2=1.1669 Index: ChangeLog =================================================================== RCS file: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v retrieving revision 1.1668 retrieving revision 1.1669 diff -u -r1.1668 -r1.1669 --- ChangeLog 16 Jun 2015 21:38:00 -0000 1.1668 +++ ChangeLog 16 Jun 2015 21:40:51 -0000 1.1669 @@ -1,6 +1,10 @@ # ChangeLog for eclass directory # Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1668 2015/06/16 21:38:00 pesa Exp $ +# $Header: /var/cvsroot/gentoo-x86/eclass/ChangeLog,v 1.1669 2015/06/16 21:40:51 williamh Exp $ + + 16 Jun 2015; William Hubbs <willi...@gentoo.org> +golang-vcs.eclass: + Add golang-vcs.eclass to retrieve go packages from vcs repositories + for live ebuilds of software written in the Go programming language. 16 Jun 2015; Davide Pesavento <p...@gentoo.org> qt4-build-multilib.eclass: Minor changes to reduce diff with qt5-build.eclass 1.1 eclass/golang-vcs.eclass file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/golang-vcs.eclass?rev=1.1&view=markup plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/eclass/golang-vcs.eclass?rev=1.1&content-type=text/plain Index: golang-vcs.eclass =================================================================== # Copyright 1999-2015 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Header: /var/cvsroot/gentoo-x86/eclass/golang-vcs.eclass,v 1.1 2015/06/16 21:40:51 williamh Exp $ # @ECLASS: golang-vcs.eclass # @MAINTAINER: # William Hubbs <willi...@gentoo.org> # @BLURB: Eclass for fetching and unpacking go repositories. # @DESCRIPTION: # This eclass is written to ease the maintenance of live ebuilds # of software written in the Go programming language. inherit eutils case "${EAPI:-0}" in 5) ;; *) die "${ECLASS}: Unsupported eapi (EAPI=${EAPI})" ;; esac EXPORT_FUNCTIONS src_unpack if [[ -z ${_GOLANG_VCS} ]]; then _GOLANG_VCS=1 DEPEND=">=dev-lang/go-1.4.2" # @ECLASS-VARIABLE: EGO_PN # @REQUIRED # @DESCRIPTION: # This is the import path for the go package(s). Please emerge dev-lang/go # and read "go help importpath" for syntax. # # Example: # @CODE # EGO_PN="github.com/user/package" # EGO_PN="github.com/user1/package1 github.com/user2/package2" # @CODE # @ECLASS-VARIABLE: EGO_STORE_DIR # @DESCRIPTION: # Storage directory for Go sources. # # This is intended to be set by the user in make.conf. Ebuilds must not set # it. # # EGO_STORE_DIR=${DISTDIR}/go-src # @ECLASS-VARIABLE: EVCS_OFFLINE # @DEFAULT_UNSET # @DESCRIPTION: # If non-empty, this variable prevents any online operations. # @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 use FEATURES=userpriv. # @FUNCTION: _golang-vcs_env_setup # @INTERNAL # @DESCRIPTION: # Create EGO_STORE_DIR if necessary and set GOPATH. _golang-vcs_env_setup() { debug-print-function ${FUNCNAME} "$@" local distdir=${PORTAGE_ACTUAL_DISTDIR:-${DISTDIR}} : ${EGO_STORE_DIR:=${distdir}/go-src} [[ -n ${EVCS_UMASK} ]] && eumask_push $EVCS_UMASK if [[ ! -d ${EGO_STORE_DIR} ]]; then ( addwrite / mkdir -p "${EGO_STORE_DIR}" ) || die "${ECLASS}: unable to create ${EGO_STORE_DIR}" fi addwrite "${EGO_STORE_DIR}" export GOPATH="${EGO_STORE_DIR}" [[ -n ${EVCS_UMASK} ]] && eumask_pop mkdir -p "${S}" || die "${ECLASS}: unable to create ${S}" return 0 } # @FUNCTION: _golang-vcs_fetch # @INTERNAL # @DESCRIPTION: # Retrieve the EGO_PN go package along with its dependencies. _golang-vcs_fetch() { debug-print-function ${FUNCNAME} "$@" [[ -z ${EGO_PN} ]] && die "${ECLASS}: EGO_PN is not set" if [[ -n ${EVCS_OFFLINE} ]]; then export GOPATH="${S}:${GOPATH}" return 0 fi [[ -n ${EVCS_UMASK} ]] && eumask_push ${EVCS_UMASK} set -- go get -d -t -u -v -x "${EGO_PN}" echo "$@" "$@" || die # The above dies if you pass repositories in EGO_PN instead of # packages, e.g. golang.org/x/tools instead of golang.org/x/tools/cmd/vet. # This is being discussed in the following upstream issue: # https://github.com/golang/go/issues/11090 # I am hoping this will be fixed so "go get -d" is successful if # downloading the top level repository is successful. [[ -n ${EVCS_UMASK} ]] && eumask_pop export GOPATH="${S}:${EGO_STORE_DIR}" return 0 } golang-vcs_src_fetch() { debug-print-function ${FUNCNAME} "$@" _golang-vcs_env_setup _golang-vcs_fetch } golang-vcs_src_unpack() { debug-print-function ${FUNCNAME} "$@" golang-vcs_src_fetch } fi