summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBenda Xu <heroxbd@gentoo.org>2024-08-31 22:08:51 +0800
committerBenda Xu <heroxbd@gentoo.org>2024-10-18 21:37:05 +0800
commitdc471fd436829cd2029175e0e9cd4c61cf9d5e1d (patch)
tree0b6248ad5de6bc4c703b72689fd3b51070550a32 /sys-cluster
parentdev-util/glslang: Fix slot (diff)
downloadgentoo-dc471fd436829cd2029175e0e9cd4c61cf9d5e1d.tar.gz
gentoo-dc471fd436829cd2029175e0e9cd4c61cf9d5e1d.tar.bz2
gentoo-dc471fd436829cd2029175e0e9cd4c61cf9d5e1d.zip
sys-cluster/slurm: revive with version 24.05.3.
Bug: https://bugs.gentoo.org/631552 Bug: https://bugs.gentoo.org/920104 Signed-off-by: Benda Xu <heroxbd@gentoo.org>
Diffstat (limited to 'sys-cluster')
-rw-r--r--sys-cluster/slurm/Manifest1
-rw-r--r--sys-cluster/slurm/files/logrotate20
-rw-r--r--sys-cluster/slurm/files/slurm.confd6
-rw-r--r--sys-cluster/slurm/files/slurm.tmpfiles1
-rw-r--r--sys-cluster/slurm/files/slurmctld.initd76
-rw-r--r--sys-cluster/slurm/files/slurmd.initd79
-rw-r--r--sys-cluster/slurm/files/slurmdbd.initd74
-rw-r--r--sys-cluster/slurm/metadata.xml27
-rw-r--r--sys-cluster/slurm/slurm-24.05.3.ebuild276
9 files changed, 560 insertions, 0 deletions
diff --git a/sys-cluster/slurm/Manifest b/sys-cluster/slurm/Manifest
new file mode 100644
index 000000000000..6e8549336d1c
--- /dev/null
+++ b/sys-cluster/slurm/Manifest
@@ -0,0 +1 @@
+DIST slurm-24.05.3.tar.bz2 7189600 BLAKE2B 4da4c49a7db334494ea03529f45016741e93603680f592d0baf34657e12079f3766e32f67725d16c17336b28206cf920ae2314c9b7076bda22ee1cb239932229 SHA512 fa903aea77b667911d90e9bd7aec3a21b43d4f642e2fdf3f6eb309fd6c8ca0892fba36f371f67e944a4198248ff44d5b6ac6c0edd03cfd4f3e1828b03c12a539
diff --git a/sys-cluster/slurm/files/logrotate b/sys-cluster/slurm/files/logrotate
new file mode 100644
index 000000000000..978a869eb993
--- /dev/null
+++ b/sys-cluster/slurm/files/logrotate
@@ -0,0 +1,20 @@
+/var/log/slurm/*.log {
+ weekly
+ compress
+ missingok
+ nocopytruncate
+ nocreate
+ nodelaycompress
+ nomail
+ notifempty
+ noolddir
+ rotate 5
+ sharedscripts
+ size=5M
+ create 640 slurm slurm
+ postrotate
+ /etc/init.d/slurmd reload
+ /etc/init.d/slurmctld reload
+ /etc/init.d/slurmdbd reload
+ endscript
+}
diff --git a/sys-cluster/slurm/files/slurm.confd b/sys-cluster/slurm/files/slurm.confd
new file mode 100644
index 000000000000..c406dc3f2a2c
--- /dev/null
+++ b/sys-cluster/slurm/files/slurm.confd
@@ -0,0 +1,6 @@
+# /etc/conf.d/slurm: config file for /etc/init.d/slurm*
+SLURMCTLD_OPTIONS=""
+SLURMDBD_OPTIONS=""
+SLURMD_OPTIONS=""
+SLURM_USE_MUNGE="0"
+SLURM_USE_YPBIND="0" \ No newline at end of file
diff --git a/sys-cluster/slurm/files/slurm.tmpfiles b/sys-cluster/slurm/files/slurm.tmpfiles
new file mode 100644
index 000000000000..c77457db5576
--- /dev/null
+++ b/sys-cluster/slurm/files/slurm.tmpfiles
@@ -0,0 +1 @@
+d /run/slurm 755 slurm slurm -
diff --git a/sys-cluster/slurm/files/slurmctld.initd b/sys-cluster/slurm/files/slurmctld.initd
new file mode 100644
index 000000000000..5cb5888fa153
--- /dev/null
+++ b/sys-cluster/slurm/files/slurmctld.initd
@@ -0,0 +1,76 @@
+#!/sbin/openrc-run
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+extra_commands="reload"
+
+[[ -f /etc/conf.d/slurm ]] && . /etc/conf.d/slurm
+
+depend() {
+ local _need
+ [[ ${SLURM_USE_MUNGE} -ne 0 ]] && _need="${_need} munged"
+ [[ ${SLURM_USE_YPBIND} -ne 0 ]] && _need="${_need} ypbind"
+ after logger slurmdbd
+ need ${_need}
+}
+
+create_folder_and_set_permission() {
+ folder=${1}
+ # Fix permissions (/tmp is wiped at boot)
+ if [[ "${folder}" == "/tmp" ]]; then
+ eerror "SLURM: folder == ${folder} == /tmp"
+ exit
+ fi
+ if [[ "${folder}" == "/var/tmp" ]]; then
+ eerror "SLURM: folder == ${folder} == /var/tmp"
+ exit
+ fi
+ checkpath -d -o slurm:slurm "${folder}"
+}
+
+checkconfig() {
+ if [ ! -e "/etc/slurm/slurm.conf" ]; then
+ eerror "Missing config /etc/slurm/slurm.conf"
+ eerror "Customize sample one or generate new by configurator.html"
+ eerror "in slurm doc directory"
+ return 1
+ fi
+
+ # Make sure folders exists
+ . /etc/slurm/slurm.conf
+ folders=(
+ ${SlurmdSpoolDir}
+ $(dirname ${SlurmctldLogFile})
+ $(dirname ${SlurmctldPidFile})
+ $(dirname ${SlurmdLogFile})
+ $(dirname ${SlurmdPidFile})
+ ${SlurmdSpoolDir}
+ ${StateSaveLocation}
+ )
+ for folder in ${folders[@]}; do
+ create_folder_and_set_permission "${folder}"
+ done
+}
+
+start() {
+ ebegin "Starting slurm control daemon"
+ checkconfig
+ start-stop-daemon --start --quiet --background \
+ --pidfile /run/slurm/slurmctld.pid \
+ --user slurm \
+ --group slurm \
+ --exec /usr/sbin/slurmctld -- ${SLURMCTLD_OPTS}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping slurm control daemon"
+ start-stop-daemon --stop --pidfile /run/slurm/slurmctld.pid
+ eend $?
+}
+
+reload() {
+ ebegin "Reloading slurm daemon configuration"
+ start-stop-daemon --signal HUP --pidfile /run/slurm/slurmctld.pid
+ eend $?
+}
diff --git a/sys-cluster/slurm/files/slurmd.initd b/sys-cluster/slurm/files/slurmd.initd
new file mode 100644
index 000000000000..dd9797c0c7d2
--- /dev/null
+++ b/sys-cluster/slurm/files/slurmd.initd
@@ -0,0 +1,79 @@
+#!/sbin/openrc-run
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+extra_commands="reload"
+
+[[ -f /etc/conf.d/slurm ]] && . /etc/conf.d/slurm
+
+depend() {
+ local _need
+ [[ ${SLURM_USE_MUNGE} -ne 0 ]] && _need="${_need} munged"
+ [[ ${SLURM_USE_YPBIND} -ne 0 ]] && _need="${_need} ypbind"
+ after logger
+ need ${_need}
+}
+
+create_folder_and_set_permission() {
+ folder=${1}
+ # Fix permissions (/tmp is wiped at boot)
+ if [[ "${folder}" == "/tmp" ]]; then
+ eerror "SLURM: folder == ${folder} == /tmp"
+ exit
+ fi
+ if [[ "${folder}" == "/var/tmp" ]]; then
+ eerror "SLURM: folder == ${folder} == /var/tmp"
+ exit
+ fi
+ checkpath -d -o slurm:slurm ${folder}
+}
+
+checkconfig() {
+ if [ ! -e "/etc/slurm/slurm.conf" ]; then
+ eerror "Missing config /etc/slurm/slurm.conf"
+ eerror "Customize sample one or generate new by configurator.html"
+ eerror "in slurm doc directory"
+ return 1
+ fi
+ # Make sure folders exists
+ . /etc/slurm/slurm.conf
+ folders=(
+ ${SlurmdSpoolDir}
+ $(dirname ${SlurmctldLogFile})
+ $(dirname ${SlurmctldPidFile})
+ $(dirname ${SlurmdLogFile})
+ $(dirname ${SlurmdPidFile})
+ ${SlurmdSpoolDir}
+ ${StateSaveLocation}
+ )
+ for folder in ${folders[@]}; do
+ create_folder_and_set_permission "${folder}"
+ done
+}
+
+start() {
+ ebegin "Starting slurm daemon"
+ checkconfig
+ # Slurm does not propagate limits, which can brakes InfiniBand
+ # See http://www.open-mpi.org/faq/?category=openfabrics
+ # and https://computing.llnl.gov/linux/slurm/faq.html#rlimit
+ ulimit -l unlimited
+ start-stop-daemon --start --quiet --background \
+ --pidfile /run/slurm/slurmd.pid \
+ --user root \
+ --group root \
+ --exec /usr/sbin/slurmd -- ${SLURMD_OPTS}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping slurm daemon"
+ start-stop-daemon --stop --pidfile /run/slurm/slurmd.pid
+ eend $?
+}
+
+reload() {
+ ebegin "Reloading slurm daemon configuration"
+ start-stop-daemon --signal HUP --pidfile /run/slurm/slurmd.pid
+ eend $?
+}
diff --git a/sys-cluster/slurm/files/slurmdbd.initd b/sys-cluster/slurm/files/slurmdbd.initd
new file mode 100644
index 000000000000..27b5102101cb
--- /dev/null
+++ b/sys-cluster/slurm/files/slurmdbd.initd
@@ -0,0 +1,74 @@
+#!/sbin/openrc-run
+# Copyright 1999-2018 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+extra_commands="reload"
+
+[[ -f /etc/conf.d/slurm ]] && . /etc/conf.d/slurm
+
+depend() {
+ local _need
+ [[ ${SLURM_USE_MUNGE} -ne 0 ]] && _need="${_need} munged"
+ [[ ${SLURM_USE_YPBIND} -ne 0 ]] && _need="${_need} ypbind"
+ after logger
+ need ${_need}
+}
+
+create_folder_and_set_permission() {
+ folder=${1}
+ # Fix permissions (/tmp is wiped at boot)
+ if [[ "${folder}" == "/tmp" ]]; then
+ eerror "SLURM: folder == ${folder} == /tmp"
+ exit
+ fi
+ if [[ "${folder}" == "/var/tmp" ]]; then
+ eerror "SLURM: folder == ${folder} == /var/tmp"
+ exit
+ fi
+ checkpath -d -o slurm:slurm ${folder}
+}
+
+checkconfig() {
+ if [ ! -e "/etc/slurm/slurmdbd.conf" ]; then
+ eerror "Missing config /etc/slurm/slurmdbd.conf"
+ return 1
+ fi
+
+ # Make sure folders exists
+ . /etc/slurm/slurm.conf
+ folders=(
+ ${SlurmdSpoolDir}
+ $(dirname ${SlurmctldLogFile})
+ $(dirname ${SlurmctldPidFile})
+ $(dirname ${SlurmdLogFile})
+ $(dirname ${SlurmdPidFile})
+ ${SlurmdSpoolDir}
+ ${StateSaveLocation}
+ )
+ for folder in ${folders[@]}; do
+ create_folder_and_set_permission "${folder}"
+ done
+}
+
+start() {
+ ebegin "Starting slurmdb daemon"
+ checkconfig
+ start-stop-daemon --start --quiet --background \
+ --pidfile /run/slurm/slurmdbd.pid \
+ --user slurm \
+ --group slurm \
+ --exec /usr/sbin/slurmdbd -- ${SLURMD_OPTS}
+ eend $?
+}
+
+stop() {
+ ebegin "Stopping slurmdb daemon"
+ start-stop-daemon --stop --pidfile /run/slurm/slurmdbd.pid
+ eend $?
+}
+
+reload() {
+ ebegin "Reloading slurmdb daemon configuration"
+ start-stop-daemon --signal HUP --pidfile /run/slurm/slurmdbd.pid
+ eend $?
+}
diff --git a/sys-cluster/slurm/metadata.xml b/sys-cluster/slurm/metadata.xml
new file mode 100644
index 000000000000..9ddcae0895da
--- /dev/null
+++ b/sys-cluster/slurm/metadata.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="person">
+ <email>alexxy@gentoo.org</email>
+ <name>Alexey Shvetsov</name>
+ </maintainer>
+ <maintainer type="project">
+ <email>cluster@gentoo.org</email>
+ <name>Gentoo Cluster Project</name>
+ </maintainer>
+ <use>
+ <flag name="html">Build html documentation</flag>
+ <flag name="ipmi">Build support for collecting some ipmi stats</flag>
+ <flag name="json">Add support for json-persing via json-c</flag>
+ <flag name="munge">Enable authentication via munge</flag>
+ <flag name="multiple-slurmd">Allow multiple slurmd to run</flag>
+ <flag name="numa">Add NUMA awareness</flag>
+ <flag name="nvml">Enable the NVML device discovery</flag>
+ <flag name="ofed">Add Infiniband support via ofed</flag>
+ <flag name="slurmdbd">Install SQL server for slurmdbd</flag>
+ <flag name="slurmrestd">Enable interface to Slurm via REST API</flag>
+ <flag name="torque">Enable perl scripts that emulates pbs (qstat, qsub etc.)</flag>
+ <flag name="ucx">Enable Unified Communication X library support</flag>
+ <flag name="yaml">Enable YAML support</flag>
+ </use>
+</pkgmetadata>
diff --git a/sys-cluster/slurm/slurm-24.05.3.ebuild b/sys-cluster/slurm/slurm-24.05.3.ebuild
new file mode 100644
index 000000000000..1078be9a6b38
--- /dev/null
+++ b/sys-cluster/slurm/slurm-24.05.3.ebuild
@@ -0,0 +1,276 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+LUA_COMPAT=( lua5-{1..4} )
+
+if [[ ${PV} == *9999* ]]; then
+ EGIT_REPO_URI="https://github.com/SchedMD/slurm.git"
+ INHERIT_GIT="git-r3"
+ MY_P="${P}"
+else
+ if [[ ${PV} == *pre* || ${PV} == *rc* ]]; then
+ MY_PV=$(ver_rs '-0.') # pre-releases or release-candidate
+ else
+ MY_PV=$(ver_rs 1-4 '-') # stable releases
+ fi
+ MY_P="${P}"
+ INHERIT_GIT=""
+ SRC_URI="https://download.schedmd.com/slurm/${MY_P}.tar.bz2"
+ KEYWORDS="~amd64 ~arm64 ~riscv ~x86"
+fi
+
+inherit autotools bash-completion-r1 lua-single pam perl-module prefix toolchain-funcs systemd ${INHERIT_GIT} tmpfiles
+
+DESCRIPTION="A Highly Scalable Resource Manager"
+HOMEPAGE="https://www.schedmd.com https://github.com/SchedMD/slurm"
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE="X debug hdf5 html ipmi json lua multiple-slurmd +munge mysql numa nvml ofed pam perl slurmdbd slurmrestd static-libs torque ucx yaml"
+
+# See bug #813924 for hdf5lib < dep, needs proper fix
+COMMON_DEPEND="
+ !sys-cluster/torque
+ !net-analyzer/slurm
+ !net-analyzer/sinfo
+ || ( sys-cluster/pmix[-pmi] >=sys-cluster/openmpi-2.0.0 )
+ mysql? (
+ || ( dev-db/mariadb-connector-c dev-db/mysql-connector-c )
+ slurmdbd? ( || ( dev-db/mariadb:* dev-db/mysql:* ) )
+ )
+ slurmrestd? (
+ net-libs/http-parser
+ )
+ munge? ( sys-auth/munge )
+ pam? ( sys-libs/pam )
+ lua? ( ${LUA_DEPS} )
+ ipmi? ( sys-libs/freeipmi )
+ json? ( dev-libs/json-c:= )
+ hdf5? ( <sci-libs/hdf5-1.12:= )
+ numa? ( sys-process/numactl )
+ nvml? ( dev-util/nvidia-cuda-toolkit x11-drivers/nvidia-drivers )
+ ofed? ( sys-cluster/rdma-core )
+ ucx? ( sys-cluster/ucx )
+ yaml? ( dev-libs/libyaml )
+ X? ( net-libs/libssh2 )
+ >=sys-apps/hwloc-1.1.1-r1:=
+ sys-libs/ncurses:0=
+ app-arch/lz4:0=
+ dev-libs/glib:2=
+ sys-apps/dbus
+ sys-libs/readline:0="
+
+DEPEND="${COMMON_DEPEND}
+ html? ( sys-apps/man2html )"
+
+BDEPEND="acct-user/slurm
+ acct-group/slurm"
+
+RDEPEND="${COMMON_DEPEND}
+ dev-libs/libcgroup"
+
+REQUIRED_USE="lua? ( ${LUA_REQUIRED_USE} )
+ torque? ( perl )
+ slurmrestd? ( json ) "
+
+S="${WORKDIR}/${MY_P}"
+
+LIBSLURM_PERL_S="${S}/contribs/perlapi/libslurm/perl"
+LIBSLURMDB_PERL_S="${S}/contribs/perlapi/libslurmdb/perl"
+
+RESTRICT="test"
+
+pkg_setup() {
+ use lua && lua-single_pkg_setup
+}
+
+src_unpack() {
+ if [[ ${PV} == *9999* ]]; then
+ git-r3_src_unpack
+ else
+ default
+ fi
+}
+
+src_prepare() {
+ tc-ld-disable-gold
+ default
+
+ # pids should go to /var/run/slurm
+ sed \
+ -e 's:/tmp:/var/tmp:g' \
+ -e "s:/var/run/slurmctld.pid:${EPREFIX}/run/slurm/slurmctld.pid:g" \
+ -e "s:/var/run/slurmd.pid:${EPREFIX}/run/slurm/slurmd.pid:g" \
+ -e "s:StateSaveLocation=.*:StateSaveLocation=${EPREFIX}/var/spool/slurm:g" \
+ -e "s:SlurmdSpoolDir=.*:SlurmdSpoolDir=${EPREFIX}/var/spool/slurm/slurmd:g" \
+ -i "${S}/etc/slurm.conf.example" \
+ || die "Can't sed for /var/run/slurmctld.pid"
+ sed \
+ -e "s:/var/run/slurmdbd.pid:${EPREFIX}/run/slurm/slurmdbd.pid:g" \
+ -i "${S}/etc/slurmdbd.conf.example" \
+ || die "Can't sed for /var/run/slurmdbd.pid"
+ # gentooify systemd services
+ sed \
+ -e 's:sysconfig/.*:conf.d/slurm:g' \
+ -e 's:var/run/:run/slurm/:g' \
+ -e '/^EnvironmentFile=.*/d' \
+ -i "${S}/etc"/*.service.in \
+ || die "Can't sed systemd services for sysconfig or var/run/"
+
+ sed -e '/AM_PATH_GTK_2_0/d' -i configure.ac || die
+
+ hprefixify auxdir/{ax_check_zlib,x_ac_{lz4,ofed,munge}}.m4
+ eautoreconf
+}
+
+src_configure() {
+ local myconf=(
+ CPPFLAGS="-I/opt/cuda/include"
+ --sysconfdir="${EPREFIX}/etc/${PN}"
+ --with-hwloc="${EPREFIX}/usr"
+ --htmldir="${EPREFIX}/usr/share/doc/${PF}"
+ )
+ use pam && myconf+=( --with-pam_dir=$(getpam_mod_dir) )
+ use mysql || myconf+=( --without-mysql_config )
+ econf "${myconf[@]}" \
+ $(use_enable debug) \
+ $(use_with lua) \
+ $(use_enable pam) \
+ $(use_enable X x11) \
+ $(use_with munge) \
+ $(use_with json) \
+ $(use_with hdf5) \
+ $(use_with nvml) \
+ $(use_with ofed) \
+ $(use_with ucx) \
+ $(use_with yaml) \
+ $(use_enable static-libs static) \
+ $(use_enable slurmrestd) \
+ $(use_enable multiple-slurmd)
+
+ # --htmldir does not seems to propagate... Documentations are installed
+ # in /usr/share/doc/slurm-2.3.0/html
+ # instead of /usr/share/doc/slurm-2.3.0.2/html
+ sed \
+ -e "s|htmldir = .*/html|htmldir = \${prefix}/share/doc/slurm-${PVR}/html|g" \
+ -i doc/html/Makefile || die
+ if use perl ; then
+ # small hack to make it compile
+ mkdir -p "${S}/src/api/.libs" || die
+ mkdir -p "${S}/src/db_api/.libs" || die
+ touch "${S}/src/api/.libs/libslurm.so" || die
+ touch "${S}/src/db_api/.libs/libslurmdb.so" || die
+ cd "${LIBSLURM_PERL_S}" || die
+ S="${LIBSLURM_PERL_S}" SRC_PREP="no" perl-module_src_configure
+ cd "${LIBSLURMDB_PERL_S}" || die
+ S="${LIBSLURMDB_PERL_S}" SRC_PREP="no" perl-module_src_configure
+ cd "${S}" || die
+ rm -rf "${S}/src/api/.libs" "${S}/src/db_api/.libs" || die
+ fi
+}
+
+src_compile() {
+ default
+ use pam && emake -C contribs/pam
+ if use perl ; then
+ cd "${LIBSLURM_PERL_S}" || die
+ S="${LIBSLURM_PERL_S}" perl-module_src_compile
+ cd "${LIBSLURMDB_PERL_S}" || die
+ S="${LIBSLURMDB_PERL_S}" perl-module_src_compile
+ cd "${S}" || die
+ fi
+ use torque && emake -C contribs/torque
+}
+
+src_install() {
+ default
+ use pam && emake DESTDIR="${D}" -C contribs/pam install
+ if use perl; then
+ cd "${LIBSLURM_PERL_S}" || die
+ S="${LIBSLURM_PERL_S}" perl-module_src_install
+ cd "${LIBSLURMDB_PERL_S}" || die
+ S="${LIBSLURMDB_PERL_S}" perl-module_src_install
+ cd "${S}" || die
+ fi
+ if use torque; then
+ emake DESTDIR="${D}" -C contribs/torque
+ rm -f "${D}"/usr/bin/mpiexec || die
+ fi
+ use static-libs || find "${ED}" -name '*.la' -exec rm {} +
+ # install sample configs
+ keepdir /etc/slurm
+ insinto /etc/slurm
+ doins \
+ etc/prolog.example \
+ etc/cgroup.conf.example \
+ etc/slurm.conf.example \
+ etc/slurmdbd.conf.example
+ exeinto /etc/slurm
+ keepdir /etc/slurm/layouts.d
+ # install init.d files
+ newinitd "$(prefixify_ro "${FILESDIR}/slurmd.initd")" slurmd
+ newinitd "$(prefixify_ro "${FILESDIR}/slurmctld.initd")" slurmctld
+ newinitd "$(prefixify_ro "${FILESDIR}/slurmdbd.initd")" slurmdbd
+ # install conf.d files
+ newconfd "${FILESDIR}/slurm.confd" slurm
+ # install logrotate file
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}/logrotate" slurm
+ # install bashcomp
+ newbashcomp contribs/slurm_completion_help/slurm_completion.sh scontrol
+ bashcomp_alias scontrol \
+ sreport sacctmgr squeue scancel sshare sbcast sinfo \
+ sprio sacct salloc sbatch srun sattach sdiag sstat
+ # install systemd files
+ newtmpfiles "${FILESDIR}/slurm.tmpfiles" slurm.conf
+ systemd_dounit etc/slurmd.service etc/slurmctld.service etc/slurmdbd.service
+
+ paths=(
+ /var/${PN}/checkpoint
+ /var/${PN}
+ /var/spool/${PN}/slurmd
+ /var/spool/${PN}
+ /var/log/${PN}
+ /var/tmp/${PN}/${PN}d
+ /var/tmp/${PN}
+ /run/${PN}
+ )
+ local folder_path
+ for folder_path in ${paths[@]}; do
+ keepdir ${folder_path}
+ fowners ${PN}:${PN} ${folder_path}
+ done
+}
+
+pkg_preinst() {
+ if use munge; then
+ sed -i 's,\(SLURM_USE_MUNGE=\).*,\11,' "${D}"/etc/conf.d/slurm || die
+ fi
+}
+
+pkg_postinst() {
+ tmpfiles_process slurm.conf
+
+ elog "Please visit the file '/usr/share/doc/${P}/html/configurator.html"
+ elog "through a (javascript enabled) browser to create a configureation file."
+ elog "Copy that file to /etc/slurm/slurm.conf on all nodes (including the headnode) of your cluster."
+ echo
+ elog "For cgroup support, please see https://www.schedmd.com/slurmdocs/cgroup.conf.html"
+ elog "Your kernel must be compiled with the wanted cgroup feature:"
+ elog " For the proctrack plugin:"
+ elog " freezer"
+ elog " For the task plugin:"
+ elog " cpuset, memory, devices"
+ elog " For the accounting plugin:"
+ elog " cpuacct, memory, blkio"
+ elog "Then, set these options in /etc/slurm/slurm.conf:"
+ elog " ProctrackType=proctrack/cgroup"
+ elog " TaskPlugin=task/cgroup"
+ einfo
+ ewarn "Paths were created for slurm. Please use these paths in /etc/slurm/slurm.conf:"
+ for folder_path in ${paths[@]}; do
+ ewarn " ${folder_path}"
+ done
+}