migrate trezord to trezord-go

This commit is contained in:
2020-11-30 16:08:36 -08:00
parent be9be3be39
commit caf0e2b247
8 changed files with 1415 additions and 2 deletions

1034
eclass/golang-common.eclass Normal file
View File

File diff suppressed because it is too large Load Diff

157
eclass/golang-live.eclass Normal file
View 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
View 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

View File

@@ -0,0 +1,9 @@
DIST github.com-felixge-httpsnoop-33ec42c.tar.gz 10726 SHA256 0d7169a09dee1a5c5e4e2d4bf45bcf782f3bcb031d6fcd057371b63a05d5216d SHA512 c7616b25718e2b50f8c5532da0c9b5ba9a6217d12f459f53b715c966eb4032e25d76533922271a6c0f94eacec91aaddabcdd07e3c0d5c96a3b754a180f57a995 WHIRLPOOL 44814ebed70561f511bf21cf911438ec2d83499d4a5d457ac931ae009e0eb6f2ae6580278f41512cd30d3008486ef77a502c78f0581aa1d3e7213d32b46ff844
DIST github.com-gorilla-csrf-79c60d0.tar.gz 21853 SHA256 f368d039caca56688af7275a86c0da6e9b1e278060d90b0bbf15a7eadfa0e791 SHA512 85ac6ba263f9d0e870aaabbc41e565e7f840b2b2e42e20020b24632f106416911f6b5a2a50b93715569cc1c7a7f8e8078013c78110ae3ebcdea2b186704279c2 WHIRLPOOL b1f04b044618b30800b15fd40d3e80ec70c90f43046d625e144d71dbf4fce158c9a0e016ba55d1e8d04f4aa4afca7b71787524202a2fae2eaac1c3f40ce02bf3
DIST github.com-gorilla-handlers-d453eff.tar.gz 20964 SHA256 408ef8b866b420417a12387b7802ed17ec28f208f63cc7b2760d991776661c6d SHA512 01b4e7d19a35a771afc00313dfc623ab1cd4373de8d0cec5d95da92a8d2438e0a591f3de14bdc184ed76efe0060fb88839148e048d75c817556a04bbd37c45eb WHIRLPOOL 7da069ab465810c46ef182be99dcc566727daf942f59c7bae78f699b82d5941da2516ff8fb50d28de084e9a97c63813d2843745cdaadab4c3ef3b85e0b7ee9e8
DIST github.com-gorilla-mux-98cb6bf.tar.gz 45552 SHA256 5ad53aedce3cbeb0bb410c334745d72296ce5da38477b705915729d049c2bfbc SHA512 cdd399cd470c345eebc87b36e02bc01d513744799ce00aff5575fed90de7b20dfcb311244d8d9b8bd190cfa8699f8f38105edb4f19a938c5767d589f99166da4 WHIRLPOOL bc51594d22c8f005001f7be675f74d2b2e3fa05525c649c835ba61561b7c15d9bf6dbeaaa437528e4512d766f7498d272e01ff21cb1d23286bd142e2c7cc403b
DIST github.com-gorilla-securecookie-e59506c.tar.gz 41294 SHA256 0fc95fb378846a90e805a984d4b2491cc7f12c29170e4e37a7242b7cf1e70d97 SHA512 91495069274558b8fb578d595abc0125402cecd5d26891294103551bfd667804aa9e3e99ceef9f421665d46edacca4dbdeb42388588d16e112376c43ab60c82e WHIRLPOOL d9d5efb33ace7d0a42a91e33d1e13f7ffa7d1b7e0e9500b364a5e30ae4a6bef72b16262c8b4c5f97916569aaff6ed52e5a6ccc47b877e32089dfe9aedfd1ea95
DIST github.com-natefinch-lumberjack-dd45e6a.tar.gz 11042 SHA256 c760783c5fc93742376a8e5dc566e79416e5d990d91d3f7125fa52934254989f SHA512 e63a6c1deee45ca4a4c3ebcac381fee00fdebde00fd1a7f2a196b7283b9fc08e1c67fc999f56a9783185037ff7ccbec1c77665373c1646097594d7bf459db322 WHIRLPOOL 3fafd7bb18e1f96e00cdbc1bf7481f3cb1c77ab985a0808ace3e85ca431844d6d56ebef81f5870147acf845b124d621c529c2532e432524aa197477064250c73
DIST github.com-pkg-errors-614d223.tar.gz 13422 SHA256 7d1073edc73a6e0f0bc87df9ab1c44429c967be6900c910ab171717993b7226b SHA512 a4649ab3259eb56519d405365f4e09027c5681cd2d086eaf92ea76c6471043242170ed5cf2240f2ff3f35644b1543f53eb8e77bdc4b3cd78638260948dd19d93 WHIRLPOOL 7a48eb66aea78d298c934fee9f23fa6d1030acd3c82044eb6d477a32f092ec6e9b403c98e0a585599e8d37352fb82ff0920dac6f80b6bb12e31ecf78216e7c3d
DIST trezord-go-2.0.30.tar.gz 5468178 SHA256 9ee13c21e004493071d9ffb649c8b141183749d0d1405dedadc5b5324ef64cd3 SHA512 899c9453cea4a0a7ac2a69fdd889f084f9918a85afa7e33620bf02fdf098a66bcfe9997d0bc3722ae1003dbb8ae5b6fbc7e7d8e7fcb14b2de0aa0a9d5492ec40 WHIRLPOOL e79ebd09d19c7be52a02d7701ad98bb3116395f007f67b30b4416eed63af99f0bfcfd13540051b68a0e4f26f05653197a64c886980d52c37696ca38b6ef21a34
EBUILD trezord-go-2.0.30.ebuild 645 SHA256 d96e0b40d62db581deb0e31ade6abc75131cf791846e0a14b2953d3c2c1da422 SHA512 472c3961f4fbc63e0439f438b3f89dc4c6de6a5ae592bd0ba921812eb2975575294526efe29c030de71dce508af770a2003716ca8650e86e4116704e80df0bdd WHIRLPOOL 1dde424aa4aec18319532bc562f3840747f6296060c090fbf306c6970b27f90be2284dca5b99a2f95d9d3140384be71101a437234d54198a6c172e485f243f6b

