Skip to content

Commit

Permalink
etcd: add recipe
Browse files Browse the repository at this point in the history
Investigating the potential use of etcd within an OpenBMC distribution
to manage data sharing and leader election in a multi-BMC system. Start
off with a basic recipe to build the package.

Signed-off-by: Andrew Geissler <geissonator@yahoo.com>
  • Loading branch information
geissonator committed Nov 1, 2022
1 parent 2eb3947 commit 493f698
Showing 1 changed file with 50 additions and 0 deletions.
50 changes: 50 additions & 0 deletions meta-oe/recipes-extended/etcd/etcd_3.5.5.bb
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
DESCRIPTION = "etcd is a distributed key-value store for distributed systems"
HOMEPAGE = "https://etcd.io/"

LICENSE = "Apache-2.0"
LIC_FILES_CHKSUM = "file://${S}/${GO_INSTALL}/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"

SRC_URI = "git://github.com/etcd-io/etcd;branch=release-3.5;protocol=https"
SRCREV = "19002cfc689fba2b8f56605e5797bf79f8b61fdd"
UPSTREAM_CHECK_COMMITS = "1"

GO_IMPORT = "go.etcd.io/etcd/v3"
GO_INSTALL = "src/${GO_IMPORT}/"

RDEPENDS:${PN}-dev = " \
bash \
"

export GO111MODULE="on"

inherit go

# network is required by go to get dependent packages
do_compile[network] = "1"

# Need to build etcd out of where it is extracted to
# Need to directly call build script vs. "make build"
# because "make build" executes the generated binaries
# at the end of the build which do not run correctly
# when cross compiling for another machine
go_do_compile:prepend() {
cd ${GO_INSTALL}
./build.sh

# Lots of discussion in go community about how it sets packages to
# read-only by default -> https://github.com/golang/go/issues/31481
# etcd is going to need some upstream work to support it.
# For now, set the packages which are read-only back to
# writeable so things like "bitbake -c cleanall etcd" will work.
chmod u+w -R ${S}/src/github.com/myitcv/gobin
chmod u+w -R ${WORKDIR}/build/pkg/mod

}

do_install:append() {
install -d ${D}${bindir}/
install -m 0755 ${D}/usr/lib/go/src/go.etcd.io/etcd/v3/bin/etcd ${D}${bindir}
install -m 0755 ${D}/usr/lib/go/src/go.etcd.io/etcd/v3/bin/etcdctl ${D}${bindir}
install -m 0755 ${D}/usr/lib/go/src/go.etcd.io/etcd/v3/bin/etcdutl ${D}${bindir}
}

0 comments on commit 493f698

Please sign in to comment.