summaryrefslogtreecommitdiff
path: root/sys-cluster/slurm
diff options
context:
space:
mode:
authorV3n3RiX <venerix@redcorelinux.org>2018-09-08 10:50:14 +0100
committerV3n3RiX <venerix@redcorelinux.org>2018-09-08 10:50:14 +0100
commit3f71901f8c228f4de570abed1831ce3ee425343e (patch)
treea2dcd300d05ef8a2ec275b44a92a9d85bd3baa24 /sys-cluster/slurm
parent12bb627384ddfd47382b9f1b6464481a58d01ebb (diff)
gentoo resync 08.09.2018
Diffstat (limited to 'sys-cluster/slurm')
-rw-r--r--sys-cluster/slurm/Manifest13
-rw-r--r--sys-cluster/slurm/files/slurm-18.08.0-disable-sview.patch (renamed from sys-cluster/slurm/files/slurm-17.02.11-disable-sview.patch)0
-rw-r--r--sys-cluster/slurm/files/slurm.tmpfiles1
-rw-r--r--sys-cluster/slurm/metadata.xml6
-rw-r--r--sys-cluster/slurm/slurm-17.11.9.ebuild (renamed from sys-cluster/slurm/slurm-17.11.7.ebuild)107
-rw-r--r--sys-cluster/slurm/slurm-18.08.0.ebuild (renamed from sys-cluster/slurm/slurm-17.02.11.ebuild)114
6 files changed, 157 insertions, 84 deletions
diff --git a/sys-cluster/slurm/Manifest b/sys-cluster/slurm/Manifest
index 01d64c65fcb6..7abb36b12b85 100644
--- a/sys-cluster/slurm/Manifest
+++ b/sys-cluster/slurm/Manifest
@@ -1,12 +1,13 @@
AUX logrotate 360 BLAKE2B 36c5ce908a6434f03a3e140cd1fc0bfec50a6fa89d6120061a5a83d3b12d9a6137ae2fa3a83bd36f55f48c79d140f24d6933cda18fc79674e8b758cacc34a948 SHA512 f6edceef15960accbe72ddd34ff34934fa46b6d647c83e0d3a512d2ddc1ae6c60352e377cfa5332fd5cd817689e23680f7384f1b27fc49677b2e671e1bfe86b9
-AUX slurm-17.02.11-disable-sview.patch 2831 BLAKE2B d11df7a1b580f2d1064e5bc5107e257a35e95060f166c971523d24d55f19920c86ed231e88a207ae61c65b83eba33b309b33ed439c0ba09d0b1ea76119708d85 SHA512 3ea30226b721b982ddad78d538c280da78b311d66b0be63087ef606d7f9008731c583e276504b668d8fde74c45ac8aa80babf4d693eca1d274d27dc72479d5e7
AUX slurm-17.11.7-disable-sview.patch 2831 BLAKE2B d11df7a1b580f2d1064e5bc5107e257a35e95060f166c971523d24d55f19920c86ed231e88a207ae61c65b83eba33b309b33ed439c0ba09d0b1ea76119708d85 SHA512 3ea30226b721b982ddad78d538c280da78b311d66b0be63087ef606d7f9008731c583e276504b668d8fde74c45ac8aa80babf4d693eca1d274d27dc72479d5e7
+AUX slurm-18.08.0-disable-sview.patch 2831 BLAKE2B d11df7a1b580f2d1064e5bc5107e257a35e95060f166c971523d24d55f19920c86ed231e88a207ae61c65b83eba33b309b33ed439c0ba09d0b1ea76119708d85 SHA512 3ea30226b721b982ddad78d538c280da78b311d66b0be63087ef606d7f9008731c583e276504b668d8fde74c45ac8aa80babf4d693eca1d274d27dc72479d5e7
AUX slurm.confd 155 BLAKE2B 4f0793808328b88ffa2b32b1accab6c0dfe0b01dc84210fee6a674361ddf9ea7b3f15ccc775c354198577849ab0791d403b153adee476fc7f1237d2177275bab SHA512 e4d21cdb6a427f0beaef0e157202308f9e86a41dea4532ee98b274a5979b5e82ec2ca4ca2996f6cb59045fd8b01e815aaad71673e2011cead788de3d879aa11f
+AUX slurm.tmpfiles 31 BLAKE2B f08dbc53517cc15463be5264505d858fcf1f2196565868d164463a167459082a23eea25fa22edf2987e52c71f953160c12b29cdb5e5f437a3bdc89f1cd8395b5 SHA512 b7f116687e0dee0377b43cbb49f63569088d6f5f9b1514014999b1135b1b4da462e04887851b753161d7b9691436048b692b7697ffee2a4e45daa339a412c93c
AUX slurmctld.initd 1833 BLAKE2B 3cc18daa26fd4b7b5b3dce33aa3536d99ce6af53e64abd6e76045345750a8f6254f702aa3d7e93e8123b95b6a664ea1021fd6bac53d68a2010b4ebd3ee00a4da SHA512 14246262aaf70642237f2ad13194d2bdc64f72b26e34113c2e7d340cf7661c62c79c4f939c61684c98fc5181680c08dbc55807dea0e382a3b2d1e26d0e57ce1c
AUX slurmd.initd 1993 BLAKE2B 820153a8df6a5f1ce0d7db44d6c38170cc6ec7920f8d64743c65aaa65002e4c47c25bd9c3069b6df7feffb24506408aa42c2a67c486f5700f2d61a49fb971ca0 SHA512 f58b68c3fb5e9109b6fa261cbb816ef240f9d1465229ec418f3a2bba9a1bc47ca22bf1386d7014ea62a23d0807d73b263c4a4df86e8c354fcb760af3cc9d0250
AUX slurmdbd.initd 1709 BLAKE2B 12aa8ecb83991a4af8dbbd124d46d84c2c8b3c60756a42f9cb87df84dafb572553348e00eb720699a5d58020ca3fdf28a3357eb2903341a9d635ca4b399f5f8a SHA512 323852ab3ae1cbec55c51e54f7f7acc2e60a694e46a91454638b7f167f5dc0c1ecdba8bdb82641aee9ad303558c445d7551e774a6b470da279173b5c44123911
-DIST slurm-17.02.11.tar.bz2 6056931 BLAKE2B bce33aab9705dd95b60c42aba032d3f63b69c450e6093f10ac2cfab2b6028451f5659d6263aa2cafe76eb5f91b484e95d3dea388f32fd7472b0edd5ff33f4afe SHA512 f93f6afc0f6f37ba518644c52ff318ff9f3624a8326e795957f986c11ec72f1ee0dead1c7d49a1fb67df11a2f792c4ecc4f647bd3f824c8bfee1e2de0261f64c
-DIST slurm-17.11.7.tar.bz2 6249399 BLAKE2B 1a57996440611e1976ac382c1be845649baf930913ad52c8afeecc32e1037115d9477acc4a9ab936c09b60c50d72e3f0398ea3c4ee9490d5057f98ce5990d52e SHA512 1761bad0b355f7d76021f9c1023cff4c315ec727fab8045f6aca4d096cdba3ec44a52942e007877d40c396d791537eb7e61a8c2f2538bdcb3854e40cee9e73ea
-EBUILD slurm-17.02.11.ebuild 7102 BLAKE2B 45422562c91e09e0624ed8cfa18ceafe372257ecf9ca7bfd7fa4180ca594f3ebaab2567d3459106b86d41abf366789f47d9b77fd7f87dbe38ffa9646bf2895a7 SHA512 8c71764ba536aacd6975a2e8555a09ad3ab42fa27a101c4e094b6aaddd1689c825717bf7530b1291e0039fce4c0d17300341833ae9dc836dbc7a461b81f08705
-EBUILD slurm-17.11.7.ebuild 7377 BLAKE2B ea44fe4238c4ade42e4d3d6fd3bbb4f8e050622cd61dc6c4a6c89a31bca535a92f463be3feeb319803ae214e6549e5f07cd4175d1115198ab5ccfa86b3bb39af SHA512 294a2a1d4fd3af5ccfda7d7eb998c1be491e6505802175b1954a9764b664f91ca54f8b7d09e23286cbccb05937a8b51d79d2859903526957137f73d5597eac27
-MISC metadata.xml 563 BLAKE2B 26101a6dbee3ad181afe3c7b072a747c1640ca8d78ab3c16380eb3a636937c3f6b9b8469dfcb3bfb369e3f4ca8ee609f3666668976b36d6ce77657b14227a2d4 SHA512 31d52fcdcd9526f8dc9ac00d173986943303b74ff6c554f6be30f2c059a0e1cc54330871ec132c451ab6f23ac062b3a9161293c13f3fffa13343f964d6cb959b
+DIST slurm-17.11.9.tar.bz2 6258698 BLAKE2B 53f724dfdcaec4117eedcb187b0bfced41471fff667ea3f3452b35d80ed039c14c31a75672c304816af538861fccd0dcf37c0decd32521299db2162a30b8bba0 SHA512 281bda70695011bbc30f56738049b2b11866d6c266c6aa5590ffcbaaa748a02fc76cd2d03834cd90f0e1f4160ee0fb3c35a7c2e53819f5e21445748d4d437e6b
+DIST slurm-18.08.0.tar.bz2 6100548 BLAKE2B 108a64c05cf704288b2ed3627b92edb6402c41aec9866b06d7fdf18b9e0e5f5e815a7e7ded5f8d5c4ab7e9ad46368b5bc54ac52902413fc8a9395c665f11e2ed SHA512 e0da38e2b8b96433c244bcad41e7dd0da56e9bf3de8a64eafd5a8d89ffb8400a3aebb2a54ec28f6c2e9804d40945bb8b53b2a9e3ac688a1d8a2a81ee71b4b11d
+EBUILD slurm-17.11.9.ebuild 8334 BLAKE2B 0b83f0d3587dab4d094c10aab1565fe8ba66551323512a3f1ba4985a67ebdc09e5f137d3b61502687090f2b5add7154f3406c01d698757c4ad8b15e9746d2e47 SHA512 d4d38d06d0ac2036c757e7d37a18d94df079cca7389ee9807ea4a7f471016afeadd4e43042f0c517e2d6f428db31bb167ff67eb6006be553047b607a933ec729
+EBUILD slurm-18.08.0.ebuild 8334 BLAKE2B 0b83f0d3587dab4d094c10aab1565fe8ba66551323512a3f1ba4985a67ebdc09e5f137d3b61502687090f2b5add7154f3406c01d698757c4ad8b15e9746d2e47 SHA512 d4d38d06d0ac2036c757e7d37a18d94df079cca7389ee9807ea4a7f471016afeadd4e43042f0c517e2d6f428db31bb167ff67eb6006be553047b607a933ec729
+MISC metadata.xml 924 BLAKE2B 677aa97b18c363554f12f5b1433933b420452ae82ab170523893132d42ce06b20e18e3b5a6650d9154630d2d3ed6d37bbdb8e31adf33e53fdfd8d5b5ff5d646c SHA512 68823ac5369c0aa934352fc2fb06115e7458ea8773dbd6aaa11380b38c0abc73d7a158a26c9e510355dd3d0e92ad7e05751350c084a47e4413c0504e680fcc5b
diff --git a/sys-cluster/slurm/files/slurm-17.02.11-disable-sview.patch b/sys-cluster/slurm/files/slurm-18.08.0-disable-sview.patch
index f7e2c5b26739..f7e2c5b26739 100644
--- a/sys-cluster/slurm/files/slurm-17.02.11-disable-sview.patch
+++ b/sys-cluster/slurm/files/slurm-18.08.0-disable-sview.patch
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/metadata.xml b/sys-cluster/slurm/metadata.xml
index 3ea81217548b..433eeb9e04cc 100644
--- a/sys-cluster/slurm/metadata.xml
+++ b/sys-cluster/slurm/metadata.xml
@@ -9,8 +9,14 @@
<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="netloc">Add support for netloc (amd64 only)</flag>
+ <flag name="numa">Add NUMA awareness</flag>
+ <flag name="ofed">Add Infiniband support via ofed</flag>
<flag name="torque">Enable perl scripts that emulates pbs (qstat, qsub etc.)</flag>
</use>
</pkgmetadata>
diff --git a/sys-cluster/slurm/slurm-17.11.7.ebuild b/sys-cluster/slurm/slurm-17.11.9.ebuild
index c0310a53cc36..837a4d32c760 100644
--- a/sys-cluster/slurm/slurm-17.11.7.ebuild
+++ b/sys-cluster/slurm/slurm-17.11.9.ebuild
@@ -8,12 +8,13 @@ if [[ ${PV} == *9999* ]]; then
INHERIT_GIT="git-r3"
SRC_URI=""
KEYWORDS=""
+ MY_P="${P}"
else
- inherit versionator
+ inherit eapi7-ver
if [[ ${PV} == *pre* || ${PV} == *rc* ]]; then
- MY_PV=$(replace_version_separator 3 '-0.') # pre-releases or release-candidate
+ MY_PV=$(ver_rs '-0.') # pre-releases or release-candidate
else
- MY_PV=$(replace_version_separator 3 '-') # stable releases
+ MY_PV=$(ver_rs 3 '-') # stable releases
fi
MY_P="${PN}-${MY_PV}"
INHERIT_GIT=""
@@ -22,35 +23,46 @@ else
S="${WORKDIR}/${MY_P}"
fi
-inherit autotools bash-completion-r1 eutils pam perl-module prefix toolchain-funcs user ${INHERIT_GIT}
+inherit autotools bash-completion-r1 eutils pam perl-module prefix toolchain-funcs user systemd ${INHERIT_GIT}
DESCRIPTION="A Highly Scalable Resource Manager"
HOMEPAGE="https://www.schedmd.com"
LICENSE="GPL-2"
SLOT="0"
-IUSE="debug lua multiple-slurmd +munge mysql pam perl ssl static-libs torque X"
+IUSE="debug hdf5 html ipmi json lua multiple-slurmd +munge mysql netloc numa ofed pam perl ssl static-libs torque X"
-DEPEND="
+CDEPEND="
!sys-cluster/torque
!net-analyzer/slurm
!net-analyzer/sinfo
- sys-cluster/pmix[-pmi]
+ || ( sys-cluster/pmix[-pmi] >=sys-cluster/openmpi-2.0.0 )
mysql? ( virtual/mysql )
munge? ( sys-auth/munge )
pam? ( virtual/pam )
ssl? ( dev-libs/openssl:0= )
lua? ( dev-lang/lua:0= )
!lua? ( !dev-lang/lua )
+ ipmi? ( sys-libs/freeipmi )
+ json? ( dev-libs/json-c:= )
+ amd64? ( netloc? ( sys-apps/netloc ) )
+ hdf5? ( sci-libs/hdf5:= )
+ numa? ( sys-process/numactl )
+ ofed? ( sys-fabric/ofed )
X? ( net-libs/libssh2 )
- >=sys-apps/hwloc-1.1.1-r1"
-RDEPEND="${DEPEND}
+ >=sys-apps/hwloc-1.1.1-r1
+ sys-libs/ncurses:0=
+ app-arch/lz4:0=
+ sys-libs/readline:0="
+DEPEND="${CDEPEND}
+ html? ( sys-apps/man2html )"
+RDEPEND="${CDEPEND}
dev-libs/libcgroup"
REQUIRED_USE="torque? ( perl )"
-LIBSLURM_PERL_S="${WORKDIR}/${P}/contribs/perlapi/libslurm/perl"
-LIBSLURMDB_PERL_S="${WORKDIR}/${P}/contribs/perlapi/libslurmdb/perl"
+LIBSLURM_PERL_S="${WORKDIR}/${MY_P}/contribs/perlapi/libslurm/perl"
+LIBSLURMDB_PERL_S="${WORKDIR}/${MY_P}/contribs/perlapi/libslurmdb/perl"
RESTRICT="primaryuri test"
@@ -60,7 +72,7 @@ PATCHES=(
src_unpack() {
if [[ ${PV} == *9999* ]]; then
- git-2_src_unpack
+ git-r3_src_unpack
else
default
fi
@@ -76,10 +88,13 @@ src_prepare() {
default
# pids should go to /var/run/slurm
- sed -e "s:/var/run/slurmctld.pid:${EPREFIX}/var/run/slurm/slurmctld.pid:g" \
- -e "s:/var/run/slurmd.pid:${EPREFIX}/var/run/slurm/slurmd.pid:g" \
+ sed -e "s:/var/run/slurmctld.pid:${EPREFIX}/run/slurm/slurmctld.pid:g" \
+ -e "s:/var/run/slurmd.pid:${EPREFIX}/run/slurm/slurmd.pid:g" \
-i "${S}/etc/slurm.conf.example" \
|| die "Can't sed for /var/run/slurmctld.pid"
+ sed -i "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"
# also state dirs are in /var/spool/slurm
sed -e "s:StateSaveLocation=*.:StateSaveLocation=${EPREFIX}/var/spool/slurm:g" \
-e "s:SlurmdSpoolDir=*.:SlurmdSpoolDir=${EPREFIX}/var/spool/slurm/slurmd:g" \
@@ -89,26 +104,35 @@ src_prepare() {
sed -e 's:/tmp:/var/tmp:g' \
-i "${S}/etc/slurm.conf.example" \
|| die "Can't sed for StateSaveLocation=*./tmp"
+ # gentooify systemd services
+ sed -e 's:sysconfig/.*:conf.d/slurm:g' \
+ -e 's:var/run/:run/slurm/:g' \
+ -i "${S}/etc"/*.service.in \
+ || die "Can't sed systemd services for sysconfig or var/run/"
hprefixify auxdir/{ax_check_zlib,x_ac_{lz4,ofed,munge}}.m4
eautoreconf
}
src_configure() {
- local myconf=(
- --sysconfdir="${EPREFIX}/etc/${PN}"
- --with-hwloc="${EPREFIX}/usr"
- --docdir="${EPREFIX}/usr/share/doc/${P}"
- --htmldir="${EPREFIX}/usr/share/doc/${P}"
- )
use debug || myconf+=( --disable-debug )
+ local myconf=(
+ --sysconfdir="${EPREFIX}/etc/${PN}"
+ --with-hwloc="${EPREFIX}/usr"
+ --docdir="${EPREFIX}/usr/share/doc/${P}"
+ --htmldir="${EPREFIX}/usr/share/doc/${P}"
+ )
use pam && myconf+=( --with-pam_dir=$(getpam_mod_dir) )
use mysql || myconf+=( --without-mysql_config )
+ use amd64 && myconf+=( $(use_with netloc) )
econf "${myconf[@]}" \
$(use_enable pam) \
$(use_enable X x11) \
$(use_with ssl) \
$(use_with munge) \
+ $(use_with json) \
+ $(use_with hdf5) \
+ $(use_with ofed) \
$(use_enable static-libs static) \
$(use_enable multiple-slurmd)
@@ -173,20 +197,28 @@ src_install() {
exeinto /etc/slurm
doexe \
etc/slurm.epilog.clean
+ keepdir /etc/slurm/layouts.d
+ insinto /etc/slurm/layouts.d
+ newins etc/layouts.d.power.conf.example power.conf.example
+ newins etc/layouts.d.power_cpufreq.conf.example power_cpufreq.conf.example
+ newins etc/layouts.d.unit.conf.example unit.conf.example
# 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
+ 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
+ # 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
+ systemd_newtmpfilesd "${FILESDIR}/slurm.tmpfiles" slurm.conf
+ systemd_dounit etc/slurmd.service etc/slurmctld.service etc/slurmdbd.service
}
pkg_preinst() {
@@ -197,8 +229,8 @@ pkg_preinst() {
create_folders_and_fix_permissions() {
einfo "Fixing permissions in ${@}"
- mkdir -p ${@}
- chown -R ${PN}:${PN} ${@}
+ mkdir -p ${@} || die
+ chown -R ${PN}:${PN} ${@} || die
}
pkg_postinst() {
@@ -207,11 +239,12 @@ pkg_postinst() {
"${EROOT}"var/${PN}
"${EROOT}"var/spool/${PN}/slurmd
"${EROOT}"var/spool/${PN}
- "${EROOT}"var/run/${PN}
"${EROOT}"var/log/${PN}
/var/tmp/${PN}/${PN}d
/var/tmp/${PN}
- )
+ /run/${PN}
+ )
+ local folder_path
for folder_path in ${paths[@]}; do
create_folders_and_fix_permissions $folder_path
done
@@ -223,16 +256,12 @@ pkg_postinst() {
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 " General setup --->"
- elog " [*] Control Group support --->"
- elog " [*] Freezer cgroup subsystem"
- elog " [*] Device controller for cgroups"
- elog " [*] Cpuset support"
- elog " [*] Simple CPU accounting cgroup subsystem"
- elog " [*] Resource counters"
- elog " [*] Memory Resource Controller for Control Groups"
- elog " [*] Group CPU scheduler --->"
- elog " [*] Group scheduling for SCHED_OTHER"
+ 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"
diff --git a/sys-cluster/slurm/slurm-17.02.11.ebuild b/sys-cluster/slurm/slurm-18.08.0.ebuild
index b52290725ed8..837a4d32c760 100644
--- a/sys-cluster/slurm/slurm-17.02.11.ebuild
+++ b/sys-cluster/slurm/slurm-18.08.0.ebuild
@@ -8,48 +8,61 @@ if [[ ${PV} == *9999* ]]; then
INHERIT_GIT="git-r3"
SRC_URI=""
KEYWORDS=""
+ MY_P="${P}"
else
- inherit versionator
+ inherit eapi7-ver
if [[ ${PV} == *pre* || ${PV} == *rc* ]]; then
- MY_PV=$(replace_version_separator 3 '-0.') # pre-releases or release-candidate
+ MY_PV=$(ver_rs '-0.') # pre-releases or release-candidate
else
- MY_PV=$(replace_version_separator 3 '-') # stable releases
+ MY_PV=$(ver_rs 3 '-') # stable releases
fi
MY_P="${PN}-${MY_PV}"
INHERIT_GIT=""
- SRC_URI="https://www.schedmd.com/download/latest/${MY_P}.tar.bz2"
+ SRC_URI="https://download.schedmd.com/slurm/${MY_P}.tar.bz2"
KEYWORDS="~amd64 ~x86"
S="${WORKDIR}/${MY_P}"
fi
-inherit autotools eutils pam perl-module prefix toolchain-funcs user ${INHERIT_GIT}
+inherit autotools bash-completion-r1 eutils pam perl-module prefix toolchain-funcs user systemd ${INHERIT_GIT}
DESCRIPTION="A Highly Scalable Resource Manager"
HOMEPAGE="https://www.schedmd.com"
LICENSE="GPL-2"
SLOT="0"
-IUSE="debug lua multiple-slurmd +munge mysql pam perl ssl static-libs torque"
+IUSE="debug hdf5 html ipmi json lua multiple-slurmd +munge mysql netloc numa ofed pam perl ssl static-libs torque X"
-DEPEND="
+CDEPEND="
!sys-cluster/torque
!net-analyzer/slurm
!net-analyzer/sinfo
- !sys-cluster/pmix[pmi]
+ || ( sys-cluster/pmix[-pmi] >=sys-cluster/openmpi-2.0.0 )
mysql? ( virtual/mysql )
munge? ( sys-auth/munge )
pam? ( virtual/pam )
ssl? ( dev-libs/openssl:0= )
lua? ( dev-lang/lua:0= )
!lua? ( !dev-lang/lua )
- >=sys-apps/hwloc-1.1.1-r1"
-RDEPEND="${DEPEND}
+ ipmi? ( sys-libs/freeipmi )
+ json? ( dev-libs/json-c:= )
+ amd64? ( netloc? ( sys-apps/netloc ) )
+ hdf5? ( sci-libs/hdf5:= )
+ numa? ( sys-process/numactl )
+ ofed? ( sys-fabric/ofed )
+ X? ( net-libs/libssh2 )
+ >=sys-apps/hwloc-1.1.1-r1
+ sys-libs/ncurses:0=
+ app-arch/lz4:0=
+ sys-libs/readline:0="
+DEPEND="${CDEPEND}
+ html? ( sys-apps/man2html )"
+RDEPEND="${CDEPEND}
dev-libs/libcgroup"
REQUIRED_USE="torque? ( perl )"
-LIBSLURM_PERL_S="${WORKDIR}/${P}/contribs/perlapi/libslurm/perl"
-LIBSLURMDB_PERL_S="${WORKDIR}/${P}/contribs/perlapi/libslurmdb/perl"
+LIBSLURM_PERL_S="${WORKDIR}/${MY_P}/contribs/perlapi/libslurm/perl"
+LIBSLURMDB_PERL_S="${WORKDIR}/${MY_P}/contribs/perlapi/libslurmdb/perl"
RESTRICT="primaryuri test"
@@ -59,7 +72,7 @@ PATCHES=(
src_unpack() {
if [[ ${PV} == *9999* ]]; then
- git-2_src_unpack
+ git-r3_src_unpack
else
default
fi
@@ -75,10 +88,13 @@ src_prepare() {
default
# pids should go to /var/run/slurm
- sed -e "s:/var/run/slurmctld.pid:${EPREFIX}/var/run/slurm/slurmctld.pid:g" \
- -e "s:/var/run/slurmd.pid:${EPREFIX}/var/run/slurm/slurmd.pid:g" \
+ sed -e "s:/var/run/slurmctld.pid:${EPREFIX}/run/slurm/slurmctld.pid:g" \
+ -e "s:/var/run/slurmd.pid:${EPREFIX}/run/slurm/slurmd.pid:g" \
-i "${S}/etc/slurm.conf.example" \
|| die "Can't sed for /var/run/slurmctld.pid"
+ sed -i "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"
# also state dirs are in /var/spool/slurm
sed -e "s:StateSaveLocation=*.:StateSaveLocation=${EPREFIX}/var/spool/slurm:g" \
-e "s:SlurmdSpoolDir=*.:SlurmdSpoolDir=${EPREFIX}/var/spool/slurm/slurmd:g" \
@@ -88,25 +104,35 @@ src_prepare() {
sed -e 's:/tmp:/var/tmp:g' \
-i "${S}/etc/slurm.conf.example" \
|| die "Can't sed for StateSaveLocation=*./tmp"
+ # gentooify systemd services
+ sed -e 's:sysconfig/.*:conf.d/slurm:g' \
+ -e 's:var/run/:run/slurm/:g' \
+ -i "${S}/etc"/*.service.in \
+ || die "Can't sed systemd services for sysconfig or var/run/"
hprefixify auxdir/{ax_check_zlib,x_ac_{lz4,ofed,munge}}.m4
eautoreconf
}
src_configure() {
- local myconf=(
- --sysconfdir="${EPREFIX}/etc/${PN}"
- --with-hwloc="${EPREFIX}/usr"
- --docdir="${EPREFIX}/usr/share/doc/${P}"
- --htmldir="${EPREFIX}/usr/share/doc/${P}"
- )
use debug || myconf+=( --disable-debug )
+ local myconf=(
+ --sysconfdir="${EPREFIX}/etc/${PN}"
+ --with-hwloc="${EPREFIX}/usr"
+ --docdir="${EPREFIX}/usr/share/doc/${P}"
+ --htmldir="${EPREFIX}/usr/share/doc/${P}"
+ )
use pam && myconf+=( --with-pam_dir=$(getpam_mod_dir) )
use mysql || myconf+=( --without-mysql_config )
+ use amd64 && myconf+=( $(use_with netloc) )
econf "${myconf[@]}" \
$(use_enable pam) \
+ $(use_enable X x11) \
$(use_with ssl) \
$(use_with munge) \
+ $(use_with json) \
+ $(use_with hdf5) \
+ $(use_with ofed) \
$(use_enable static-libs static) \
$(use_enable multiple-slurmd)
@@ -171,15 +197,28 @@ src_install() {
exeinto /etc/slurm
doexe \
etc/slurm.epilog.clean
+ keepdir /etc/slurm/layouts.d
+ insinto /etc/slurm/layouts.d
+ newins etc/layouts.d.power.conf.example power.conf.example
+ newins etc/layouts.d.power_cpufreq.conf.example power_cpufreq.conf.example
+ newins etc/layouts.d.unit.conf.example unit.conf.example
# 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
+ 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
+ # 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
+ systemd_newtmpfilesd "${FILESDIR}/slurm.tmpfiles" slurm.conf
+ systemd_dounit etc/slurmd.service etc/slurmctld.service etc/slurmdbd.service
}
pkg_preinst() {
@@ -190,8 +229,8 @@ pkg_preinst() {
create_folders_and_fix_permissions() {
einfo "Fixing permissions in ${@}"
- mkdir -p ${@}
- chown -R ${PN}:${PN} ${@}
+ mkdir -p ${@} || die
+ chown -R ${PN}:${PN} ${@} || die
}
pkg_postinst() {
@@ -200,11 +239,12 @@ pkg_postinst() {
"${EROOT}"var/${PN}
"${EROOT}"var/spool/${PN}/slurmd
"${EROOT}"var/spool/${PN}
- "${EROOT}"var/run/${PN}
"${EROOT}"var/log/${PN}
/var/tmp/${PN}/${PN}d
/var/tmp/${PN}
- )
+ /run/${PN}
+ )
+ local folder_path
for folder_path in ${paths[@]}; do
create_folders_and_fix_permissions $folder_path
done
@@ -216,16 +256,12 @@ pkg_postinst() {
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 " General setup --->"
- elog " [*] Control Group support --->"
- elog " [*] Freezer cgroup subsystem"
- elog " [*] Device controller for cgroups"
- elog " [*] Cpuset support"
- elog " [*] Simple CPU accounting cgroup subsystem"
- elog " [*] Resource counters"
- elog " [*] Memory Resource Controller for Control Groups"
- elog " [*] Group CPU scheduler --->"
- elog " [*] Group scheduling for SCHED_OTHER"
+ 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"