Gentoo Archives: gentoo-commits

From: Mikle Kolyada <zlogene@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sys-cluster/slurm/
Date: Fri, 15 Nov 2019 15:04:28
Message-Id: 1573830257.8c3a1e6fafd3b859958e250818cfac17e471c09c.zlogene@gentoo
1 commit: 8c3a1e6fafd3b859958e250818cfac17e471c09c
2 Author: Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
3 AuthorDate: Fri Nov 15 14:38:08 2019 +0000
4 Commit: Mikle Kolyada <zlogene <AT> gentoo <DOT> org>
5 CommitDate: Fri Nov 15 15:04:17 2019 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8c3a1e6f
7
8 sys-cluster/slurm: Version bump (v19.05.4.1)
9
10 Package-Manager: Portage-2.3.76, Repoman-2.3.16
11 Signed-off-by: Mikle Kolyada <zlogene <AT> gentoo.org>
12
13 sys-cluster/slurm/Manifest | 1 +
14 sys-cluster/slurm/slurm-19.05.4.1.ebuild | 266 +++++++++++++++++++++++++++++++
15 2 files changed, 267 insertions(+)
16
17 diff --git a/sys-cluster/slurm/Manifest b/sys-cluster/slurm/Manifest
18 index 1ec305f1dbd..0f860576a6c 100644
19 --- a/sys-cluster/slurm/Manifest
20 +++ b/sys-cluster/slurm/Manifest
21 @@ -1,2 +1,3 @@
22 DIST slurm-18.08.7.tar.bz2 6186006 BLAKE2B a5458f72cbe93bc1103c2c7f3d428ae14239cb092edad2c683e448dda35f3e108fef0d9a3a86599da6058c9c98a86dafed9a087ffe6e8d7425db9cdb879954b3 SHA512 d0047086f1b716877cc5bb39539bf96a8fd08b1851c85fd85112c6432c1ce2a0f29fc9dd8803094c8fa44d063cec5f417e6bed231b6d338934ff4b48424a5a93
23 +DIST slurm-19-05-4-1.tar.gz 8446001 BLAKE2B d3b1524a72d7969b14788b93c7d64b03faf159b71b1ed8fb30782980b7b39e9f4a1d1435f4fbdce722ed9585e7d3285f9a84322c5a5d2f44d5e084bb38019ae4 SHA512 ecee26b23fc72ea4b6eb3039aada1814b5932d75eaf61501a31b97ac8f7b600864f2429a36de068f1f1cde178fa1383f2c53192af5b1a62766e3ffe48be4395c
24 DIST slurm-19.05.3-2.tar.bz2 6233270 BLAKE2B be59d157e99353340f9801f0adac21cfb8c3051f8d6a1bd94ad76fc05d0f83d1f933f72bf4e33b603521ec94cc859185bf56ecbcab674fcbff526164dd39d3cc SHA512 15d63f1ba693458b220ece5512210f1dba52273946809b338e33d684b9daadecd3cc77fda84c1b3bf8b03bc0fe8b8be0f429a96a1bf72a8b5c8cf169e0e1f5bb
25
26 diff --git a/sys-cluster/slurm/slurm-19.05.4.1.ebuild b/sys-cluster/slurm/slurm-19.05.4.1.ebuild
27 new file mode 100644
28 index 00000000000..2bfe56a32f5
29 --- /dev/null
30 +++ b/sys-cluster/slurm/slurm-19.05.4.1.ebuild
31 @@ -0,0 +1,266 @@
32 +# Copyright 1999-2019 Gentoo Authors
33 +# Distributed under the terms of the GNU General Public License v2
34 +
35 +EAPI=7
36 +
37 +if [[ ${PV} == *9999* ]]; then
38 + EGIT_REPO_URI="https://github.com/SchedMD/slurm.git"
39 + INHERIT_GIT="git-r3"
40 + SRC_URI=""
41 + KEYWORDS=""
42 + MY_P="${P}"
43 +else
44 + if [[ ${PV} == *pre* || ${PV} == *rc* ]]; then
45 + MY_PV=$(ver_rs '-0.') # pre-releases or release-candidate
46 + else
47 + MY_PV=$(ver_rs 1-3 '-') # stable releases
48 + fi
49 + MY_P="${PN}-${MY_PV}"
50 + INHERIT_GIT=""
51 + SRC_URI="https://github.com/SchedMD/slurm/archive/${MY_P}.tar.gz"
52 + KEYWORDS="~amd64 ~x86"
53 +fi
54 +
55 +inherit autotools bash-completion-r1 pam perl-module prefix toolchain-funcs systemd ${INHERIT_GIT}
56 +
57 +DESCRIPTION="A Highly Scalable Resource Manager"
58 +HOMEPAGE="https://www.schedmd.com https://github.com/SchedMD/slurm"
59 +
60 +LICENSE="GPL-2"
61 +SLOT="0"
62 +IUSE="debug hdf5 html ipmi json lua multiple-slurmd +munge mysql netloc numa ofed pam perl slurmdbd ssl static-libs ucx torque X"
63 +
64 +COMMON_DEPEND="
65 + !sys-cluster/torque
66 + !net-analyzer/slurm
67 + !net-analyzer/sinfo
68 + || ( sys-cluster/pmix[-pmi] >=sys-cluster/openmpi-2.0.0 )
69 + mysql? (
70 + || ( dev-db/mariadb-connector-c dev-db/mysql-connector-c )
71 + slurmdbd? ( || ( dev-db/mariadb dev-db/mysql ) )
72 + )
73 + munge? ( sys-auth/munge )
74 + pam? ( sys-libs/pam )
75 + ssl? ( dev-libs/openssl:0= )
76 + lua? ( dev-lang/lua:0= )
77 + !lua? ( !dev-lang/lua )
78 + ipmi? ( sys-libs/freeipmi )
79 + json? ( dev-libs/json-c:= )
80 + amd64? ( netloc? ( sys-apps/netloc ) )
81 + hdf5? ( sci-libs/hdf5:= )
82 + numa? ( sys-process/numactl )
83 + ofed? ( sys-fabric/ofed )
84 + ucx? ( sys-cluster/ucx )
85 + X? ( net-libs/libssh2 )
86 + >=sys-apps/hwloc-1.1.1-r1
87 + sys-libs/ncurses:0=
88 + app-arch/lz4:0=
89 + sys-libs/readline:0="
90 +DEPEND="${COMMON_DEPEND}
91 + html? ( sys-apps/man2html )"
92 +RDEPEND="${OMMON_DEPEND}
93 + acct-user/slurm
94 + acct-group/slurm
95 + dev-libs/libcgroup"
96 +
97 +REQUIRED_USE="torque? ( perl )"
98 +
99 +S="${WORKDIR}/${PN}-${MY_P}"
100 +
101 +LIBSLURM_PERL_S="${WORKDIR}/${MY_P}/contribs/perlapi/libslurm/perl"
102 +LIBSLURMDB_PERL_S="${WORKDIR}/${MY_P}/contribs/perlapi/libslurmdb/perl"
103 +
104 +RESTRICT="test"
105 +
106 +src_unpack() {
107 + if [[ ${PV} == *9999* ]]; then
108 + git-r3_src_unpack
109 + else
110 + default
111 + fi
112 +}
113 +
114 +src_prepare() {
115 + tc-ld-disable-gold
116 + default
117 +
118 + # pids should go to /var/run/slurm
119 + sed \
120 + -e 's:/tmp:/var/tmp:g' \
121 + -e "s:/var/run/slurmctld.pid:${EPREFIX}/run/slurm/slurmctld.pid:g" \
122 + -e "s:/var/run/slurmd.pid:${EPREFIX}/run/slurm/slurmd.pid:g" \
123 + -e "s:StateSaveLocation=.*:StateSaveLocation=${EPREFIX}/var/spool/slurm:g" \
124 + -e "s:SlurmdSpoolDir=.*:SlurmdSpoolDir=${EPREFIX}/var/spool/slurm/slurmd:g" \
125 + -i "${S}/etc/slurm.conf.example" \
126 + || die "Can't sed for /var/run/slurmctld.pid"
127 + sed \
128 + -e "s:/var/run/slurmdbd.pid:${EPREFIX}/run/slurm/slurmdbd.pid:g" \
129 + -i "${S}/etc/slurmdbd.conf.example" \
130 + || die "Can't sed for /var/run/slurmdbd.pid"
131 + # gentooify systemd services
132 + sed \
133 + -e 's:sysconfig/.*:conf.d/slurm:g' \
134 + -e 's:var/run/:run/slurm/:g' \
135 + -e '/^EnvironmentFile=.*/d' \
136 + -i "${S}/etc"/*.service.in \
137 + || die "Can't sed systemd services for sysconfig or var/run/"
138 +
139 + hprefixify auxdir/{ax_check_zlib,x_ac_{lz4,ofed,munge}}.m4
140 + eautoreconf
141 +}
142 +
143 +src_configure() {
144 + local myconf=(
145 + --sysconfdir="${EPREFIX}/etc/${PN}"
146 + --with-hwloc="${EPREFIX}/usr"
147 + --docdir="${EPREFIX}/usr/share/doc/${P}"
148 + --htmldir="${EPREFIX}/usr/share/doc/${P}"
149 + )
150 + use pam && myconf+=( --with-pam_dir=$(getpam_mod_dir) )
151 + use mysql || myconf+=( --without-mysql_config )
152 + use amd64 && myconf+=( $(use_with netloc) )
153 + econf "${myconf[@]}" \
154 + $(use_enable debug) \
155 + $(use_enable pam) \
156 + $(use_enable X x11) \
157 + $(use_with ssl) \
158 + $(use_with munge) \
159 + $(use_with json) \
160 + $(use_with hdf5) \
161 + $(use_with ofed) \
162 + $(use_with ucx) \
163 + $(use_enable static-libs static) \
164 + $(use_enable multiple-slurmd)
165 +
166 + # --htmldir does not seems to propagate... Documentations are installed
167 + # in /usr/share/doc/slurm-2.3.0/html
168 + # instead of /usr/share/doc/slurm-2.3.0.2/html
169 + sed \
170 + -e "s|htmldir = .*/html|htmldir = \${prefix}/share/doc/slurm-${PVR}/html|g" \
171 + -i doc/html/Makefile || die
172 + if use perl ; then
173 + # small hack to make it compile
174 + mkdir -p "${S}/src/api/.libs" || die
175 + mkdir -p "${S}/src/db_api/.libs" || die
176 + touch "${S}/src/api/.libs/libslurm.so" || die
177 + touch "${S}/src/db_api/.libs/libslurmdb.so" || die
178 + cd "${LIBSLURM_PERL_S}" || die
179 + S="${LIBSLURM_PERL_S}" SRC_PREP="no" perl-module_src_configure
180 + cd "${LIBSLURMDB_PERL_S}" || die
181 + S="${LIBSLURMDB_PERL_S}" SRC_PREP="no" perl-module_src_configure
182 + cd "${S}" || die
183 + rm -rf "${S}/src/api/.libs" "${S}/src/db_api/.libs" || die
184 + fi
185 +}
186 +
187 +src_compile() {
188 + default
189 + use pam && emake -C contribs/pam
190 + if use perl ; then
191 + cd "${LIBSLURM_PERL_S}" || die
192 + S="${LIBSLURM_PERL_S}" perl-module_src_compile
193 + cd "${LIBSLURMDB_PERL_S}" || die
194 + S="${LIBSLURMDB_PERL_S}" perl-module_src_compile
195 + cd "${S}" || die
196 + fi
197 + use torque && emake -C contribs/torque
198 +}
199 +
200 +src_install() {
201 + default
202 + use pam && emake DESTDIR="${D}" -C contribs/pam install
203 + if use perl; then
204 + cd "${LIBSLURM_PERL_S}" || die
205 + S="${LIBSLURM_PERL_S}" perl-module_src_install
206 + cd "${LIBSLURMDB_PERL_S}" || die
207 + S="${LIBSLURMDB_PERL_S}" perl-module_src_install
208 + cd "${S}" || die
209 + fi
210 + if use torque; then
211 + emake DESTDIR="${D}" -C contribs/torque
212 + rm -f "${D}"/usr/bin/mpiexec || die
213 + fi
214 + use static-libs || find "${ED}" -name '*.la' -exec rm {} +
215 + # install sample configs
216 + keepdir /etc/slurm
217 + insinto /etc/slurm
218 + doins \
219 + etc/bluegene.conf.example \
220 + etc/cgroup.conf.example \
221 + etc/slurm.conf.example \
222 + etc/slurmdbd.conf.example
223 + exeinto /etc/slurm
224 + keepdir /etc/slurm/layouts.d
225 + insinto /etc/slurm/layouts.d
226 + newins etc/layouts.d.power.conf.example power.conf.example
227 + newins etc/layouts.d.power_cpufreq.conf.example power_cpufreq.conf.example
228 + newins etc/layouts.d.unit.conf.example unit.conf.example
229 + # install init.d files
230 + newinitd "$(prefixify_ro "${FILESDIR}/slurmd.initd")" slurmd
231 + newinitd "$(prefixify_ro "${FILESDIR}/slurmctld.initd")" slurmctld
232 + newinitd "$(prefixify_ro "${FILESDIR}/slurmdbd.initd")" slurmdbd
233 + # install conf.d files
234 + newconfd "${FILESDIR}/slurm.confd" slurm
235 + # install logrotate file
236 + insinto /etc/logrotate.d
237 + newins "${FILESDIR}/logrotate" slurm
238 + # install bashcomp
239 + newbashcomp contribs/slurm_completion_help/slurm_completion.sh scontrol
240 + bashcomp_alias scontrol \
241 + sreport sacctmgr squeue scancel sshare sbcast sinfo \
242 + sprio sacct salloc sbatch srun sattach sdiag sstat
243 + # install systemd files
244 + systemd_newtmpfilesd "${FILESDIR}/slurm.tmpfiles" slurm.conf
245 + systemd_dounit etc/slurmd.service etc/slurmctld.service etc/slurmdbd.service
246 +}
247 +
248 +pkg_preinst() {
249 + if use munge; then
250 + sed -i 's,\(SLURM_USE_MUNGE=\).*,\11,' "${D}"/etc/conf.d/slurm || die
251 + fi
252 +}
253 +
254 +create_folders_and_fix_permissions() {
255 + einfo "Fixing permissions in ${@}"
256 + mkdir -p ${@} || die
257 + chown -R ${PN}:${PN} ${@} || die
258 +}
259 +
260 +pkg_postinst() {
261 + paths=(
262 + "${EROOT}"/var/${PN}/checkpoint
263 + "${EROOT}"/var/${PN}
264 + "${EROOT}"/var/spool/${PN}/slurmd
265 + "${EROOT}"/var/spool/${PN}
266 + "${EROOT}"/var/log/${PN}
267 + /var/tmp/${PN}/${PN}d
268 + /var/tmp/${PN}
269 + /run/${PN}
270 + )
271 + local folder_path
272 + for folder_path in ${paths[@]}; do
273 + create_folders_and_fix_permissions $folder_path
274 + done
275 + echo
276 +
277 + elog "Please visit the file '/usr/share/doc/${P}/html/configurator.html"
278 + elog "through a (javascript enabled) browser to create a configureation file."
279 + elog "Copy that file to /etc/slurm/slurm.conf on all nodes (including the headnode) of your cluster."
280 + echo
281 + elog "For cgroup support, please see https://www.schedmd.com/slurmdocs/cgroup.conf.html"
282 + elog "Your kernel must be compiled with the wanted cgroup feature:"
283 + elog " For the proctrack plugin:"
284 + elog " freezer"
285 + elog " For the task plugin:"
286 + elog " cpuset, memory, devices"
287 + elog " For the accounting plugin:"
288 + elog " cpuacct, memory, blkio"
289 + elog "Then, set these options in /etc/slurm/slurm.conf:"
290 + elog " ProctrackType=proctrack/cgroup"
291 + elog " TaskPlugin=task/cgroup"
292 + einfo
293 + ewarn "Paths were created for slurm. Please use these paths in /etc/slurm/slurm.conf:"
294 + for folder_path in ${paths[@]}; do
295 + ewarn " ${folder_path}"
296 + done
297 +}