Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Romain Naour <romain.naour@gmail.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 3/3] etcd: new package
Date: Mon, 4 Jul 2016 11:28:40 +0200	[thread overview]
Message-ID: <ff3befd7-2b55-3aea-8300-bec4d4d6cb13@gmail.com> (raw)
In-Reply-To: <2693e1ba9409afcdea6b26f0d118c48cdfd0766e.1463696779.git.geoff@infradead.org>

Hi Geoff,

Le 20/05/2016 ? 00:33, Geoff Levand a ?crit :
> etcd is a distributed key value store that provides a reliable
> way to store data across a cluster of machines.
> 
> https://coreos.com/etcd
> 
> Signed-off-by: Geoff Levand <geoff@infradead.org>
> ---
>  package/Config.in                |  1 +
>  package/etcd/Config.in           |  9 ++++++
>  package/etcd/S80etcd2            | 33 ++++++++++++++++++++
>  package/etcd/etcd.hash           |  2 ++
>  package/etcd/etcd.mk             | 67 ++++++++++++++++++++++++++++++++++++++++
>  package/etcd/etcd2.service       | 17 ++++++++++
>  package/etcd/etcd2_sysv.conf     | 13 ++++++++
>  package/etcd/etcd2_tmpfiles.conf |  1 +
>  8 files changed, 143 insertions(+)
>  create mode 100644 package/etcd/Config.in
>  create mode 100644 package/etcd/S80etcd2
>  create mode 100644 package/etcd/etcd.hash
>  create mode 100644 package/etcd/etcd.mk
>  create mode 100644 package/etcd/etcd2.service
>  create mode 100644 package/etcd/etcd2_sysv.conf
>  create mode 100644 package/etcd/etcd2_tmpfiles.conf
> 
> diff --git a/package/Config.in b/package/Config.in
> index 9d668bf..1825b6d 100644
> --- a/package/Config.in
> +++ b/package/Config.in
> @@ -1381,6 +1381,7 @@ endif
>  	source "package/dnsmasq/Config.in"
>  	source "package/drbd-utils/Config.in"
>  	source "package/dropbear/Config.in"
> +	source "package/etcd/Config.in"

Please, keep packages sorted alphabetically

>  	source "package/ebtables/Config.in"
>  	source "package/ejabberd/Config.in"
>  	source "package/ethtool/Config.in"
> diff --git a/package/etcd/Config.in b/package/etcd/Config.in
> new file mode 100644
> index 0000000..f7f19c0
> --- /dev/null
> +++ b/package/etcd/Config.in
> @@ -0,0 +1,9 @@
> +config BR2_PACKAGE_ETCD
> +	bool "etcd"
> +	depends on BR2_PACKAGE_HOST_GO_ARCH_SUPPORTS
> +	depends on BR2_aarch64 || BR2_i386 || BR2_x86_64
> +	help
> +	  etcd is a distributed key value store that provides a reliable
> +	  way to store data across a cluster of machines.
> +
> +	  https://coreos.com/etcd
> diff --git a/package/etcd/S80etcd2 b/package/etcd/S80etcd2
> new file mode 100644
> index 0000000..f6727d8
> --- /dev/null
> +++ b/package/etcd/S80etcd2
> @@ -0,0 +1,33 @@
> +#!/bin/sh
> +
> +DAEMON=/usr/bin/etcd2
> +CONFIG=/etc/etcd2.conf
> +
> +[ -x $DAEMON ] || exit 0
> +[ -f $CONFIG ] || exit 0
> +
> +source $CONFIG
> +
> +case "$1" in
> +	start)
> +		printf "Starting etcd daemon: "
> +		[ -n $ETCD_DATA_DIR ] || [ -d $ETCD_DATA_DIR ] || mkdir -p $ETCD_DATA_DIR
> +		start-stop-daemon -S -x $DAEMON
> +		[ $? = 0 ] && echo "OK" || echo "FAIL"
> +		;;
> +	stop)
> +		printf "Stopping etcd daemon: "
> +		start-stop-daemon -K -x $DAEMON
> +		[ $? = 0 ] && echo "OK" || echo "FAIL"
> +		;;
> +	restart|reload|force-reload)
> +		$0 stop || true
> +		sleep 1
> +		$0 start
> +		;;
> +	*)
> +		echo "Usage: $0 {start|stop|restart|reload|force-reload}"
> +		exit 1
> +esac
> +
> +exit 0
> diff --git a/package/etcd/etcd.hash b/package/etcd/etcd.hash
> new file mode 100644
> index 0000000..0802793
> --- /dev/null
> +++ b/package/etcd/etcd.hash
> @@ -0,0 +1,2 @@
> +# Locally computed:
> +sha256 c08f68c3d21929ed3683fe94acefcd871bb3c4339117e745033bf2fb990966a9  v2.3.4.tar.gz
> diff --git a/package/etcd/etcd.mk b/package/etcd/etcd.mk
> new file mode 100644
> index 0000000..223745d
> --- /dev/null
> +++ b/package/etcd/etcd.mk
> @@ -0,0 +1,67 @@
> +################################################################################
> +#
> +# etcd
> +#
> +################################################################################
> +ETCD_VERSION = v2.3.4
> +ETCD_SITE = https://github.com/coreos/etcd/archive
> +ETCD_SOURCE = $(ETCD_VERSION).tar.gz

