megacoffee.net Gentoo overlay - legacy mirror
We have moved to Git. This repository is only provided for compatibility with old installations. Learn how to migrate your installation here.
view eclass/x-mgcf-golang-single.eclass @ 249:0685ed0fb913
[sync] imported 2c6bf87..18f98a6 from upstream
commit 18f98a6f47cd77c1007b60dbfc7a838ffa99df0c
Author: Daniel Neugebauer <dneuge@energiequant.de>
Date: Mon Mar 27 21:11:43 2023 +0200
app-crypt/acmetool: version bump to 0.2.2
commit ee2df4ec1deab61cd7bb7de2cd13ffdd066cc41a
Author: Daniel Neugebauer <dneuge@energiequant.de>
Date: Mon Mar 27 19:30:58 2023 +0200
app-crypt/acmetool: split 0.2.1 from 9999, changed dependencies
commit f3c9cf1c7a24619446390b0b71bf5bc090dfce77
Author: Daniel Neugebauer <dneuge@energiequant.de>
Date: Mon Mar 27 19:29:33 2023 +0200
removed dependency to go-overlay
commit b2057a9b0ba65917f3840a6b121c1e78397c4723
Author: Daniel Neugebauer <dneuge@energiequant.de>
Date: Mon Mar 27 19:27:28 2023 +0200
golang eclasses: prefixed exported functions x-mgcf-
commit e8d02d1edc997fec9e0b1e5d053a5b82ca4accf2
Author: Daniel Neugebauer <dneuge@energiequant.de>
Date: Mon Mar 27 19:08:52 2023 +0200
renamed golang eclasses, updated maintainer, added disclaimer
commit 748ea4be8ee777bc788cb2a8801b118b41e6f8aa
Author: Daniel Neugebauer <dneuge@energiequant.de>
Date: Mon Mar 27 18:43:56 2023 +0200
copied eclasses for Go from go-overlay
Reason: These eclasses are used to build app-crypt/acmetool.
We previously imported go-overlay as a master repository to use the
eclasses defined there but the overlay has been removed from official
Gentoo overlay index due to inactivity. The removal broke new initial
checkouts for this repository as go-overlay can no longer be found.
Gentoo bug for MegaCoffee: https://bugs.gentoo.org/903167
Gentoo bug that caused removal: https://bugs.gentoo.org/864653
Original repository: https://github.com/Dr-Terrible/go-overlay
author | Migration Sync <gentoo-overlay@megacoffee.net> |
---|---|
date | Mon, 27 Mar 2023 19:15:01 +0000 |
parents | |
children |
line wrap: on
line source
# Copyright 1999-2017 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ # @ECLASS: x-mgcf-golang-single.eclass # @MAINTAINER: # MegaCoffee Overlay <gentoo-overlay@megacoffee.net> # @AUTHOR: # Mauro Toffanin <toffanin.mauro@gmail.com> # @BLURB: An eclass for GoLang packages not installed inside GOPATH/GOBIN. # @DESCRIPTION: # This eclass allows to install arbitrary packages written in GoLang which # don't support being installed inside the Go environment. # This mostly includes traditional packages (C/C++/GUI) embedding tools written # in GoLang, and GoLang packages that need to be compiled with GCC instead of # the standard Go interpreter. # # @EXAMPLE: # Typical ebuild using golang-single.eclass: # # @CODE # EAPI=5 # # GOLANG_PKG_IMPORTPATH="github.com/captObvious" # GOLANG_PKG_ARCHIVESUFFIX=".zip" # GOLANG_PKG_HAVE_TEST # inherit golang-single qt4-r2 # # DESCRIPTION="Foo bar application" # HOMEPAGE="http://example.org/foo/" # # LICENSE="MIT" # KEYWORDS="~amd64 ~x86" # SLOT="0" # IUSE="doc qt4" # # CDEPEND=" # qt4? ( # dev-qt/qtcore:4 # dev-qt/qtgui:4 # )" # RDEPEND="${CDEPEND} # !media-gfx/bar" # DEPEND="${CDEPEND} # doc? ( app-doc/doxygen )" # # DOCS=(AUTHORS ChangeLog README "Read me.txt" TODO) # # PATCHES=( # "${FILESDIR}/${P}-qt4.patch" # bug 123458 # "${FILESDIR}/${P}-as-needed.patch" # ) # # src_install() { # use doc && HTML_DOCS=("${BUILD_DIR}/apidocs/html/") # autotools-utils_src_install # if use examples; then # dobin "${BUILD_DIR}"/foo_example{1,2,3} \\ # || die 'dobin examples failed' # fi # } # # @CODE inherit x-mgcf-golang-common # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # !!! !!! # !!! L E G A C Y E C L A S S !!! # !!! !!! # !!! DO NOT USE OUTSIDE OF MEGACOFFEE OVERLAY !!! # !!! !!! # !!! DO NOT USE FOR NEW EBUILDS !!! # !!! !!! # !!! This eclass has only been copied to megacoffee overlay from !!! # !!! go-overlay: https://github.com/Dr-Terrible/go-overlay !!! # !!! !!! # !!! The only purpose is to keep currently depending ebuilds !!! # !!! until they could be migrated to standard eclasses for Go, !!! # !!! if suitable. !!! # !!! !!! # !!! go-overlay was previously imported by megacoffee until it !!! # !!! got removed from Gentoo overlay index in March 2023, !!! # !!! rendering megacoffee overlay unreachable as a result. !!! # !!! !!! # !!! Related bugs: https://bugs.gentoo.org/864653 !!! # !!! https://bugs.gentoo.org/903167 !!! # !!! !!! # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! # !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! EXPORT_FUNCTIONS src_prepare src_unpack src_configure src_compile src_install src_test if [[ -z ${_GOLANG_SINGLE_ECLASS} ]]; then _GOLANG_SINGLE_ECLASS=1 # This eclass uses GOLANG_PKG_IMPORTPATH to populate SRC_URI. SRC_URI="${SRC_URI:="https://${GOLANG_PKG_IMPORTPATH}/${GOLANG_PKG_NAME}/archive/${GOLANG_PKG_ARCHIVEPREFIX}${GOLANG_PKG_VERSION}${GOLANG_PKG_ARCHIVESUFFIX} -> ${P}${GOLANG_PKG_ARCHIVESUFFIX}"}" # This eclass uses GOLANG_PKG_DEPENDENCIES associative array to populate SRC_URI # with the required snapshots of the supplied GoLang dependencies. if [[ ${#GOLANG_PKG_DEPENDENCIES[@]} -gt 0 ]]; then for i in ${!GOLANG_PKG_DEPENDENCIES[@]} ; do # Collects all the tokens of the dependency. local -A DEPENDENCY=() while read -d $'\n' key value; do [[ -z ${key} ]] && continue DEPENDENCY[$key]="${value}" done <<-EOF $( _factorize_dependency_entities "${GOLANG_PKG_DEPENDENCIES[$i]}" ) EOF # Debug debug-print "${FUNCNAME}: DEPENDENCY = ${GOLANG_PKG_DEPENDENCIES[$i]}" debug-print "${FUNCNAME}: importpath = ${DEPENDENCY[importpath]}" debug-print "${FUNCNAME}: revision = ${DEPENDENCY[revision]}" # Downloads the archive. case ${DEPENDENCY[importpath]} in github*) SRC_URI+=" https://${DEPENDENCY[importpath]}/archive/${DEPENDENCY[revision]}${GOLANG_PKG_ARCHIVESUFFIX} -> ${DEPENDENCY[importpath]//\//-}-${DEPENDENCY[revision]}${GOLANG_PKG_ARCHIVESUFFIX}" ;; bitbucket*) SRC_URI+=" https://${DEPENDENCY[importpath]}/get/${DEPENDENCY[revision]}.zip -> ${DEPENDENCY[importpath]//\//-}-${DEPENDENCY[revision]}.zip" ;; code.google*) SRC_URI+=" https://${DEPENDENCY[project_name]}.googlecode.com/archive/${DEPENDENCY[revision]}.tar.gz -> ${DEPENDENCY[importpath]//\//-}-${DEPENDENCY[revision]}.tar.gz" ;; *) die "This eclass doesn't support '${DEPENDENCY[importpath]}'" ;; esac done fi # @FUNCTION: x-mgcf-golang-single_src_unpack # @DESCRIPTION: # Unpack the source archive. x-mgcf-golang-single_src_unpack() { debug-print-function ${FUNCNAME} "${@}" default # Creates S. mkdir -p "${S%/*}" || die # Moves main GoLang package from WORKDIR into GOPATH. if [[ "${GOLANG_PKG_IMPORTPATH}" != "${GOLANG_PKG_IMPORTPATH_ALIAS}" ]]; then local alias_abspath="${WORKDIR}/gopath/src/${GOLANG_PKG_IMPORTPATH_ALIAS}/${GOLANG_PKG_NAME}" mkdir -p "${alias_abspath%/*}" || die mv "${GOLANG_PKG_NAME}-${GOLANG_PKG_VERSION}" "${alias_abspath}"/ || die else mv "${GOLANG_PKG_NAME}-${GOLANG_PKG_VERSION}" "${S}"/ || die fi } # @FUNCTION: x-mgcf-golang-single_src_prepare # @DESCRIPTION: # Prepare source code. x-mgcf-golang-single_src_prepare() { debug-print-function ${FUNCNAME} "$@" # Sets up GoLang build environment. x-mgcf-golang_setup x-mgcf-golang-common_src_prepare } # @FUNCTION: x-mgcf-golang-single_src_configure # @DESCRIPTION: # Configure the package. x-mgcf-golang-single_src_configure() { debug-print-function ${FUNCNAME} "$@" x-mgcf-golang-common_src_configure } # @FUNCTION: x-mgcf-golang-single_src_compile # @DESCRIPTION: # Compiles the package. x-mgcf-golang-single_src_compile() { debug-print-function ${FUNCNAME} "$@" x-mgcf-golang-common_src_compile } # @FUNCTION: x-mgcf-golang-single_src_install # @DESCRIPTION: # Installs binaries and documents from DOCS or HTML_DOCS arrays. x-mgcf-golang-single_src_install() { debug-print-function ${FUNCNAME} "$@" x-mgcf-golang-common_src_install } # @FUNCTION: x-mgcf-golang-single_src_test # @DESCRIPTION: # Runs the unit tests for the main package. x-mgcf-golang-single_src_test() { debug-print-function ${FUNCNAME} "$@" x-mgcf-golang-common_src_test } fi