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 |
+} |