Skip to content

Commit

Permalink
Bumped slurm 2.3.4
Browse files Browse the repository at this point in the history
  • Loading branch information
nbigaouette committed Apr 12, 2012
1 parent 1ba7332 commit b64aebd
Show file tree
Hide file tree
Showing 2 changed files with 194 additions and 0 deletions.
2 changes: 2 additions & 0 deletions sys-cluster/slurm/Manifest
Expand Up @@ -9,6 +9,7 @@ DIST slurm-2.3.0-2.tar.bz2 4981842 RMD160 7e06b62ac6bccb3642244c9e2a471ebb826fac
DIST slurm-2.3.1.tar.bz2 5070142 RMD160 556580e96d5e0eff107f7d40e2a032cfe91e0863 SHA1 5716637c35c1576528f1bdc9edaa28aaec3d78ce SHA256 30fd31b016b26f9e839c1d5639c6498be6ab0f452762eb7b1763626464c080e2
DIST slurm-2.3.2.tar.bz2 5077133 RMD160 39c9c23efd11a7039bdaa58b7440d03cb7a7d74c SHA1 4ec9738ba7f2e7d02f92253695f2f1611b2f27ae SHA256 450dfb8df0c6a797e00f1b465bb645d9b9885e115caa84b8051284af7129ef07
DIST slurm-2.3.3.tar.bz2 5079379 RMD160 9a6584a23afbadbf6e307ea9efa583478475e53a SHA1 d307747c1ab3ba5f8908e4ac466e4f094255f5dd SHA256 75baa014e2ca569644c37b5cd5c4c599aa57a6fbb73c81b1272a00678050e3d2
DIST slurm-2.3.4.tar.bz2 5082579 RMD160 5dbad2f6b2535366ee47fad0b6a192a4c38881d6 SHA1 198ef06298f6f46edad097a0b6e7be63cff61914 SHA256 2a221316077c4b70df42042d1c94bc552b38060fe2b775bf2827543eef63aeb4
DIST slurm-2.4.0-0.pre3.tar.bz2 5109388 RMD160 698ab5cdb88330572306a5642045abe4424d92b9 SHA1 a095e86af2f0d6ff662f4f293d496d296efa2f4f SHA256 7a1ffd4bd7260a6d8c0e9577eede1325d11f46e94d88064d02541d85de48a509
EBUILD slurm-2.2.3.ebuild 1280 RMD160 c24564ae834e985b34d37652f8f3b88694ec2e76 SHA1 2cf7b3ef45c34ccfcd63152cc6d8460bbd3ca3ed SHA256 a0aa5337f53ef129bac33de715f0db86e38910f60af94a56cec7a34053204748
EBUILD slurm-2.2.7-r2.ebuild 4720 RMD160 5920a28a617eae739df29a4245c239fffd3929a3 SHA1 c2eea4846fe3e3d48b732cd6d3cd541ebc6c09a7 SHA256 b41ee39dd1ddc116e6a307b2568f03b8456e95e77d6f8006d16cbc0a1b0b9141
Expand All @@ -21,5 +22,6 @@ EBUILD slurm-2.3.2-r1.ebuild 5366 RMD160 fcc6c64e5076e156c02a53ac846cd4689182487
EBUILD slurm-2.3.2-r2.ebuild 6827 RMD160 43c261f43670c3bd3bbb12feb5482bd77ce7e1eb SHA1 b3bd7c72d31d001385232dd8c969ede146bd7910 SHA256 3cbe3e85b46d12460c43c061654a2b8530ee2070486d7f0a3cc5f276796a553c
EBUILD slurm-2.3.2.ebuild 5009 RMD160 3c4d5dc3ad288083e57aeffbc4d7b59e571060d7 SHA1 e3dc83161b295419e771ceeb0edbf00302ad2c24 SHA256 f4ca418469218ed633d5b914342614f4bfd4477589f412268352475756798c71
EBUILD slurm-2.3.3.ebuild 6953 RMD160 774e6d75d47ddc65f985b5dbacb624354fb178c4 SHA1 f1ee275176dc9212f5ce5fdc23325f909e65aa28 SHA256 8710e2bbf4d4b8de4f5ca548a180bd01976fdba73556893e7a4af031fddde625
EBUILD slurm-2.3.4.ebuild 6953 RMD160 774e6d75d47ddc65f985b5dbacb624354fb178c4 SHA1 f1ee275176dc9212f5ce5fdc23325f909e65aa28 SHA256 8710e2bbf4d4b8de4f5ca548a180bd01976fdba73556893e7a4af031fddde625
EBUILD slurm-2.4.0_pre3.ebuild 6921 RMD160 0a23db92806016603734e5d8b8e3ca91148ab9fe SHA1 c1e2d064131c8776a21da112e054dead5f5ae2ae SHA256 cf210443d2daa431ebf5a44021499f862cb6a592d9d2264841f8fc31887b4422
EBUILD slurm-9999.ebuild 6710 RMD160 0918dca35dc58bc71add721d5fc766d02923201f SHA1 39793fe48e6baf5db211be134287b36ec81d6687 SHA256 95f97c1b2d91c40dedf4f2a9f5536a17d7744f17fab99e32634774c0201e045e
192 changes: 192 additions & 0 deletions sys-cluster/slurm/slurm-2.3.4.ebuild
@@ -0,0 +1,192 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $

