1 |
commit: 87493661de13b2f850a0b7de0f955d8e9504fe83 |
2 |
Author: Alexey Shvetsov <alexxy <AT> gentoo <DOT> org> |
3 |
AuthorDate: Tue Sep 4 13:31:38 2018 +0000 |
4 |
Commit: Alexey Shvetsov <alexxy <AT> gentoo <DOT> org> |
5 |
CommitDate: Tue Sep 4 13:31:38 2018 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=87493661 |
7 |
|
8 |
sys-cluster/slurm: enhance ebuild and migrate to eapi6 and eapi7_ver |
9 |
|
10 |
Include fixes from Timo Rothenpieler |
11 |
Add systemd support. |
12 |
Fix building perl modules. |
13 |
Add some more useflags with useful features. |
14 |
Kernel-Options did not match a modern kernel, use more generic format. |
15 |
|
16 |
Package-Manager: Portage-2.3.49, Repoman-2.3.10 |
17 |
Closes: https://bugs.gentoo.org/653876 |
18 |
|
19 |
sys-cluster/slurm/Manifest | 2 +- |
20 |
sys-cluster/slurm/files/slurm.tmpfiles | 1 + |
21 |
sys-cluster/slurm/metadata.xml | 6 ++ |
22 |
.../{slurm-17.11.7.ebuild => slurm-17.11.9.ebuild} | 105 +++++++++++++-------- |
23 |
4 files changed, 75 insertions(+), 39 deletions(-) |
24 |
|
25 |
diff --git a/sys-cluster/slurm/Manifest b/sys-cluster/slurm/Manifest |
26 |
index ec10fe92e5a..0dcf5c27a7f 100644 |
27 |
--- a/sys-cluster/slurm/Manifest |
28 |
+++ b/sys-cluster/slurm/Manifest |
29 |
@@ -1,2 +1,2 @@ |
30 |
DIST slurm-17.02.11.tar.bz2 6056931 BLAKE2B bce33aab9705dd95b60c42aba032d3f63b69c450e6093f10ac2cfab2b6028451f5659d6263aa2cafe76eb5f91b484e95d3dea388f32fd7472b0edd5ff33f4afe SHA512 f93f6afc0f6f37ba518644c52ff318ff9f3624a8326e795957f986c11ec72f1ee0dead1c7d49a1fb67df11a2f792c4ecc4f647bd3f824c8bfee1e2de0261f64c |
31 |
-DIST slurm-17.11.7.tar.bz2 6249399 BLAKE2B 1a57996440611e1976ac382c1be845649baf930913ad52c8afeecc32e1037115d9477acc4a9ab936c09b60c50d72e3f0398ea3c4ee9490d5057f98ce5990d52e SHA512 1761bad0b355f7d76021f9c1023cff4c315ec727fab8045f6aca4d096cdba3ec44a52942e007877d40c396d791537eb7e61a8c2f2538bdcb3854e40cee9e73ea |
32 |
+DIST slurm-17.11.9.tar.bz2 6258698 BLAKE2B 53f724dfdcaec4117eedcb187b0bfced41471fff667ea3f3452b35d80ed039c14c31a75672c304816af538861fccd0dcf37c0decd32521299db2162a30b8bba0 SHA512 281bda70695011bbc30f56738049b2b11866d6c266c6aa5590ffcbaaa748a02fc76cd2d03834cd90f0e1f4160ee0fb3c35a7c2e53819f5e21445748d4d437e6b |
33 |
|
34 |
diff --git a/sys-cluster/slurm/files/slurm.tmpfiles b/sys-cluster/slurm/files/slurm.tmpfiles |
35 |
new file mode 100644 |
36 |
index 00000000000..c77457db557 |
37 |
--- /dev/null |
38 |
+++ b/sys-cluster/slurm/files/slurm.tmpfiles |
39 |
@@ -0,0 +1 @@ |
40 |
+d /run/slurm 755 slurm slurm - |
41 |
|
42 |
diff --git a/sys-cluster/slurm/metadata.xml b/sys-cluster/slurm/metadata.xml |
43 |
index 3ea81217548..433eeb9e04c 100644 |
44 |
--- a/sys-cluster/slurm/metadata.xml |
45 |
+++ b/sys-cluster/slurm/metadata.xml |
46 |
@@ -9,8 +9,14 @@ |
47 |
<name>Gentoo Cluster Project</name> |
48 |
</maintainer> |
49 |
<use> |
50 |
+ <flag name="html">Build html documentation</flag> |
51 |
+ <flag name="ipmi">Build support for collecting some ipmi stats</flag> |
52 |
+ <flag name="json">Add support for json-persing via json-c</flag> |
53 |
<flag name="munge">Enable authentication via munge</flag> |
54 |
<flag name="multiple-slurmd">Allow multiple slurmd to run</flag> |
55 |
+ <flag name="netloc">Add support for netloc (amd64 only)</flag> |
56 |
+ <flag name="numa">Add NUMA awareness</flag> |
57 |
+ <flag name="ofed">Add Infiniband support via ofed</flag> |
58 |
<flag name="torque">Enable perl scripts that emulates pbs (qstat, qsub etc.)</flag> |
59 |
</use> |
60 |
</pkgmetadata> |
61 |
|
62 |
diff --git a/sys-cluster/slurm/slurm-17.11.7.ebuild b/sys-cluster/slurm/slurm-17.11.9.ebuild |
63 |
similarity index 69% |
64 |
rename from sys-cluster/slurm/slurm-17.11.7.ebuild |
65 |
rename to sys-cluster/slurm/slurm-17.11.9.ebuild |
66 |
index c0310a53cc3..3a1c55f311c 100644 |
67 |
--- a/sys-cluster/slurm/slurm-17.11.7.ebuild |
68 |
+++ b/sys-cluster/slurm/slurm-17.11.9.ebuild |
69 |
@@ -8,12 +8,13 @@ if [[ ${PV} == *9999* ]]; then |
70 |
INHERIT_GIT="git-r3" |
71 |
SRC_URI="" |
72 |
KEYWORDS="" |
73 |
+ MY_P="${P}" |
74 |
else |
75 |
- inherit versionator |
76 |
+ inherit eapi7-ver |
77 |
if [[ ${PV} == *pre* || ${PV} == *rc* ]]; then |
78 |
- MY_PV=$(replace_version_separator 3 '-0.') # pre-releases or release-candidate |
79 |
+ MY_PV=$(ver_rs '-0.') # pre-releases or release-candidate |
80 |
else |
81 |
- MY_PV=$(replace_version_separator 3 '-') # stable releases |
82 |
+ MY_PV=$(ver_rs 3 '-') # stable releases |
83 |
fi |
84 |
MY_P="${PN}-${MY_PV}" |
85 |
INHERIT_GIT="" |
86 |
@@ -22,16 +23,16 @@ else |
87 |
S="${WORKDIR}/${MY_P}" |
88 |
fi |
89 |
|
90 |
-inherit autotools bash-completion-r1 eutils pam perl-module prefix toolchain-funcs user ${INHERIT_GIT} |
91 |
+inherit autotools bash-completion-r1 eutils pam perl-module prefix toolchain-funcs user systemd ${INHERIT_GIT} |
92 |
|
93 |
DESCRIPTION="A Highly Scalable Resource Manager" |
94 |
HOMEPAGE="https://www.schedmd.com" |
95 |
|
96 |
LICENSE="GPL-2" |
97 |
SLOT="0" |
98 |
-IUSE="debug lua multiple-slurmd +munge mysql pam perl ssl static-libs torque X" |
99 |
+IUSE="debug hdf5 html ipmi json lua multiple-slurmd +munge mysql netloc numa ofed pam perl ssl static-libs torque X" |
100 |
|
101 |
-DEPEND=" |
102 |
+CDEPEND=" |
103 |
!sys-cluster/torque |
104 |
!net-analyzer/slurm |
105 |
!net-analyzer/sinfo |
106 |
@@ -42,15 +43,26 @@ DEPEND=" |
107 |
ssl? ( dev-libs/openssl:0= ) |
108 |
lua? ( dev-lang/lua:0= ) |
109 |
!lua? ( !dev-lang/lua ) |
110 |
+ ipmi? ( sys-libs/freeipmi ) |
111 |
+ json? ( dev-libs/json-c:= ) |
112 |
+ amd64? ( netloc? ( sys-apps/netloc ) ) |
113 |
+ hdf5? ( sci-libs/hdf5:= ) |
114 |
+ numa? ( sys-process/numactl ) |
115 |
+ ofed? ( sys-fabric/ofed ) |
116 |
X? ( net-libs/libssh2 ) |
117 |
- >=sys-apps/hwloc-1.1.1-r1" |
118 |
-RDEPEND="${DEPEND} |
119 |
+ >=sys-apps/hwloc-1.1.1-r1 |
120 |
+ sys-libs/ncurses:0= |
121 |
+ app-arch/lz4:0= |
122 |
+ sys-libs/readline:0=" |
123 |
+DEPEND="${CDEPEND} |
124 |
+ html? ( sys-apps/man2html )" |
125 |
+RDEPEND="${CDEPEND} |
126 |
dev-libs/libcgroup" |
127 |
|
128 |
REQUIRED_USE="torque? ( perl )" |
129 |
|
130 |
-LIBSLURM_PERL_S="${WORKDIR}/${P}/contribs/perlapi/libslurm/perl" |
131 |
-LIBSLURMDB_PERL_S="${WORKDIR}/${P}/contribs/perlapi/libslurmdb/perl" |
132 |
+LIBSLURM_PERL_S="${WORKDIR}/${MY_P}/contribs/perlapi/libslurm/perl" |
133 |
+LIBSLURMDB_PERL_S="${WORKDIR}/${MY_P}/contribs/perlapi/libslurmdb/perl" |
134 |
|
135 |
RESTRICT="primaryuri test" |
136 |
|
137 |
@@ -60,7 +72,7 @@ PATCHES=( |
138 |
|
139 |
src_unpack() { |
140 |
if [[ ${PV} == *9999* ]]; then |
141 |
- git-2_src_unpack |
142 |
+ git-r3_src_unpack |
143 |
else |
144 |
default |
145 |
fi |
146 |
@@ -76,10 +88,13 @@ src_prepare() { |
147 |
default |
148 |
|
149 |
# pids should go to /var/run/slurm |
150 |
- sed -e "s:/var/run/slurmctld.pid:${EPREFIX}/var/run/slurm/slurmctld.pid:g" \ |
151 |
- -e "s:/var/run/slurmd.pid:${EPREFIX}/var/run/slurm/slurmd.pid:g" \ |
152 |
+ sed -e "s:/var/run/slurmctld.pid:${EPREFIX}/run/slurm/slurmctld.pid:g" \ |
153 |
+ -e "s:/var/run/slurmd.pid:${EPREFIX}/run/slurm/slurmd.pid:g" \ |
154 |
-i "${S}/etc/slurm.conf.example" \ |
155 |
|| die "Can't sed for /var/run/slurmctld.pid" |
156 |
+ sed -i "s:/var/run/slurmdbd.pid:${EPREFIX}/run/slurm/slurmdbd.pid:g" \ |
157 |
+ -i "${S}/etc/slurmdbd.conf.example" \ |
158 |
+ || die "Can't sed for /var/run/slurmdbd.pid" |
159 |
# also state dirs are in /var/spool/slurm |
160 |
sed -e "s:StateSaveLocation=*.:StateSaveLocation=${EPREFIX}/var/spool/slurm:g" \ |
161 |
-e "s:SlurmdSpoolDir=*.:SlurmdSpoolDir=${EPREFIX}/var/spool/slurm/slurmd:g" \ |
162 |
@@ -89,26 +104,35 @@ src_prepare() { |
163 |
sed -e 's:/tmp:/var/tmp:g' \ |
164 |
-i "${S}/etc/slurm.conf.example" \ |
165 |
|| die "Can't sed for StateSaveLocation=*./tmp" |
166 |
+ # gentooify systemd services |
167 |
+ sed -e 's:sysconfig/.*:conf.d/slurm:g' \ |
168 |
+ -e 's:var/run/:run/slurm/:g' \ |
169 |
+ -i "${S}/etc"/*.service.in \ |
170 |
+ || die "Can't sed systemd services for sysconfig or var/run/" |
171 |
|
172 |
hprefixify auxdir/{ax_check_zlib,x_ac_{lz4,ofed,munge}}.m4 |
173 |
eautoreconf |
174 |
} |
175 |
|
176 |
src_configure() { |
177 |
- local myconf=( |
178 |
- --sysconfdir="${EPREFIX}/etc/${PN}" |
179 |
- --with-hwloc="${EPREFIX}/usr" |
180 |
- --docdir="${EPREFIX}/usr/share/doc/${P}" |
181 |
- --htmldir="${EPREFIX}/usr/share/doc/${P}" |
182 |
- ) |
183 |
use debug || myconf+=( --disable-debug ) |
184 |
+ local myconf=( |
185 |
+ --sysconfdir="${EPREFIX}/etc/${PN}" |
186 |
+ --with-hwloc="${EPREFIX}/usr" |
187 |
+ --docdir="${EPREFIX}/usr/share/doc/${P}" |
188 |
+ --htmldir="${EPREFIX}/usr/share/doc/${P}" |
189 |
+ ) |
190 |
use pam && myconf+=( --with-pam_dir=$(getpam_mod_dir) ) |
191 |
use mysql || myconf+=( --without-mysql_config ) |
192 |
+ use amd64 && myconf+=( $(use_with netloc) ) |
193 |
econf "${myconf[@]}" \ |
194 |
$(use_enable pam) \ |
195 |
$(use_enable X x11) \ |
196 |
$(use_with ssl) \ |
197 |
$(use_with munge) \ |
198 |
+ $(use_with json) \ |
199 |
+ $(use_with hdf5) \ |
200 |
+ $(use_with ofed) \ |
201 |
$(use_enable static-libs static) \ |
202 |
$(use_enable multiple-slurmd) |
203 |
|
204 |
@@ -173,20 +197,28 @@ src_install() { |
205 |
exeinto /etc/slurm |
206 |
doexe \ |
207 |
etc/slurm.epilog.clean |
208 |
+ keepdir /etc/slurm/layouts.d |
209 |
+ insinto /etc/slurm/layouts.d |
210 |
+ newins etc/layouts.d.power.conf.example power.conf.example |
211 |
+ newins etc/layouts.d.power_cpufreq.conf.example power_cpufreq.conf.example |
212 |
+ newins etc/layouts.d.unit.conf.example unit.conf.example |
213 |
# install init.d files |
214 |
- newinitd "$(prefixify_ro ${FILESDIR}/slurmd.initd)" slurmd |
215 |
- newinitd "$(prefixify_ro ${FILESDIR}/slurmctld.initd)" slurmctld |
216 |
- newinitd "$(prefixify_ro ${FILESDIR}/slurmdbd.initd)" slurmdbd |
217 |
+ newinitd "$(prefixify_ro "${FILESDIR}/slurmd.initd")" slurmd |
218 |
+ newinitd "$(prefixify_ro "${FILESDIR}/slurmctld.initd")" slurmctld |
219 |
+ newinitd "$(prefixify_ro "${FILESDIR}/slurmdbd.initd")" slurmdbd |
220 |
# install conf.d files |
221 |
newconfd "${FILESDIR}/slurm.confd" slurm |
222 |
- # Install logrotate file |
223 |
+ # install logrotate file |
224 |
insinto /etc/logrotate.d |
225 |
newins "${FILESDIR}/logrotate" slurm |
226 |
- |
227 |
+ # install bashcomp |
228 |
newbashcomp contribs/slurm_completion_help/slurm_completion.sh scontrol |
229 |
bashcomp_alias scontrol \ |
230 |
sreport sacctmgr squeue scancel sshare sbcast sinfo \ |
231 |
sprio sacct salloc sbatch srun sattach sdiag sstat |
232 |
+ # install systemd files |
233 |
+ systemd_newtmpfilesd "${FILESDIR}/slurm.tmpfiles" slurm.conf |
234 |
+ systemd_dounit etc/slurmd.service etc/slurmctld.service etc/slurmdbd.service |
235 |
} |
236 |
|
237 |
pkg_preinst() { |
238 |
@@ -197,8 +229,8 @@ pkg_preinst() { |
239 |
|
240 |
create_folders_and_fix_permissions() { |
241 |
einfo "Fixing permissions in ${@}" |
242 |
- mkdir -p ${@} |
243 |
- chown -R ${PN}:${PN} ${@} |
244 |
+ mkdir -p ${@} || die |
245 |
+ chown -R ${PN}:${PN} ${@} || die |
246 |
} |
247 |
|
248 |
pkg_postinst() { |
249 |
@@ -207,11 +239,12 @@ pkg_postinst() { |
250 |
"${EROOT}"var/${PN} |
251 |
"${EROOT}"var/spool/${PN}/slurmd |
252 |
"${EROOT}"var/spool/${PN} |
253 |
- "${EROOT}"var/run/${PN} |
254 |
"${EROOT}"var/log/${PN} |
255 |
/var/tmp/${PN}/${PN}d |
256 |
/var/tmp/${PN} |
257 |
- ) |
258 |
+ /run/${PN} |
259 |
+ ) |
260 |
+ local folder_path |
261 |
for folder_path in ${paths[@]}; do |
262 |
create_folders_and_fix_permissions $folder_path |
263 |
done |
264 |
@@ -223,16 +256,12 @@ pkg_postinst() { |
265 |
echo |
266 |
elog "For cgroup support, please see https://www.schedmd.com/slurmdocs/cgroup.conf.html" |
267 |
elog "Your kernel must be compiled with the wanted cgroup feature:" |
268 |
- elog " General setup --->" |
269 |
- elog " [*] Control Group support --->" |
270 |
- elog " [*] Freezer cgroup subsystem" |
271 |
- elog " [*] Device controller for cgroups" |
272 |
- elog " [*] Cpuset support" |
273 |
- elog " [*] Simple CPU accounting cgroup subsystem" |
274 |
- elog " [*] Resource counters" |
275 |
- elog " [*] Memory Resource Controller for Control Groups" |
276 |
- elog " [*] Group CPU scheduler --->" |
277 |
- elog " [*] Group scheduling for SCHED_OTHER" |
278 |
+ elog " For the proctrack plugin:" |
279 |
+ elog " freezer" |
280 |
+ elog " For the task plugin:" |
281 |
+ elog " cpuset, memory, devices" |
282 |
+ elog " For the accounting plugin:" |
283 |
+ elog " cpuacct, memory, blkio" |
284 |
elog "Then, set these options in /etc/slurm/slurm.conf:" |
285 |
elog " ProctrackType=proctrack/cgroup" |
286 |
elog " TaskPlugin=task/cgroup" |