Gentoo Archives: gentoo-commits

From: Alexey Shvetsov <alexxy@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-cluster/slurm/, sys-cluster/slurm/files/
Date: Tue, 04 Sep 2018 13:37:23
Message-Id: 1536067898.87493661de13b2f850a0b7de0f955d8e9504fe83.alexxy@gentoo
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"