RESTRICT="primaryuri"

EAPI=4
inherit eutils versionator pam

MY_PV=$(replace_version_separator 3 '-') # stable releases
#MY_PV=$(replace_version_separator 3 '-0.') # pre-releases
MY_P="${PN}-${MY_PV}"
MY_branch="latest"
#MY_branch="development"


DESCRIPTION="SLURM: A Highly Scalable Resource Manager"
HOMEPAGE="https://computing.llnl.gov/linux/slurm/"
SRC_URI="http://www.schedmd.com/download/${MY_branch}/${MY_P}.tar.bz2"

LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE="maui +munge mysql pam postgres ssl static-libs ypbind"

DEPEND="
!sys-cluster/torque
!net-analyzer/slurm
mysql? ( dev-db/mysql )
munge? ( sys-auth/munge )
ypbind? ( net-nds/ypbind )
pam? ( virtual/pam )
postgres? ( dev-db/postgresql-base )
ssl? ( dev-libs/openssl )
>=sys-apps/hwloc-1.1.1-r1"
RDEPEND="${DEPEND}
maui? ( sys-cluster/maui[slurm] )"


S="${WORKDIR}/${MY_P}"

pkg_setup() {
enewgroup slurm 500
enewuser slurm 500 -1 /var/spool/slurm slurm
}

src_prepare() {
# Gentoo uses /sys/fs/cgroup instead of /cgroup
# FIXME: Can the "^/cgroup" and "\([ =\"]\)/cgroup" patterns be merged?
sed \
-e 's|\([ =\"]\)/cgroup|\1/sys/fs/cgroup|g' \
-e "s|^/cgroup|/sys/fs/cgroup|g" \
-i "${S}/doc/man/man5/cgroup.conf.5" \
-i "${S}/etc/cgroup.release_common.example" \
-i "${S}/src/common/xcgroup_read_config.c" \
|| die "Can't sed /cgroup for /sys/fs/cgroup"
# and pids should go to /var/run/slurm
sed -e 's:/var/run/slurmctld.pid:/var/run/slurm/slurmctld.pid:g' \
-e 's:/var/run/slurmd.pid:/var/run/slurm/slurmd.pid:g' \
-i "${S}/etc/slurm.conf.example" \
|| die "Can't sed for /var/run/slurmctld.pid"
# also state dirs are in /var/spool/slurm
sed -e 's:StateSaveLocation=*.:StateSaveLocation=/var/spool/slurm:g' \
-e 's:SlurmdSpoolDir=*.:SlurmdSpoolDir=/var/spool/slurm/slurmd:g' \
-i "${S}/etc/slurm.conf.example" \
|| die "Can't sed ${S}/etc/slurm.conf.example for StateSaveLocation=*. or SlurmdSpoolDir=*"
# and tmp should go to /var/tmp/slurm
sed -e 's:/tmp:/var/tmp:g' \
-i "${S}/etc/slurm.conf.example" \
|| die "Can't sed for StateSaveLocation=*./tmp"
}

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 pam && myconf+=( --with-pam_dir=$(getpam_mod_dir) )
use mysql || myconf+=( --without-mysql_config )
use postgres || myconf+=( --without-pg_config )
econf "${myconf[@]}" \
$(use_enable pam) \
$(use_with ssl) \
$(use_with munge) \
$(use_enable static-libs static)