Can you try with the github helper:
http://nightly.buildroot.org/manual.html#github-download-url

> +
> +ETCD_LICENSE = Apache-2.0
> +ETCD_LICENSE_FILES = LICENSE
> +
> +ETCD_DEPENDENCIES = host-go
> +
> +ETCD_MAKE_ENV = \
> +	$(HOST_GO_TARGET_ENV) \
> +	GOBIN="$(@D)/bin" \
> +	GOPATH="$(@D)/gopath" \
> +	CGO_ENABLED=0 \
> +
> +ETCD_REPO_PATH = github.com/coreos/etcd
> +
> +ETCD_GLDFLAGS = \
> +	-X $(ETCD_REPO_PATH)/version.GitSHA=$(ETCD_VERSION) \
> +	-extldflags '-static'
> +
> +define ETCD_CONFIGURE_CMDS
> +	# Put sources at prescribed GOPATH location.
> +	mkdir -p $(@D)/gopath/src/github.com/coreos
> +	ln -s $(@D) $(@D)/gopath/src/$(ETCD_REPO_PATH)
> +endef
> +
> +define ETCD_BUILD_CMDS
> +	cd $(@D) && $(ETCD_MAKE_ENV) $(HOST_GO_ROOT)/bin/go \
> +		build -v -x -ldflags "$(FLANNEL_GLDFLAGS)" \
                                        ^
should be ETCD_GLDFLAGS

> +		-o $(@D)/bin/etcd $(ETCD_REPO_PATH)
> +	cd $(@D) && $(ETCD_MAKE_ENV) $(HOST_GO_ROOT)/bin/go \
> +		build -v -x -ldflags "$(FLANNEL_GLDFLAGS)" \
                                        ^
same here

> +		-o $(@D)/bin/etcdctl $(ETCD_REPO_PATH)/etcdctl
> +endef
> +
> +define ETCD_INSTALL_TARGET_CMDS
> +	$(INSTALL) -D -m 0755 $(@D)/bin/etcd $(TARGET_DIR)/usr/bin/etcd2

Why did you rename etcd to etcd2 ?

