From 4f2d7949f03e1c198bc888f2d05f421d35c57e21 Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Mon, 9 Oct 2017 18:53:29 +0100 Subject: reinit the tree, so we can have metadata --- sys-cluster/slurm/files/logrotate | 20 +++++ .../slurm/files/slurm-16.05.2-disable-sview.patch | 69 +++++++++++++++ .../slurm/files/slurm-16.05.2-sysmacros.patch | 34 ++++++++ .../slurm/files/slurm-17.02.6-disable-sview.patch | 99 ++++++++++++++++++++++ .../slurm/files/slurm-17.02.6-glibc-2.25.patch | 53 ++++++++++++ sys-cluster/slurm/files/slurm.confd | 6 ++ sys-cluster/slurm/files/slurmctld.initd | 68 +++++++++++++++ sys-cluster/slurm/files/slurmd.initd | 71 ++++++++++++++++ sys-cluster/slurm/files/slurmdbd.initd | 66 +++++++++++++++ 9 files changed, 486 insertions(+) create mode 100644 sys-cluster/slurm/files/logrotate create mode 100644 sys-cluster/slurm/files/slurm-16.05.2-disable-sview.patch create mode 100644 sys-cluster/slurm/files/slurm-16.05.2-sysmacros.patch create mode 100644 sys-cluster/slurm/files/slurm-17.02.6-disable-sview.patch create mode 100644 sys-cluster/slurm/files/slurm-17.02.6-glibc-2.25.patch create mode 100644 sys-cluster/slurm/files/slurm.confd create mode 100644 sys-cluster/slurm/files/slurmctld.initd create mode 100644 sys-cluster/slurm/files/slurmd.initd create mode 100644 sys-cluster/slurm/files/slurmdbd.initd (limited to 'sys-cluster/slurm/files') 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-16.05.2-disable-sview.patch b/sys-cluster/slurm/files/slurm-16.05.2-disable-sview.patch new file mode 100644 index 000000000000..1e4a5b4fae3a --- /dev/null +++ b/sys-cluster/slurm/files/slurm-16.05.2-disable-sview.patch @@ -0,0 +1,69 @@ +diff -urN slurm-16.05.2.orig/configure.ac slurm-16.05.2/configure.ac +--- slurm-16.05.2.orig/configure.ac 2016-07-07 02:51:37.000000000 +0300 ++++ slurm-16.05.2/configure.ac 2016-07-15 20:02:41.373270765 +0300 +@@ -261,44 +261,6 @@ + PKG_CHECK_MODULES([CHECK], [check >= 0.9.8], [ac_have_check="yes"], [ac_have_check="no"]) + AM_CONDITIONAL(HAVE_CHECK, test "x$ac_have_check" = "xyes") + +-# +-# Tests for GTK+ +-# +- +-# use the correct libs if running on 64bit +-if test -d "/usr/lib64/pkgconfig"; then +- PKG_CONFIG_PATH="/usr/lib64/pkgconfig/:$PKG_CONFIG_PATH" +-fi +- +-if test -d "/opt/gnome/lib64/pkgconfig"; then +- PKG_CONFIG_PATH="/opt/gnome/lib64/pkgconfig/:$PKG_CONFIG_PATH" +-fi +- +-AM_PATH_GLIB_2_0([2.7.1], [ac_glib_test="yes"], [ac_glib_test="no"], [gthread]) +- +-if test ${glib_config_minor_version=0} -ge 32 ; then +- AC_DEFINE([GLIB_NEW_THREADS], 1, [Define to 1 if using glib-2.32.0 or higher]) +-fi +- +-AM_PATH_GTK_2_0([2.7.1], [ac_gtk_test="yes"], [ac_gtk_test="no"], [gthread]) +-if test ${gtk_config_minor_version=0} -ge 10 ; then +- AC_DEFINE([GTK2_USE_RADIO_SET], 1, [Define to 1 if using gtk+-2.10.0 or higher]) +-fi +- +-if test ${gtk_config_minor_version=0} -ge 12 ; then +- AC_DEFINE([GTK2_USE_TOOLTIP], 1, [Define to 1 if using gtk+-2.12.0 or higher]) +-fi +- +-if test ${gtk_config_minor_version=0} -ge 14 ; then +- AC_DEFINE([GTK2_USE_GET_FOCUS], 1, [Define to 1 if using gtk+-2.14.0 or higher]) +-fi +- +-if test "x$ac_glib_test" != "xyes" -o "x$ac_gtk_test" != "xyes"; then +- AC_MSG_WARN([cannot build sview without gtk library]); +-fi +- +-AM_CONDITIONAL(BUILD_SVIEW, [test "x$ac_glib_test" = "xyes"] && [test "x$ac_gtk_test" = "xyes"]) +- + X_AC_DATABASES + + dnl Cray ALPS/Basil support depends on mySQL +@@ -503,7 +465,6 @@ + src/sshare/Makefile + src/sstat/Makefile + src/strigger/Makefile +- src/sview/Makefile + src/plugins/Makefile + src/plugins/accounting_storage/Makefile + src/plugins/accounting_storage/common/Makefile +diff -urN slurm-16.05.2.orig/src/Makefile.am slurm-16.05.2/src/Makefile.am +--- slurm-16.05.2.orig/src/Makefile.am 2016-07-07 02:51:37.000000000 +0300 ++++ slurm-16.05.2/src/Makefile.am 2016-07-15 20:02:41.373270765 +0300 +@@ -27,8 +27,7 @@ + srun_cr \ + sshare \ + sstat \ +- strigger \ +- sview ++ strigger + + if !REAL_BG_L_P_LOADED + SUBDIRS += srun diff --git a/sys-cluster/slurm/files/slurm-16.05.2-sysmacros.patch b/sys-cluster/slurm/files/slurm-16.05.2-sysmacros.patch new file mode 100644 index 000000000000..f9d22f479f89 --- /dev/null +++ b/sys-cluster/slurm/files/slurm-16.05.2-sysmacros.patch @@ -0,0 +1,34 @@ + configure.ac | 2 +- + src/plugins/task/cgroup/task_cgroup_devices.c | 6 ++++++ + 2 files changed, 7 insertions(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 869a989..2936983 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -141,7 +141,7 @@ AC_CHECK_HEADERS(mcheck.h values.h socket.h sys/socket.h \ + AC_HEADER_SYS_WAIT + AC_HEADER_TIME + AC_HEADER_STDC +- ++AC_HEADER_MAJOR + + dnl Checks for structures. + dnl +diff --git a/src/plugins/task/cgroup/task_cgroup_devices.c b/src/plugins/task/cgroup/task_cgroup_devices.c +index 554583c..9be99d8 100644 +--- a/src/plugins/task/cgroup/task_cgroup_devices.c ++++ b/src/plugins/task/cgroup/task_cgroup_devices.c +@@ -42,6 +42,12 @@ + #include + #include + #include ++#ifdef MAJOR_IN_MKDEV ++# include ++#endif ++#ifdef MAJOR_IN_SYSMACROS ++# include ++#endif + #include + #include + #include diff --git a/sys-cluster/slurm/files/slurm-17.02.6-disable-sview.patch b/sys-cluster/slurm/files/slurm-17.02.6-disable-sview.patch new file mode 100644 index 000000000000..f7e2c5b26739 --- /dev/null +++ b/sys-cluster/slurm/files/slurm-17.02.6-disable-sview.patch @@ -0,0 +1,99 @@ + configure.ac | 39 --------------------------------------- + doc/man/man1/Makefile.am | 8 -------- + src/Makefile.am | 3 +-- + 3 files changed, 1 insertion(+), 49 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 2f177ec..ff4d69b 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -238,44 +238,6 @@ AC_SUBST(HAVE_SOME_CURSES) + PKG_CHECK_MODULES([CHECK], [check >= 0.9.8], [ac_have_check="yes"], [ac_have_check="no"]) + AM_CONDITIONAL(HAVE_CHECK, test "x$ac_have_check" = "xyes") + +-# +-# Tests for GTK+ +-# +- +-# use the correct libs if running on 64bit +-if test -d "/usr/lib64/pkgconfig"; then +- PKG_CONFIG_PATH="/usr/lib64/pkgconfig/:$PKG_CONFIG_PATH" +-fi +- +-if test -d "/opt/gnome/lib64/pkgconfig"; then +- PKG_CONFIG_PATH="/opt/gnome/lib64/pkgconfig/:$PKG_CONFIG_PATH" +-fi +- +-AM_PATH_GLIB_2_0([2.7.1], [ac_glib_test="yes"], [ac_glib_test="no"], [gthread]) +- +-if test ${glib_config_minor_version=0} -ge 32 ; then +- AC_DEFINE([GLIB_NEW_THREADS], 1, [Define to 1 if using glib-2.32.0 or higher]) +-fi +- +-AM_PATH_GTK_2_0([2.7.1], [ac_gtk_test="yes"], [ac_gtk_test="no"], [gthread]) +-if test ${gtk_config_minor_version=0} -ge 10 ; then +- AC_DEFINE([GTK2_USE_RADIO_SET], 1, [Define to 1 if using gtk+-2.10.0 or higher]) +-fi +- +-if test ${gtk_config_minor_version=0} -ge 12 ; then +- AC_DEFINE([GTK2_USE_TOOLTIP], 1, [Define to 1 if using gtk+-2.12.0 or higher]) +-fi +- +-if test ${gtk_config_minor_version=0} -ge 14 ; then +- AC_DEFINE([GTK2_USE_GET_FOCUS], 1, [Define to 1 if using gtk+-2.14.0 or higher]) +-fi +- +-if test "x$ac_glib_test" != "xyes" -o "x$ac_gtk_test" != "xyes"; then +- AC_MSG_WARN([cannot build sview without gtk library]); +-fi +- +-AM_CONDITIONAL(BUILD_SVIEW, [test "x$ac_glib_test" = "xyes"] && [test "x$ac_gtk_test" = "xyes"]) +- + dnl Cray ALPS/Basil support depends on mySQL + X_AC_CRAY + +@@ -477,7 +439,6 @@ AC_CONFIG_FILES([Makefile + src/sshare/Makefile + src/sstat/Makefile + src/strigger/Makefile +- src/sview/Makefile + src/plugins/Makefile + src/plugins/accounting_storage/Makefile + src/plugins/accounting_storage/common/Makefile +diff --git a/doc/man/man1/Makefile.am b/doc/man/man1/Makefile.am +index 246f16d..ba39af2 100644 +--- a/doc/man/man1/Makefile.am ++++ b/doc/man/man1/Makefile.am +@@ -29,10 +29,6 @@ if WITH_BLCR + man1_MANS += srun_cr.1 + endif + +-if BUILD_SVIEW +-man1_MANS += sview.1 +-endif +- + EXTRA_DIST = $(man1_MANS) + + if HAVE_MAN2HTML +@@ -65,10 +61,6 @@ if WITH_BLCR + html_DATA += srun_cr.html + endif + +-if BUILD_SVIEW +-html_DATA += sview.html +-endif +- + MOSTLYCLEANFILES = ${html_DATA} + + EXTRA_DIST += $(html_DATA) +diff --git a/src/Makefile.am b/src/Makefile.am +index bcd5aa7..a8cbf17 100644 +--- a/src/Makefile.am ++++ b/src/Makefile.am +@@ -28,5 +28,4 @@ SUBDIRS = \ + srun_cr \ + sshare \ + sstat \ +- strigger \ +- sview ++ strigger diff --git a/sys-cluster/slurm/files/slurm-17.02.6-glibc-2.25.patch b/sys-cluster/slurm/files/slurm-17.02.6-glibc-2.25.patch new file mode 100644 index 000000000000..dc48f8475c00 --- /dev/null +++ b/sys-cluster/slurm/files/slurm-17.02.6-glibc-2.25.patch @@ -0,0 +1,53 @@ +commit 056d9ff26b1d2ccac45da3c26a6918f182f8c559 +Author: Justin Lecher +Date: Sun Jul 9 15:54:20 2017 +0100 + + Include sysmacros.h in addition for major() & minor() + + Starting from glibc-2.25 [1] the macros major and minor are only available + from sys/sysmacros.h. This patch uses an autoconf macro to detect the + location and includes the header accordingly. + + 1) + https://sourceware.org/ml/libc-alpha/2017-02/msg00079.html + + Signed-off-by: Justin Lecher + +diff --git a/configure.ac b/configure.ac +index 44699ae095..66d4350d44 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -124,7 +124,7 @@ AC_CHECK_HEADERS(mcheck.h values.h socket.h sys/socket.h \ + AC_HEADER_SYS_WAIT + AC_HEADER_TIME + AC_HEADER_STDC +- ++AC_HEADER_MAJOR + + dnl Checks for structures. + dnl +diff --git a/src/plugins/task/cgroup/task_cgroup_devices.c b/src/plugins/task/cgroup/task_cgroup_devices.c +index 6a09b3d52a..63c0a11c9e 100644 +--- a/src/plugins/task/cgroup/task_cgroup_devices.c ++++ b/src/plugins/task/cgroup/task_cgroup_devices.c +@@ -34,12 +34,20 @@ + * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + \*****************************************************************************/ + ++#include "config.h" ++ + #define _GNU_SOURCE + #include + #include + #include + #include + #include ++#ifdef MAJOR_IN_MKDEV ++# include ++#endif ++#ifdef MAJOR_IN_SYSMACROS ++# include ++#endif + + #include "slurm/slurm.h" + #include "slurm/slurm_errno.h" 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/slurmctld.initd b/sys-cluster/slurm/files/slurmctld.initd new file mode 100644 index 000000000000..e87dfdb83ad3 --- /dev/null +++ b/sys-cluster/slurm/files/slurmctld.initd @@ -0,0 +1,68 @@ +#!/sbin/openrc-run +# Copyright 1999-2016 Gentoo Foundation +# 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 /var/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 /var/run/slurm/slurmctld.pid + eend $? +} + +reload() { + ebegin "Reloading slurm daemon configuration" + start-stop-daemon --signal HUP --pidfile /var/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..a4a165be87d3 --- /dev/null +++ b/sys-cluster/slurm/files/slurmd.initd @@ -0,0 +1,71 @@ +#!/sbin/openrc-run +# Copyright 1999-2016 Gentoo Foundation +# 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 /var/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 /var/run/slurm/slurmd.pid + eend $? +} + +reload() { + ebegin "Reloading slurm daemon configuration" + start-stop-daemon --signal HUP --pidfile /var/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..296afaf9421c --- /dev/null +++ b/sys-cluster/slurm/files/slurmdbd.initd @@ -0,0 +1,66 @@ +#!/sbin/openrc-run +# Copyright 1999-2016 Gentoo Foundation +# 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 /var/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 /var/run/slurm/slurmdbd.pid + eend $? +} + +reload() { + ebegin "Reloading slurmdb daemon configuration" + start-stop-daemon --signal HUP --pidfile /var/run/slurm/slurmdbd.pid + eend $? +} -- cgit v1.2.3