# --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
}

src_compile() {
default
use pam && emake -C contribs/pam || die
}

src_install() {
default
emake DESTDIR="${D}" -C contribs/torque install || die
use pam && emake DESTDIR="${D}" -C contribs/pam install || die
use static-libs || find "${ED}" -name '*.la' -exec rm {} +
# we dont need it
rm "${ED}/usr/bin/mpiexec" || die
# install sample configs
keepdir /etc/slurm
keepdir /var/log/slurm
keepdir /var/spool/slurm
keepdir /var/run/slurm
insinto /etc/slurm
doins etc/cgroup.conf.example
doins etc/federation.conf.example
doins etc/slurm.conf.example
doins etc/slurmdbd.conf.example
exeinto /etc/slurm
doexe etc/cgroup.release_common.example
doexe etc/slurm.epilog.clean
# install init.d files
newinitd "${FILESDIR}/slurmd.initd" slurmd
newinitd "${FILESDIR}/slurmctld.initd" slurmctld
newinitd "${FILESDIR}/slurmdbd.initd" slurmdbd
# install conf.d files
newconfd "${FILESDIR}/slurm.confd" slurm

# Install logrotate file
insinto /etc/logrotate.d
newins "${FILESDIR}/logrotate" slurm || die
# cgroups support
exeinto /etc/slurm/cgroup
doexe etc/cgroup.release_common.example
mv ${D}/etc/slurm/cgroup/cgroup.release_common.example ${D}/etc/slurm/cgroup/release_common || die "Can't move cgroup.release_common.example"
ln -s release_common ${D}/etc/slurm/cgroup/release_cpuset || die "Can't create symbolic link release_cpuset"
ln -s release_common ${D}/etc/slurm/cgroup/release_devices || die "Can't create symbolic link release_devices"
ln -s release_common ${D}/etc/slurm/cgroup/release_freezer || die "Can't create symbolic link release_freezer"
}

pkg_preinst() {
if use munge; then
sed -i 's,\(SLURM_USE_MUNGE=\).*,\11,' "${D}"etc/conf.d/slurm || die
fi
if use ypbind; then
sed -i 's,\(SLURM_USE_YPBIND=\).*,\11,' "${D}"etc/conf.d/slurm || die
fi
}

create_folders_and_fix_permissions() {
einfo "Fixing permissions in ${@}"
mkdir -p ${@}
chown -R ${PN}:${PN} ${@}
}

pkg_postinst() {
paths=(/var/${PN}/checkpoint
/var/${PN}
/var/spool/${PN}/slurmd
/var/spool/${PN}
/var/run/${PN}
/var/log/${PN}
/var/tmp/${PN}/${PN}d
/var/tmp/${PN})
for folder_path in ${paths[@]}; do
create_folders_and_fix_permissions $folder_path
done
echo

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 http://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 "Then, set these options in /etc/slurm/slurm.conf:"
elog " ProctrackType=proctrack/cgroup"
elog " TaskPlugin=task/cgroup"
echo
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
}

0 comments on commit b64aebd

Please sign in to comment.