> +	$(INSTALL) -D -m 0755 $(@D)/bin/etcdctl $(TARGET_DIR)/usr/bin/etcdctl
> +endef
> +
> +define ETCD_INSTALL_INIT_SYSV
> +	$(INSTALL) -m 0755 -D package/etcd/etcd2_sysv.conf \
> +		$(TARGET_DIR)/etc/etcd2.conf
> +	$(INSTALL) -m 0755 -D package/etcd/S80etcd2 \
> +		$(TARGET_DIR)/etc/init.d/S80etcd2
> +endef
> +
> +define ETCD_INSTALL_INIT_SYSTEMD
> +	$(INSTALL) -D -m 644 package/etcd/etcd2.service \
> +		$(TARGET_DIR)/usr/lib/systemd/system/etcd2.service
> +
> +	$(INSTALL) -D -m 644 package/etcd/etcd2_tmpfiles.conf \
> +		$(TARGET_DIR)/usr/lib/tmpfiles.d/etcd2.config
> +
> +	mkdir -p $(TARGET_DIR)/etc/systemd/system/multi-user.target.wants
> +
> +	ln -sf /usr/lib/systemd/system/etcd2.service \
> +		$(TARGET_DIR)/etc/systemd/system/multi-user.target.wants/etcd2.service
> +endef
> +
> +$(eval $(generic-package))
> diff --git a/package/etcd/etcd2.service b/package/etcd/etcd2.service
> new file mode 100644
> index 0000000..288a0db
> --- /dev/null
> +++ b/package/etcd/etcd2.service
> @@ -0,0 +1,17 @@
> +[Unit]
> +Description=etcd2
> +Conflicts=etcd.service
> +
> +[Service]
> +User=etcd
> +Type=notify
> +Environment=ETCD_DATA_DIR=/var/lib/etcd2
> +Environment=ETCD_NAME=%m
> +ExecStart=/usr/bin/etcd2
> +Restart=always
> +RestartSec=10s
> +LimitNOFILE=40000
> +TimeoutStartSec=0
> +
> +[Install]
> +WantedBy=multi-user.target
> diff --git a/package/etcd/etcd2_sysv.conf b/package/etcd/etcd2_sysv.conf
> new file mode 100644
> index 0000000..2e397e9
> --- /dev/null
> +++ b/package/etcd/etcd2_sysv.conf
> @@ -0,0 +1,13 @@
> +# See https://coreos.com/etcd/docs/latest/configuration.html
> +
> +ETCD_NAME=default
> +#ETCD_DISCOVERY=""
> +#ETCD_DEBUG="true"

Please, remove commented line.

Otherwise look good.

Best regards,
Romain

> +
> +ETCD_DATA_DIR="/var/lib/etcd"
> +
> +ETCD_LISTEN_CLIENT_URLS="http://0.0.0.0:2379"
> +ETCD_LISTEN_PEER_URLS="http://0.0.0.0:2380"
> +
> +ETCD_ADVERTISE_CLIENT_URLS="http://localhost:2379"
> +ETCD_INITIAL_ADVERTISE_PEER_URLS="http://localhost:2380"
> diff --git a/package/etcd/etcd2_tmpfiles.conf b/package/etcd/etcd2_tmpfiles.conf
> new file mode 100644
> index 0000000..d8bfc78
> --- /dev/null
> +++ b/package/etcd/etcd2_tmpfiles.conf
> @@ -0,0 +1 @@
> +d    /var/lib/etcd2 0755 etcd etcd - -
> 

      reply	other threads:[~2016-07-04  9:28 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-05-19 22:33 [Buildroot] [PATCH 0/3] go language enhancements Geoff Levand
2016-05-19 22:33 ` [Buildroot] [PATCH 1/3] package/go-bootstrap: Build host tools with host CC Geoff Levand
2016-07-04  9:40   ` Romain Naour
2016-07-04 13:08     ` Peter Korsgaard
2016-05-19 22:33 ` [Buildroot] [PATCH 2/3] package/go: Enable MIPS support Geoff Levand
2016-06-01 21:41   ` Thomas Petazzoni
2016-05-19 22:33 ` [Buildroot] [PATCH 3/3] etcd: new package Geoff Levand
2016-07-04  9:28   ` Romain Naour [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ff3befd7-2b55-3aea-8300-bec4d4d6cb13@gmail.com \
    --to=romain.naour@gmail.com \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox