+++ /dev/null
-#
-# Copyright (C) 2019 Wind River Systems, Inc.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-SUMMARY = "A distributed key-value store for shared config and service discovery"
-DESCRIPTION = " \
- etcd is a distributed reliable key-value store for the most critical data \
- of a distributed system, with a focus on being: \
- \
- * Simple: well-defined, user-facing API (gRPC) \
- * Secure: automatic TLS with optional client cert authentication \
- * Fast: benchmarked 10,000 writes/sec \
- * Reliable: properly distributed using Raft \
-"
-HOMEPAGE = "https://github.com/coreos/etcd"
-LICENSE = "Apache-2.0"
-LIC_FILES_CHKSUM = "file://src/import/LICENSE;md5=3b83ef96387f14655fc854ddc3c6bd57"
-
-SRC_URI = " \
- git://github.com/coreos/etcd.git;branch=release-3.3 \
- "
-
-SRCREV = "94745a4eed0425653b3b4275a208d38babceeaec"
-PV = "3.3.15+git${SRCPV}"
-
-S = "${WORKDIR}/git"
-
-inherit go goarch systemd useradd
-
-USERADD_PACKAGES = "${PN}"
-USERADD_PARAM_${PN} = " \
- --system --shell ${sbindir}/nologin --comment 'etcd user' \
- --home-dir ${localstatedir}/lib --groups etcd --gid etcd etcd \
- "
-GROUPADD_PARAM_${PN} = "etcd"
-
-TARGET_CC_ARCH += "${LDFLAGS}"
-GO_IMPORT = "import"
-
-do_compile() {
- export GOARCH="${TARGET_GOARCH}"
-
- # Setup vendor directory so that it can be used in GOPATH.
- #
- # Go looks in a src directory under any directory in GOPATH but
- # uses 'vendor' instead of 'vendor/src'. We can fix this with a symlink.
- #
- # We also need to link in the ipallocator directory as that is not under
- # a src directory.
- export GOPATH="${B}/src/import/"
- mkdir -p ${B}/src/import/src/github.com/coreos/
- ln -s ${S}/src/import ${B}/src/import/src/github.com/coreos/etcd
-
- # Pass the needed cflags/ldflags so that cgo
- # can find the needed headers files and libraries
- export CGO_ENABLED="1"
- export CFLAGS=""
- export LDFLAGS=""
- export CGO_CFLAGS="${BUILDSDK_CFLAGS} --sysroot=${STAGING_DIR_TARGET}"
- export CGO_LDFLAGS="${BUILDSDK_LDFLAGS} --sysroot=${STAGING_DIR_TARGET}"
-
- if [ "${TARGET_ARCH}" = "x86_64" ]; then
- export GOARCH="amd64"
- elif [ "${TARGET_ARCH}" = "i586" ]; then
- export GOARCH="386"
- fi
-
- ./src/import/build
-}
-
-do_install() {
- install -d ${D}/${bindir}
- install -m 0755 ${B}/bin/etcd ${D}/${bindir}/etcd
- install -m 0755 ${B}/bin/etcdctl ${D}/${bindir}/etcdctl
-
- install -d ${D}${systemd_system_unitdir}
- install -m 0644 ${S}/src/import/contrib/systemd/etcd.service ${D}${systemd_system_unitdir}
-
- # etcd state is in /var/lib/etcd
- install -d ${D}${sysconfdir}/tmpfiles.d
- echo "d ${localstatedir}/lib/${BPN} 0755 etcd etcd -" \
- > ${D}${sysconfdir}/tmpfiles.d/${BPN}.conf
-
- # we aren't creating a user, so we need to comment out this line
- sed -i '/User/s/^/#/' ${D}${systemd_unitdir}/system/etcd.service
-}
-
-deltask compile_ptest_base
-
-RDEPENDS_${PN} = "bash"
-
-# During packaging etcd gets the warning "no GNU hash in elf binary"
-# This issue occurs due to compiling without ldflags, but a
-# solution has yet to be found. For now we ignore this error with
-# the line below.
-#INSANE_SKIP_${PN} = "ldflags"