diff options
author | Alexey Shvetsov <alexxy@gentoo.org> | 2013-04-03 13:43:25 +0000 |
---|---|---|
committer | Alexey Shvetsov <alexxy@gentoo.org> | 2013-04-03 13:43:25 +0000 |
commit | f21a1237f62a68fc7bec92a25e05dfc8a3d090d8 (patch) | |
tree | dab14134d6db18a9752c6faab20c97df05a568e0 /sys-cluster | |
parent | Version bump, remove previous 5.x version per bug #464192 (diff) | |
download | gentoo-2-f21a1237f62a68fc7bec92a25e05dfc8a3d090d8.tar.gz gentoo-2-f21a1237f62a68fc7bec92a25e05dfc8a3d090d8.tar.bz2 gentoo-2-f21a1237f62a68fc7bec92a25e05dfc8a3d090d8.zip |
Version bump
(Portage version: 2.2.0_alpha170/cvs/Linux x86_64, signed Manifest commit with key F82F92E6)
Diffstat (limited to 'sys-cluster')
-rw-r--r-- | sys-cluster/slurm/ChangeLog | 7 | ||||
-rw-r--r-- | sys-cluster/slurm/slurm-2.5.4.ebuild | 261 |
2 files changed, 267 insertions, 1 deletions
diff --git a/sys-cluster/slurm/ChangeLog b/sys-cluster/slurm/ChangeLog index cacc74b4936c..6203d00c89da 100644 --- a/sys-cluster/slurm/ChangeLog +++ b/sys-cluster/slurm/ChangeLog @@ -1,6 +1,11 @@ # ChangeLog for sys-cluster/slurm # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2 -# $Header: /var/cvsroot/gentoo-x86/sys-cluster/slurm/ChangeLog,v 1.21 2013/01/20 13:13:53 alexxy Exp $ +# $Header: /var/cvsroot/gentoo-x86/sys-cluster/slurm/ChangeLog,v 1.22 2013/04/03 13:43:25 alexxy Exp $ + +*slurm-2.5.4 (03 Apr 2013) + + 03 Apr 2013; Alexey Shvetsov <alexxy@gentoo.org> +slurm-2.5.4.ebuild: + Version bump *slurm-2.5.1 (20 Jan 2013) diff --git a/sys-cluster/slurm/slurm-2.5.4.ebuild b/sys-cluster/slurm/slurm-2.5.4.ebuild new file mode 100644 index 000000000000..24da0062ebb0 --- /dev/null +++ b/sys-cluster/slurm/slurm-2.5.4.ebuild @@ -0,0 +1,261 @@ +# Copyright 1999-2013 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Header: /var/cvsroot/gentoo-x86/sys-cluster/slurm/slurm-2.5.4.ebuild,v 1.1 2013/04/03 13:43:25 alexxy Exp $ + +EAPI=4 + +if [[ ${PV} == *9999* ]]; then + EGIT_REPO_URI="git://github.com/SchedMD/slurm.git" + INHERIT_GIT="git-2" + SRC_URI="" + KEYWORDS="" +else + inherit versionator + if [[ ${PV} == *pre* || ${PV} == *rc* ]]; then + MY_PV=$(replace_version_separator 3 '-0.') # pre-releases or release-candidate + else + MY_PV=$(replace_version_separator 3 '-') # stable releases + fi + MY_P="${PN}-${MY_PV}" + INHERIT_GIT="" + SRC_URI="http://www.schedmd.com/download/total/${MY_P}.tar.bz2" + KEYWORDS="~amd64 ~x86" + S="${WORKDIR}/${MY_P}" +fi + +inherit autotools base eutils pam perl-module user ${INHERIT_GIT} + +DESCRIPTION="SLURM: A Highly Scalable Resource Manager" +HOMEPAGE="http://www.schedmd.com" + +LICENSE="GPL-2" +SLOT="0" +IUSE="lua maui multiple-slurmd +munge mysql pam perl postgres ssl static-libs torque ypbind" + +DEPEND=" + !sys-cluster/torque + !net-analyzer/slurm + !net-analyzer/sinfo + mysql? ( dev-db/mysql ) + munge? ( sys-auth/munge ) + ypbind? ( net-nds/ypbind ) + pam? ( virtual/pam ) + postgres? ( dev-db/postgresql-base ) + ssl? ( dev-libs/openssl ) + lua? ( dev-lang/lua ) + !lua? ( !dev-lang/lua ) + >=sys-apps/hwloc-1.1.1-r1" +RDEPEND="${DEPEND} + dev-libs/libcgroup + maui? ( sys-cluster/maui[slurm] )" + +REQUIRED_USE="torque? ( perl )" + +LIBSLURM_PERL_S="${WORKDIR}/${P}/contribs/perlapi/libslurm/perl" +LIBSLURMDB_PERL_S="${WORKDIR}/${P}/contribs/perlapi/libslurmdb/perl" + +RESTRICT="primaryuri" + +PATCHES=( + "${FILESDIR}/${PN}-2.5.0-nogtk.patch" +) + +src_unpack() { + if [[ ${PV} == *9999* ]]; then + git-2_src_unpack + else + default + fi +} + +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" + # disable sview since it need gtk+ + sed -e '/sview/d' \ + -i configure.ac + sed -e 's:sview::g' \ + -i src/Makefile.am + # apply patches + epatch "${PATCHES[@]}" + elibtoolize + 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 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) \ + $(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" + mkdir -p "${S}/src/db_api/.libs" + touch "${S}/src/api/.libs/libslurm.so" + touch "${S}/src/db_api/.libs/libslurmdb.so" + cd "${LIBSLURM_PERL_S}" + S="${LIBSLURM_PERL_S}" SRC_PREP="no" perl-module_src_configure + cd "${LIBSLURMDB_PERL_S}" + S="${LIBSLURMDB_PERL_S}" SRC_PREP="no" perl-module_src_configure + cd "${S}" + rm -rf "${S}/src/api/.libs" "${S}/src/db_api/.libs" + fi +} + +src_compile() { + default + use pam && emake -C contribs/pam || die + if use perl ; then + cd "${LIBSLURM_PERL_S}" + S="${LIBSLURM_PERL_S}" perl-module_src_compile + cd "${LIBSLURMDB_PERL_S}" + S="${LIBSLURMDB_PERL_S}" perl-module_src_compile + cd "${S}" + fi + if use torque ; then + emake -C contribs/torque || die + fi +} + +src_install() { + default + use pam && emake DESTDIR="${D}" -C contribs/pam install || die + if use perl; then + cd "${LIBSLURM_PERL_S}" + S="${LIBSLURM_PERL_S}" perl-module_src_install + cd "${LIBSLURMDB_PERL_S}" + S="${LIBSLURMDB_PERL_S}" perl-module_src_install + cd "${S}" + fi + if use torque; then + emake DESTDIR="${D}" -C contribs/torque || die + rm -f "${ED}/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/bluegene.conf.example + doins etc/cgroup.conf.example + doins etc/cgroup_allowed_devices_file.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 + einfo + + 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." + einfo + 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" + 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 +} |