Gentoo Archives: gentoo-commits

From: Zac Medico <zmedico@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: app-admin/serf/files/, app-admin/serf/
Date: Mon, 23 Jan 2017 05:17:45
Message-Id: 1485148654.f54855d32da5c9c3302ea22e75d1666d65d15a80.zmedico@gentoo
1 commit: f54855d32da5c9c3302ea22e75d1666d65d15a80
2 Author: Zac Medico <zmedico <AT> gentoo <DOT> org>
3 AuthorDate: Mon Jan 23 04:59:26 2017 +0000
4 Commit: Zac Medico <zmedico <AT> gentoo <DOT> org>
5 CommitDate: Mon Jan 23 05:17:34 2017 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=f54855d3
7
8 app-admin/serf: add package
9
10 Package-Manager: Portage-2.3.3, Repoman-2.3.1
11
12 app-admin/serf/Manifest | 3 +
13 app-admin/serf/files/serf.confd | 7 +++
14 app-admin/serf/files/serf.initd | 39 +++++++++++++
15 app-admin/serf/files/serf.logrotated | 8 +++
16 app-admin/serf/files/serf.service | 14 +++++
17 app-admin/serf/metadata.xml | 10 ++++
18 app-admin/serf/serf-0.8.0.ebuild | 103 +++++++++++++++++++++++++++++++++++
19 7 files changed, 184 insertions(+)
20
21 diff --git a/app-admin/serf/Manifest b/app-admin/serf/Manifest
22 new file mode 100644
23 index 00000000..6deaa63
24 --- /dev/null
25 +++ b/app-admin/serf/Manifest
26 @@ -0,0 +1,3 @@
27 +DIST gox-c9740af9c6574448fd48eb30a71f964014c7a837.tar.gz 15772 SHA256 826666828f1ec3e535268fa95d983362c6c773e9a87aa94613e7a47805d22e38 SHA512 d4b2d5d9666285584697bc0d6ddc2f1a1e3f23741650e831adb42baffbb5f72fc3d5ae8a8fb6719faf1df75d3da334941b0404387f0c213aabdb5c3d5634c55d WHIRLPOOL 89d52013bfb563a11a4042760470ac317398c3f8a61b9e7734c3ac2737d916126ad10a113948eb5a8362de3d77e598e42f4a0510760ae67465bde08658947f7a
28 +DIST iochan-87b45ffd0e9581375c491fef3d32130bb15c5bd7.tar.gz 1785 SHA256 71c117246bb1d4d78ad5c3bc5d301942bcebaae5b1e35da1ad7851ceac71a675 SHA512 2efc0e3cbca496240e3e24550fd0d2aab742eb9b227230ff1ed4ee47344b994642b028bd4644cd45cd697f5f5ef6a729aad65537b10c6555bd52d9ca4b9c717c WHIRLPOOL 15dfd50bfc992a7b6a1b5d672d5bf9bfcb71a357eae371eac773e7fe9ad4ec8d4d0578e0dc6b12bb14689d1497129616b0eb300bbcb483a6865ac315bced562a
29 +DIST serf-0.8.0.tar.gz 1439191 SHA256 f56e8da3e6cf748c20ae629aacfd652a04adfacfd0ee0af6560c33933d93547a SHA512 2e074ee8d002e6c7803f23d50d42800cf660ee22c968be8adf4f5e4cefde6dd39bf601c9bd91544d5f45d639ed0eec82c31a0fd1b903e8a0223f2cdd967bbf36 WHIRLPOOL 09b5e5471c14e11bbeb214a64ec57720cd31779c9d331bba2eea31cac9859cdff12d925923514272101449f7d62b671e685f768af1cf2f2497ad1a7a36402570
30
31 diff --git a/app-admin/serf/files/serf.confd b/app-admin/serf/files/serf.confd
32 new file mode 100644
33 index 00000000..f5aeaed
34 --- /dev/null
35 +++ b/app-admin/serf/files/serf.confd
36 @@ -0,0 +1,7 @@
37 +# you can change the init script behavior by setting those parameters
38 +# - group (default: serf)
39 +# - pidfile (default: /run/serf/serf.pid)
40 +# - user (default: serf)
41 +
42 +# extra arguments for the serf agent
43 +command_args="-config-dir=/etc/serf.d"
44
45 diff --git a/app-admin/serf/files/serf.initd b/app-admin/serf/files/serf.initd
46 new file mode 100644
47 index 00000000..ce69aea
48 --- /dev/null
49 +++ b/app-admin/serf/files/serf.initd
50 @@ -0,0 +1,39 @@
51 +#!/sbin/openrc-run
52 +# Copyright 2017 Gentoo Foundation
53 +# Distributed under the terms of the GNU General Public License v2
54 +# $Id$
55 +
56 +description="serf agent"
57 +extra_started_commands="reload"
58 +group=${group:-${RC_SVCNAME}}
59 +pidfile=${pidfile:-"/run/${RC_SVCNAME}/${RC_SVCNAME}.pid"}
60 +user=${user:-${RC_SVCNAME}}
61 +
62 +command="/usr/bin/${RC_SVCNAME}"
63 +command_args="agent -config-dir=/etc/serf.d ${command_args}"
64 +command_background="true"
65 +start_stop_daemon_args="--user ${user} --group ${group} \
66 + --stdout /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log \
67 + --stderr /var/log/${RC_SVCNAME}/${RC_SVCNAME}.log"
68 +
69 +depend() {
70 + need net
71 + after net
72 +}
73 +
74 +reload() {
75 + ebegin "Reloading ${RC_SVCNAME}"
76 + ${command} reload
77 + eend $?
78 +}
79 +
80 +start_pre() {
81 + checkpath -d -m 0755 -o "${user}":"${group}" "${pidfile%/*}"
82 +}
83 +
84 +stop() {
85 + # SIGINT is required for graceful shutdown of serf agent
86 + ebegin "Stopping ${RC_SVCNAME}"
87 + start-stop-daemon --stop --signal SIGINT --pidfile "${pidfile}"
88 + eend $?
89 +}
90
91 diff --git a/app-admin/serf/files/serf.logrotated b/app-admin/serf/files/serf.logrotated
92 new file mode 100644
93 index 00000000..b4c778a
94 --- /dev/null
95 +++ b/app-admin/serf/files/serf.logrotated
96 @@ -0,0 +1,8 @@
97 +/var/log/serf/serf.log {
98 + su serf serf
99 + missingok
100 + size 5M
101 + rotate 3
102 + compress
103 + copytruncate
104 +}
105
106 diff --git a/app-admin/serf/files/serf.service b/app-admin/serf/files/serf.service
107 new file mode 100644
108 index 00000000..f2d390f
109 --- /dev/null
110 +++ b/app-admin/serf/files/serf.service
111 @@ -0,0 +1,14 @@
112 +[Unit]
113 +Description=serf agent
114 +Requires=network-online.target
115 +After=network-online.target
116 +
117 +[Service]
118 +User=serf
119 +Environment=SERF_AGENT_OPTS="-config-dir=/etc/serf.d"
120 +ExecStart=/usr/bin/serf agent $SERF_AGENT_OPTS
121 +Restart=on-failure
122 +KillSignal=SIGINT
123 +
124 +[Install]
125 +WantedBy=multi-user.target
126
127 diff --git a/app-admin/serf/metadata.xml b/app-admin/serf/metadata.xml
128 new file mode 100644
129 index 00000000..213d2fe
130 --- /dev/null
131 +++ b/app-admin/serf/metadata.xml
132 @@ -0,0 +1,10 @@
133 +<?xml version="1.0" encoding="UTF-8"?>
134 +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
135 +<pkgmetadata>
136 + <maintainer type="person">
137 + <email>zmedico@g.o</email>
138 + </maintainer>
139 + <upstream>
140 + <remote-id type="github">hashicorp/serf</remote-id>
141 + </upstream>
142 +</pkgmetadata>
143
144 diff --git a/app-admin/serf/serf-0.8.0.ebuild b/app-admin/serf/serf-0.8.0.ebuild
145 new file mode 100644
146 index 00000000..a28a225
147 --- /dev/null
148 +++ b/app-admin/serf/serf-0.8.0.ebuild
149 @@ -0,0 +1,103 @@
150 +# Copyright 1999-2017 Gentoo Foundation
151 +# Distributed under the terms of the GNU General Public License v2
152 +# $Id$
153 +
154 +EAPI=6
155 +
156 +inherit systemd user
157 +
158 +KEYWORDS="~amd64"
159 +EGO_PN="github.com/hashicorp/serf"
160 +DESCRIPTION="Service orchestration and management tool"
161 +HOMEPAGE="https://www.serfdom.io/"
162 +SRC_URI="https://github.com/hashicorp/serf/archive/v${PV}.tar.gz -> ${P}.tar.gz
163 + https://github.com/mitchellh/gox/archive/c9740af9c6574448fd48eb30a71f964014c7a837.tar.gz -> gox-c9740af9c6574448fd48eb30a71f964014c7a837.tar.gz
164 + https://github.com/mitchellh/iochan/archive/87b45ffd0e9581375c491fef3d32130bb15c5bd7.tar.gz -> iochan-87b45ffd0e9581375c491fef3d32130bb15c5bd7.tar.gz
165 +"
166 +
167 +SLOT="0"
168 +LICENSE="MPL-2.0"
169 +IUSE=""
170 +RESTRICT="test"
171 +
172 +DEPEND="
173 + >=dev-lang/go-1.6:=
174 + >=dev-go/go-tools-0_pre20160121"
175 +RDEPEND=""
176 +
177 +pkg_setup() {
178 + enewgroup serf
179 + enewuser serf -1 -1 /var/lib/${PN} serf
180 +}
181 +
182 +get_archive_go_package() {
183 + local archive=${1} uri x
184 + for x in ${SRC_URI}; do
185 + if [[ ${x} == http* ]]; then
186 + uri=${x}
187 + elif [[ ${x} == ${archive} ]]; then
188 + break
189 + fi
190 + done
191 + uri=${uri#https://}
192 + echo ${uri%/archive/*}
193 +}
194 +
195 +unpack_go_packages() {
196 + local go_package x
197 + # Unpack packages to appropriate locations for GOPATH
198 + for x in ${A}; do
199 + unpack ${x}
200 + if [[ ${x} == *.tar.gz ]]; then
201 + go_package=$(get_archive_go_package ${x})
202 + mkdir -p src/${go_package%/*}
203 + mv ${go_package##*/}-* src/${go_package} || die
204 + fi
205 + done
206 +}
207 +
208 +src_unpack() {
209 + mkdir "${S}" || die
210 + cd "${S}" || die
211 + unpack_go_packages
212 +}
213 +
214 +src_prepare() {
215 + eapply_user
216 + # Avoid the need to have a git checkout
217 + sed -e 's:^GIT.*::' \
218 + -e 's:-X main.GitCommit.*:" \\:' \
219 + -i "${S}/src/${EGO_PN}/scripts/build.sh" || die
220 +
221 + # go install golang.org/x/tools/cmd/stringer: mkdir /usr/lib/go-gentoo/bin/: permission denied
222 + sed -e 's:go get -u -v $(GOTOOLS)::' \
223 + -e 's:^GIT.*::' \
224 + -i "${S}/src/${EGO_PN}/GNUmakefile" || die
225 +}
226 +
227 +src_compile() {
228 + export GOPATH="${S}"
229 + go install -v -work -x ${EGO_BUILD_FLAGS} "github.com/mitchellh/gox/..." || die
230 + PATH=${PATH}:${S}/bin XC_ARCH=$(go env GOARCH) XC_OS=$(go env GOOS) \
231 + emake -C "${S}/src/${EGO_PN}" bin
232 +}
233 +
234 +src_install() {
235 + local x
236 +
237 + dobin "${S}/bin/${PN}"
238 +
239 + keepdir /etc/serf.d
240 + insinto /etc/serf.d
241 +
242 + for x in /var/{lib,log}/${PN}; do
243 + keepdir "${x}"
244 + fowners serf:serf "${x}"
245 + done
246 +
247 + newinitd "${FILESDIR}/serf.initd" "${PN}"
248 + newconfd "${FILESDIR}/serf.confd" "${PN}"
249 + insinto /etc/logrotate.d
250 + newins "${FILESDIR}/${PN}.logrotated" "${PN}"
251 + systemd_dounit "${FILESDIR}/serf.service"
252 +}