ace-overlay: take gopass and eclass from go-overlay
This commit is contained in:
parent
ae97b92720
commit
ff7a851f83
2
app-admin/gopass/Manifest
Normal file
2
app-admin/gopass/Manifest
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
DIST gopass-1.6.11.tar.gz 3988480 BLAKE2B f1d2882e917788ed70020195a541b049f263ef7199c7b276b7e86019be51089203da6f9e0d03cd2e252c99a78706ff2174975724fabd486768b582d8460d0906 SHA512 5fd2652af1b0741def27911bd918d92a558ff1c7f17d62db2f3efd1cbbc86eb90fb3d588f6359de2d2b885a98fb3718e4ca51c770409b185f866c3995162ff41
|
||||||
|
EBUILD gopass-1.6.11.ebuild 1419 BLAKE2B 5c8404787eb96e08826e82eca4bbb22f79192c45d86cfacf092ff22a94f397ee3f7c18e963f6a570fcc8b16b8e7a26b9955b89ff0e840ec27dab3a4a934f13be SHA512 165cced43adb424528e9ea54dbd205667579ea7da2102e3371b51683f54e1ee230b62088c8e94bdd9e7660482161fe065665e912b89b756591c10d8095c183ec
|
57
app-admin/gopass/gopass-1.6.11.ebuild
Normal file
57
app-admin/gopass/gopass-1.6.11.ebuild
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
# Copyright 1999-2017 Gentoo Foundation
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
|
||||||
|
EAPI=6
|
||||||
|
|
||||||
|
GOLANG_PKG_IMPORTPATH="github.com/justwatchcom"
|
||||||
|
GOLANG_PKG_ARCHIVEPREFIX="v"
|
||||||
|
GOLANG_PKG_LDFLAGS="-extldflags '-static' -X main.version=${PV}"
|
||||||
|
GOLANG_PKG_HAVE_TEST=1
|
||||||
|
|
||||||
|
inherit golang-single bash-completion-r1
|
||||||
|
|
||||||
|
DESCRIPTION="The slightly more awesome standard unix password manager for teams"
|
||||||
|
HOMEPAGE="https://www.justwatch.com/gopass"
|
||||||
|
|
||||||
|
LICENSE="MIT"
|
||||||
|
SLOT="0"
|
||||||
|
KEYWORDS="amd64 x86"
|
||||||
|
IUSE="bash-completion zsh-completion fish-completion dmenu"
|
||||||
|
|
||||||
|
DEPEND="app-crypt/gpgme:1
|
||||||
|
dev-vcs/git[threads,gpg,curl]
|
||||||
|
dmenu? ( x11-misc/dmenu x11-misc/xdotool )"
|
||||||
|
RDEPEND="${DEPEND}
|
||||||
|
zsh-completion? ( app-shells/zsh )
|
||||||
|
fish-completion? ( app-shells/fish )"
|
||||||
|
|
||||||
|
DOCS+=" docs/*"
|
||||||
|
|
||||||
|
src_install() {
|
||||||
|
golang-single_src_install
|
||||||
|
|
||||||
|
# Install fish completion files
|
||||||
|
if use fish-completion; then
|
||||||
|
${GOBIN}/gopass completion fish > "${T}"/${PN}.fish || die
|
||||||
|
insinto /usr/share/fish/functions
|
||||||
|
doins "${T}"/${PN}.fish
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Install bash completion files
|
||||||
|
if use bash-completion; then
|
||||||
|
${GOBIN}/gopass completion bash > "${T}"/${PN} || die
|
||||||
|
dobashcomp "${T}"/${PN}
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Install zsh completion files
|
||||||
|
if use zsh-completion; then
|
||||||
|
${GOBIN}/gopass completion zsh > "${T}"/${PN}.zsh || die
|
||||||
|
insinto /usr/share/zsh/site-functions
|
||||||
|
newins "${T}"/${PN}.zsh _${PN}
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
src_test() {
|
||||||
|
GOLANG_PKG_IS_MULTIPLE=1
|
||||||
|
golang-single_src_test
|
||||||
|
}
|
1026
eclass/golang-common.eclass
Normal file
1026
eclass/golang-common.eclass
Normal file
File diff suppressed because it is too large
Load Diff
157
eclass/golang-live.eclass
Normal file
157
eclass/golang-live.eclass
Normal file
@ -0,0 +1,157 @@
|
|||||||
|
# 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
|
185
eclass/golang-single.eclass
Normal file
185
eclass/golang-single.eclass
Normal file
@ -0,0 +1,185 @@
|
|||||||
|
# Copyright 1999-2017 Gentoo Foundation
|
||||||
|
# Distributed under the terms of the GNU General Public License v2
|
||||||
|
# $Id$
|
||||||
|
|
||||||
|
# @ECLASS: golang-single.eclass
|
||||||
|
# @MAINTAINER:
|
||||||
|
# Mauro Toffanin <toffanin.mauro@gmail.com>
|
||||||
|
# @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 golang-common
|
||||||
|
|
||||||
|
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: golang-single_src_unpack
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# Unpack the source archive.
|
||||||
|
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: golang-single_src_prepare
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# Prepare source code.
|
||||||
|
golang-single_src_prepare() {
|
||||||
|
debug-print-function ${FUNCNAME} "$@"
|
||||||
|
|
||||||
|
# Sets up GoLang build environment.
|
||||||
|
golang_setup
|
||||||
|
|
||||||
|
golang-common_src_prepare
|
||||||
|
}
|
||||||
|
|
||||||
|
# @FUNCTION: golang-single_src_configure
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# Configure the package.
|
||||||
|
golang-single_src_configure() {
|
||||||
|
debug-print-function ${FUNCNAME} "$@"
|
||||||
|
|
||||||
|
golang-common_src_configure
|
||||||
|
}
|
||||||
|
|
||||||
|
# @FUNCTION: golang-single_src_compile
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# Compiles the package.
|
||||||
|
golang-single_src_compile() {
|
||||||
|
debug-print-function ${FUNCNAME} "$@"
|
||||||
|
|
||||||
|
golang-common_src_compile
|
||||||
|
}
|
||||||
|
|
||||||
|
# @FUNCTION: golang-single_src_install
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# Installs binaries and documents from DOCS or HTML_DOCS arrays.
|
||||||
|
golang-single_src_install() {
|
||||||
|
debug-print-function ${FUNCNAME} "$@"
|
||||||
|
|
||||||
|
golang-common_src_install
|
||||||
|
}
|
||||||
|
|
||||||
|
# @FUNCTION: golang-single_src_test
|
||||||
|
# @DESCRIPTION:
|
||||||
|
# Runs the unit tests for the main package.
|
||||||
|
golang-single_src_test() {
|
||||||
|
debug-print-function ${FUNCNAME} "$@"
|
||||||
|
|
||||||
|
golang-common_src_test
|
||||||
|
}
|
||||||
|
|
||||||
|
fi
|
Loading…
Reference in New Issue
Block a user