View File

@@ -0,0 +1,26 @@
EAPI=7
GOLANG_PKG_IMPORTPATH="github.com/trezor"
GOLANG_PKG_VERSION="d0b5fb041d2a8e5be35899655949e154b3b7845b"
GOLANG_PKG_DEPENDENCIES=(
"github.com/gorilla/csrf:79c60d0" # 1.7.0
"github.com/gorilla/handlers:d453eff" # 1.5.1
"github.com/gorilla/mux:98cb6bf" # 1.8.0
"github.com/gorilla/securecookie:e59506c" # 1.1.1
"github.com/felixge/httpsnoop:33ec42c" # 1.0.1
"github.com/pkg/errors:614d223" # 0.9.1
"github.com/natefinch/lumberjack:dd45e6a -> gopkg.in/natefinch/lumberjack.v2" # 2.0.0
)
inherit golang-single
DESCRIPTION="Trezor Bridge"
LICENSE="LGPL-3"
SLOT="0"
KEYWORDS="amd64"
GOLANG_PKG_USE_CGO=1
DEPEND="!net-p2p/trezord"

View File

@@ -1,3 +1,3 @@
DIST trezord-2.0.29.tar.gz 5579397 SHA256 39649bf24f2f6c3d1ad1b23a97365d6d483a7a64d4d925377c3520581ff8c6ba SHA512 358aff3087ab9b1c57ce323f1827efe4e084503ab7bd88942bba0b7581f1c01474e31df17391d182a4fff749c05c691bfad6001752d6a28d6270d872b81f734d WHIRLPOOL 6ead3c00f71637646cf83dffc72012042baf70a83e0515d88fdb16fa9c1cf8682eb4f848591d8e8c20f1bf66b6fa4dd30eced00e71e3195d96641076495fe800
EBUILD trezord-2.0.29.ebuild 622 SHA256 afd98dad3ef79cf1f8d2fa78dfd2f17f8805fde63ac282d4ac850a8dd8f45b89 SHA512 ec973ddb183e0831d2cb11160cd7fb353dde682ac1fe9837e43e2555caa9d232e195de57f7e94edb4c1ac1c12706aa90ae0ac6071ae880e437f6333adea3a68d WHIRLPOOL e4dec4d1441eb36bccf0de5a3be340f7813396be02c82ccbe1606ca0b697056d1464954acfcb6c0e538ea125b0ac3945bfd4277f8d4914e763720daed9ea526e
EBUILD trezord-9999.ebuild 579 SHA256 1defb24781b3c5c06673dd29ab10b136dad0dd04e6c4bb02cde66dc45f5b066c SHA512 21ef1f45f0dc62d69a840fcac80f608f543183fb27787b111c1066b697b1fb4ac18dd96b18c3960cef2b5c6147695129098766ddd1b3ddf6232d51303d65d17a WHIRLPOOL d0d8ed285cb0f9241029cbc3abd051a2317d19d6ded795c8465eaef229afb0ed4a9c5fd4ebe8875980cccbf84410e3f69337d7ef5f0204bb585f3b2f07517e7e
EBUILD trezord-2.0.29.ebuild 651 SHA256 b2d09452c83189cb5a746638d3db9cc9454aaa4f68628c9ecbaa7b892700e18a SHA512 67a96ca7e81c0b6a5e78c8ecebd723cc768e0785523f01aca9b4064f787a87624e155bcd0623851aa8dfd6ed61cf35d822e99c6063ebce377047782b75bd5b74 WHIRLPOOL 17e9ec644541da75867a02f1550a1f03f6bc7222ff825c0579e7012d0037d5d4ca6bd4ee531533b3354b0f54e16c4c1e1a4fd6584fec3fd79f61b0ea6c8a53d9
EBUILD trezord-9999.ebuild 608 SHA256 3d09e8383293f58fd157eca6eb12ed0fd619e04a7f9e39f281e8134f2c080388 SHA512 3542eda0860ffdb2ba0edd21c4084a82602509de244071b5eb05886f33549f28cf77776affa5c5dd0954d62854ba9723e84cd60e601b70cd47e1dbfb14ba2988 WHIRLPOOL 705102fbb190662a6ffd8dde4517273daf40e25a8e47adf3e36392959bb1dbeaa23573fdff381ace038cc91d895240cb6f93b5a9b71251028d328b2a10f57644

View File

@@ -11,6 +11,7 @@ LICENSE="LGPL-3"
SLOT="0"
KEYWORDS="amd64"
EGO_PN=github.com/trezor/trezord-go
DEPEND="!net-p2p/trezord-go"
src_unpack()
{

View File

@@ -11,6 +11,7 @@ EGIT_REPO_URI="https://github.com/trezor/trezord-go"
LICENSE="LGPL-3"
SLOT="0"
KEYWORDS=""
DEPEND="!net-p2p/trezord-go"
DEPEND="dev-lang/go"