Hi, On Thu, Nov 12, 2015 at 11:36:08AM +0100, Ana Guerrero Lopez wrote: > Please consider adding a -emulator package to allow run slurm > in emulation mode as described at [1]. > Your git repo [2] doesn't seem to be up to date, so I made a patch > against the current package in unstable. > > [1] http://slurm.schedmd.com/faq.html#multi_slurmd > [2] http://anonscm.debian.org/cgit/collab-maint/slurm-llnl.git
Here is an updated patch. This patch adds a new binary slurm-client-emulator with the binaries rebuilt with the emulator build options. I prefered adding a new binary with the binaries renamed. There are another possibilities such as adding the binaries from slurm-client-emulator directly in the binary slurm-wlm-emulator and/or renaming the binaries from slurm-client and using alternatives here too. I found the solution I chose the simplest one. Ana
>From da4d2cc11246f7e09ff4ab9d0acbb63ac46f25a3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ana=20Guerrero=20L=C3=B3pez?= <a...@ekaia.org> Date: Wed, 2 Dec 2015 00:00:50 +0100 Subject: [PATCH] Update packaging to add the slurm emulator. This commit add two new packages slurm-wlm-emulator and slurm-client-emulator to run slurm in emulator mode as described at http://slurm.schedmd.com/faq.html#multi_slurmd --- debian/changelog | 15 ++++++++++++++ debian/control | 21 +++++++++++++++++++ debian/rules | 40 ++++++++++++++++++++++++++++++++++++ debian/slurm-client-emulator.install | 18 ++++++++++++++++ debian/slurm-wlm-emulator.install | 3 +++ debian/slurm-wlm-emulator.postinst | 15 ++++++++++++++ debian/slurm-wlm-emulator.prerm | 14 +++++++++++++ debian/slurmctld.install | 2 +- debian/slurmctld.postinst | 1 + debian/slurmctld.prerm | 1 + debian/slurmd.install | 4 ++-- debian/slurmd.postinst | 2 ++ debian/slurmd.prerm | 13 ++++++++++++ 13 files changed, 146 insertions(+), 3 deletions(-) create mode 100644 debian/slurm-client-emulator.install create mode 100644 debian/slurm-wlm-emulator.install create mode 100644 debian/slurm-wlm-emulator.postinst create mode 100644 debian/slurm-wlm-emulator.prerm create mode 100644 debian/slurmd.prerm diff --git a/debian/changelog b/debian/changelog index 7b6f186..ca7e131 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,18 @@ +slurm-llnl (15.08.4-2) UNRELEASED; urgency=medium + + * Add package slurm-wlm-emulator. This package provides binaries that are + already in the slurmd and slurmctld package. These packages binaries + have now the suffix -wlm and the binaries in slurm-wln-emulator got + the suffix -wlm-emulator. + The binaries are handled with alternatives, having the emulator package + a higher priority value. + * Add slurm-client-emulator with all the same binaries from slurm-client + built in emulator mode, these are the binaries to use when running thr + daemons from slurm-wlm-emulator. + Binaries have appended suffix -emulator to avoid conflicts. + + -- Ana Guerrero Lopez <a...@debian.org> Tue, 01 Dec 2015 23:09:08 +0100 + slurm-llnl (15.08.4-1) unstable; urgency=medium * New upstream release diff --git a/debian/control b/debian/control index 527f995..26fa986 100644 --- a/debian/control +++ b/debian/control @@ -435,3 +435,24 @@ Description: transitional dummy package for slurmdbd This is a transitional dummy package for slurmdbd It can safely be removed. +Package: slurm-wlm-emulator +Architecture: any +Depends: ${misc:Depends}, + slurmctld (= ${binary:Version}), + slurmd (= ${binary:Version}) +Description: SLURM emulator + SLURM, the Simple Linux Utility for Resource Management, + is an open-source cluster resource management and job scheduling. + . + This package installs the emulator binaries: slurmd, slurmctld + and slurmstepd. + +Package: slurm-client-emulator +Architecture: any +Depends: ${shlibs:Depends}, ${misc:Depends}, +Description: SLURM client side commands for the emulator + SLURM stands for Simple Linux Utility for Resource Management, it + is an open-source cluster resource management and job scheduling system + that strives to be simple, scalable, portable, fault-tolerant, and + interconnect agnostic. + This package contains all client side commands for the emulator. diff --git a/debian/rules b/debian/rules index c66b6a9..f46dbce 100755 --- a/debian/rules +++ b/debian/rules @@ -11,12 +11,22 @@ include /usr/share/dpkg/architecture.mk %: dh $@ --builddirectory --parallel --with systemd +override_dh_auto_clean: + dh_auto_clean + dh_auto_clean --builddirectory build-emulator + rm -rf $(CURDIR)/debian/tmp-emulator + # We run configure with --disable-debug to avoid the default use of -O0 and # consequent unprotected source functions, causing lintian report # hardening-no-fortify-functions # Notice that -g in CFLAGS is still provided by dpkg-buildflags override_dh_auto_configure: dh_auto_configure -- --sysconfdir=/etc/slurm-llnl --localstatedir=/var/run/slurm-llnl --with-munge --without-blcr --enable-pam --without-rpath --disable-debug + dh_auto_configure --builddirectory build-emulator -- -sysconfdir=/etc/slurm-llnl --localstatedir=/var/run/slurm-llnl --with-munge --without-blcr --enable-pam --without-rpath --disable-debug --enable-front-end --enable-multiple-slurmd + +override_dh_auto_build: + dh_auto_build + dh_auto_build --builddirectory build-emulator override_dh_auto_install: dh_auto_install @@ -42,6 +52,36 @@ override_dh_auto_install: pod2man $$i > debian/tmp/usr/share/man/man1/$$(basename $$i).1; \ done + # Rename binaries that are also in the slurm-wlm-emulator + mv debian/tmp/usr/sbin/slurmctld debian/tmp/usr/sbin/slurmctld-wlm + mv debian/tmp/usr/sbin/slurmd debian/tmp/usr/sbin/slurmd-wlm + mv debian/tmp/usr/sbin/slurmstepd debian/tmp/usr/sbin/slurmstepd-wlm + + dh_auto_install --builddirectory build-emulator --destdir=$(CURDIR)/debian/tmp-emulator + # Rename binaries in the emulator packages + mv debian/tmp-emulator/usr/sbin/slurmctld debian/tmp-emulator/usr/sbin/slurmctld-wlm-emulator + mv debian/tmp-emulator/usr/sbin/slurmd debian/tmp-emulator/usr/sbin/slurmd-wlm-emulator + mv debian/tmp-emulator/usr/sbin/slurmstepd debian/tmp-emulator/usr/sbin/slurmstepd-wlm-emulator + mv debian/tmp-emulator/usr/bin/sshare debian/tmp-emulator/usr/bin/sshare-emulator + mv debian/tmp-emulator/usr/bin/scancel debian/tmp-emulator/usr/bin/scancel-emulator + mv debian/tmp-emulator/usr/bin/sattach debian/tmp-emulator/usr/bin/sattach-emulator + mv debian/tmp-emulator/usr/bin/sbatch debian/tmp-emulator/usr/bin/sbatch-emulator + mv debian/tmp-emulator/usr/bin/sreport debian/tmp-emulator/usr/bin/sreport-emulator + mv debian/tmp-emulator/usr/bin/sbcast debian/tmp-emulator/usr/bin/sbcast-emulator + mv debian/tmp-emulator/usr/bin/srun debian/tmp-emulator/usr/bin/srun-emulator + mv debian/tmp-emulator/usr/bin/squeue debian/tmp-emulator/usr/bin/squeue-emulator + mv debian/tmp-emulator/usr/bin/sprio debian/tmp-emulator/usr/bin/sprio-emulator + mv debian/tmp-emulator/usr/bin/smap debian/tmp-emulator/usr/bin/smap-emulator + mv debian/tmp-emulator/usr/bin/sdiag debian/tmp-emulator/usr/bin/sdiag-emulator + mv debian/tmp-emulator/usr/bin/strigger debian/tmp-emulator/usr/bin/strigger-emulator + mv debian/tmp-emulator/usr/bin/sinfo debian/tmp-emulator/usr/bin/sinfo-emulator + mv debian/tmp-emulator/usr/bin/salloc debian/tmp-emulator/usr/bin/salloc-emulator + mv debian/tmp-emulator/usr/bin/sacct debian/tmp-emulator/usr/bin/sacct-emulator + mv debian/tmp-emulator/usr/bin/sacctmgr debian/tmp-emulator/usr/bin/sacctmgr-emulator + mv debian/tmp-emulator/usr/bin/scontrol debian/tmp-emulator/usr/bin/scontrol-emulator + mv debian/tmp-emulator/usr/bin/sstat debian/tmp-emulator/usr/bin/sstat-emulator + + override_dh_strip: dh_strip -plibslurm29 --dbg-package=libslurm29-dbg dh_strip -plibslurmdb29 --dbg-package=libslurmdb29-dbg diff --git a/debian/slurm-client-emulator.install b/debian/slurm-client-emulator.install new file mode 100644 index 0000000..7b9ce9b --- /dev/null +++ b/debian/slurm-client-emulator.install @@ -0,0 +1,18 @@ +debian/tmp-emulator/usr/bin/sshare-emulator /usr/bin/ +debian/tmp-emulator/usr/bin/scancel-emulator /usr/bin/ +debian/tmp-emulator/usr/bin/sattach-emulator /usr/bin/ +debian/tmp-emulator/usr/bin/sbatch-emulator /usr/bin/ +debian/tmp-emulator/usr/bin/sreport-emulator /usr/bin/ +debian/tmp-emulator/usr/bin/sbcast-emulator /usr/bin/ +debian/tmp-emulator/usr/bin/srun-emulator /usr/bin/ +debian/tmp-emulator/usr/bin/squeue-emulator /usr/bin/ +debian/tmp-emulator/usr/bin/sprio-emulator /usr/bin/ +debian/tmp-emulator/usr/bin/smap-emulator /usr/bin/ +debian/tmp-emulator/usr/bin/sdiag-emulator /usr/bin/ +debian/tmp-emulator/usr/bin/strigger-emulator /usr/bin/ +debian/tmp-emulator/usr/bin/sinfo-emulator /usr/bin/ +debian/tmp-emulator/usr/bin/salloc-emulator /usr/bin/ +debian/tmp-emulator/usr/bin/sacct-emulator /usr/bin/ +debian/tmp-emulator/usr/bin/sacctmgr-emulator /usr/bin/ +debian/tmp-emulator/usr/bin/scontrol-emulator /usr/bin/ +debian/tmp-emulator/usr/bin/sstat-emulator /usr/bin/ diff --git a/debian/slurm-wlm-emulator.install b/debian/slurm-wlm-emulator.install new file mode 100644 index 0000000..ecc511c --- /dev/null +++ b/debian/slurm-wlm-emulator.install @@ -0,0 +1,3 @@ +debian/tmp-emulator/usr/sbin/slurmctld-wlm-emulator /usr/sbin/ +debian/tmp-emulator/usr/sbin/slurmd-wlm-emulator /usr/sbin/ +debian/tmp-emulator/usr/sbin/slurmstepd-wlm-emulator /usr/sbin/ diff --git a/debian/slurm-wlm-emulator.postinst b/debian/slurm-wlm-emulator.postinst new file mode 100644 index 0000000..dded80f --- /dev/null +++ b/debian/slurm-wlm-emulator.postinst @@ -0,0 +1,15 @@ +#!/bin/sh + +set -e + +if [ "$1" = "configure" ] ; then + + update-alternatives --install /usr/sbin/slurmctld slurmctld /usr/sbin/slurmctld-wlm-emulator 60 + update-alternatives --install /usr/sbin/slurmd slurmd /usr/sbin/slurmd-wlm-emulator 60 \ + --slave /usr/sbin/slurmstepd slurmstepd /usr/sbin/slurmstepd-wlm-emulator + +fi + +#DEBHELPER# + +exit 0 diff --git a/debian/slurm-wlm-emulator.prerm b/debian/slurm-wlm-emulator.prerm new file mode 100644 index 0000000..a37d95c --- /dev/null +++ b/debian/slurm-wlm-emulator.prerm @@ -0,0 +1,14 @@ +#!/bin/sh + +set -e + +case "$1" in + remove|deconfigure) + update-alternatives --remove slurmctld /usr/sbin/slurmctld-wlm-emulator + update-alternatives --remove slurmd /usr/sbin/slurmd-wlm-emulator + ;; +esac + +#DEBHELPER# + +exit 0 diff --git a/debian/slurmctld.install b/debian/slurmctld.install index 22db354..4f42c2a 100644 --- a/debian/slurmctld.install +++ b/debian/slurmctld.install @@ -1 +1 @@ -usr/sbin/slurmctld +usr/sbin/slurmctld-wlm diff --git a/debian/slurmctld.postinst b/debian/slurmctld.postinst index cb04cfa..5721a88 100644 --- a/debian/slurmctld.postinst +++ b/debian/slurmctld.postinst @@ -22,6 +22,7 @@ case "$1" in chown slurm:slurm /var/lib/slurm-llnl chown slurm:slurm /var/lib/slurm-llnl/slurmctld chown slurm:slurm /var/log/slurm-llnl + update-alternatives --install /usr/sbin/slurmctld slurmctld /usr/sbin/slurmctld-wlm 50 ;; abort-upgrade|abort-remove|abort-deconfigure) diff --git a/debian/slurmctld.prerm b/debian/slurmctld.prerm index 8c65149..52b61b9 100644 --- a/debian/slurmctld.prerm +++ b/debian/slurmctld.prerm @@ -22,6 +22,7 @@ case "$1" in scancel --state=pending scancel --state=running fi + update-alternatives --remove slurmctld /usr/sbin/slurmctld-wlm ;; upgrade) diff --git a/debian/slurmd.install b/debian/slurmd.install index 6d15e33..2926fc1 100644 --- a/debian/slurmd.install +++ b/debian/slurmd.install @@ -1,2 +1,2 @@ -usr/sbin/slurmd -usr/sbin/slurmstepd +usr/sbin/slurmd-wlm +usr/sbin/slurmstepd-wlm diff --git a/debian/slurmd.postinst b/debian/slurmd.postinst index 629911e..6dc5c33 100644 --- a/debian/slurmd.postinst +++ b/debian/slurmd.postinst @@ -30,6 +30,8 @@ case "$1" in STARTOPTION="startclean" fi + update-alternatives --install /usr/sbin/slurmd slurmd /usr/sbin/slurmd-wlm 50 \ + --slave /usr/sbin/slurmstepd slurmstepd /usr/sbin/slurmstepd-wlm ;; abort-upgrade|abort-remove|abort-deconfigure) diff --git a/debian/slurmd.prerm b/debian/slurmd.prerm new file mode 100644 index 0000000..7dffaa6 --- /dev/null +++ b/debian/slurmd.prerm @@ -0,0 +1,13 @@ +#!/bin/sh + +set -e + +case "$1" in + remove|deconfigure) + update-alternatives --remove slurmd /usr/sbin/slurmd-wlm + ;; +esac + +#DEBHELPER# + +exit 0 -- 2.6.2