1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177
|
#!/usr/bin/make -f
# -*- makefile -*-
# Uncomment this to turn on verbose mode.
#export DH_VERBOSE=1
export PERL_ARCHLIB := /usr/$(shell perl -e 'use Config; $$T=$$Config{installsitearch}; $$P=$$Config{installprefix}; $$P1="$P/local"; $$T =~ s/$$P1//; $$T =~ s/$$P//; print $$T;')
export DEB_BUILD_MAINT_OPTIONS = hardening=+all,-bindnow
# Getting the list of the plugins packages excluding the basic package
PLUGIN_PACKAGES_LIST := $(shell grep '^Package' debian/control | grep -o 'slurm-wlm-.*-plugin\(s\)\?$$')
PLUGIN_PACKAGES_LIST := $(filter-out slurm-wlm-basic-plugins,$(PLUGIN_PACKAGES_LIST))
# include defs of all DEB_HOST_*/DEB_BUILD_* vars
include /usr/share/dpkg/architecture.mk
ifneq ($(DEB_TARGET_ARCH_BITS),64)
ENABLEDEPRECATED = --enable-deprecated
endif
# PMIX is now only available on 64-bit systems
PMIX_ARCH:= amd64 arm64 mips64el ppc64el riscv64 s390x alpha ia64 loong64 ppc64
PMIX:= $(if $(filter $(DEB_TARGET_ARCH), $(PMIX_ARCH)), --with-pmix=/usr/lib/$(DEB_HOST_MULTIARCH)/pmix2, )
%:
dh $@ --builddirectory --with bash-completion
override_dh_auto_clean:
dh_auto_clean
dh_auto_clean --builddirectory build-emulator
rm -rvf $(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 --with-munge --enable-pam --without-rpath --disable-debug --enable-multiple-slurmd $(PMIX) --with-pam_dir=/usr/lib/$(DEB_HOST_MULTIARCH)/security $(ENABLEDEPRECATED) SUCMD=/bin/su SLEEP_CMD=/bin/sleep
dh_auto_configure --builddirectory build-emulator -- -sysconfdir=/etc/slurm --with-munge --enable-pam --without-rpath --disable-debug --enable-front-end --enable-multiple-slurmd $(PMIX) --with-pam_dir=/usr/lib/$(DEB_HOST_MULTIARCH)/security $(ENABLEDEPRECATED) SUCMD=/bin/su SLEEP_CMD=/bin/sleep
override_dh_auto_build:
dh_auto_build
dh_auto_build --builddirectory build-emulator
override_dh_shlibdeps:
dh_shlibdeps -O--builddirectory -O--parallel -l$(CURDIR)/debian/tmp/usr/lib/$(DEB_HOST_MULTIARCH)/slurm-wlm/
override_dh_auto_install:
dh_auto_install
dh_installsysusers # needed until DH compat 14
# Rename slurm(1) manpage before dh_installman run. It is not possible
# to rename manpages in debian/*.manpages so hardcore `mv` is done here
mv -v debian/tmp/usr/share/man/man7/slurm.7 debian/tmp/usr/share/man/man7/slurm-wlm.7
# run make install for libpam-slurm pkg
$(MAKE) -C obj-$(DEB_BUILD_GNU_TYPE)/contribs/pam install DESTDIR=$(CURDIR)/debian/tmp
# run make install for libpam-slurm-adopt pkg
$(MAKE) -C obj-$(DEB_BUILD_GNU_TYPE)/contribs/pam_slurm_adopt install DESTDIR=$(CURDIR)/debian/tmp
# run make install for libslurm[db]-perl pkgs
$(MAKE) -C obj-$(DEB_BUILD_GNU_TYPE)/contribs/perlapi install DESTDIR=$(CURDIR)/debian/tmp PERL_MM_OPT="INSTALLDIRS=vendor"
find debian/tmp/$(PERL_ARCHLIB) -type f -name "*.so" | xargs chmod u+rwX
find debian/tmp/$(PERL_ARCHLIB) -type f -name "*.so" | xargs chrpath -d
# run make install for slurm-wlm-torque pkg
$(MAKE) -C obj-$(DEB_BUILD_GNU_TYPE)/contribs/torque install DESTDIR=$(CURDIR)/debian/tmp
# run make install for PMI pkg
$(MAKE) -C obj-$(DEB_BUILD_GNU_TYPE)/contribs/pmi install DESTDIR=$(CURDIR)/debian/tmp
# run make install for PMI2 pkg
$(MAKE) -C obj-$(DEB_BUILD_GNU_TYPE)/contribs/pmi2 install DESTDIR=$(CURDIR)/debian/tmp
# clear dependency_libs field in *.la files
# see lintian non-empty-dependency_libs-in-la-file for reference
sed -i "/dependency_libs/ s/'.*'/''/" `find debian/tmp/ -name '*.la'`
# Rename mpiexec to mpiexec.slurm
mv -v debian/tmp/usr/bin/mpiexec debian/tmp/usr/bin/mpiexec.slurm
# build manpages for pbs wrappers
for i in debian/tmp/usr/bin/pbsnodes \
debian/tmp/usr/bin/mpiexec.slurm \
debian/tmp/usr/bin/q*; do \
pod2man -v $$i > debian/tmp/usr/share/man/man1/$$(basename $$i).1; \
done
# Remove embedded jquery.min.js
rm -fv debian/tmp/usr/share/doc/slurm-wlm/html/jquery.min.js
# Rename the header files directory to slurm
mv -v debian/tmp/usr/include/slurm-wlm debian/tmp/usr/include/slurm
# Rename binaries that are also in the slurm-wlm-emulator
mv -v debian/tmp/usr/sbin/slurmctld debian/tmp/usr/sbin/slurmctld-wlm
mv -v debian/tmp/usr/sbin/slurmd debian/tmp/usr/sbin/slurmd-wlm
mv -v 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 -v debian/tmp-emulator/usr/sbin/slurmctld debian/tmp-emulator/usr/sbin/slurmctld-wlm-emulator
mv -v debian/tmp-emulator/usr/sbin/slurmd debian/tmp-emulator/usr/sbin/slurmd-wlm-emulator
mv -v debian/tmp-emulator/usr/sbin/slurmstepd debian/tmp-emulator/usr/sbin/slurmstepd-wlm-emulator
mv -v debian/tmp-emulator/usr/bin/sshare debian/tmp-emulator/usr/bin/sshare-emulator
mv -v debian/tmp-emulator/usr/bin/scancel debian/tmp-emulator/usr/bin/scancel-emulator
mv -v debian/tmp-emulator/usr/bin/sattach debian/tmp-emulator/usr/bin/sattach-emulator
mv -v debian/tmp-emulator/usr/bin/sbatch debian/tmp-emulator/usr/bin/sbatch-emulator
mv -v debian/tmp-emulator/usr/bin/sreport debian/tmp-emulator/usr/bin/sreport-emulator
mv -v debian/tmp-emulator/usr/bin/sbcast debian/tmp-emulator/usr/bin/sbcast-emulator
mv -v debian/tmp-emulator/usr/bin/srun debian/tmp-emulator/usr/bin/srun-emulator
mv -v debian/tmp-emulator/usr/bin/squeue debian/tmp-emulator/usr/bin/squeue-emulator
mv -v debian/tmp-emulator/usr/bin/sprio debian/tmp-emulator/usr/bin/sprio-emulator
mv -v debian/tmp-emulator/usr/bin/sdiag debian/tmp-emulator/usr/bin/sdiag-emulator
mv -v debian/tmp-emulator/usr/bin/strigger debian/tmp-emulator/usr/bin/strigger-emulator
mv -v debian/tmp-emulator/usr/bin/sinfo debian/tmp-emulator/usr/bin/sinfo-emulator
mv -v debian/tmp-emulator/usr/bin/salloc debian/tmp-emulator/usr/bin/salloc-emulator
mv -v debian/tmp-emulator/usr/bin/sacct debian/tmp-emulator/usr/bin/sacct-emulator
mv -v debian/tmp-emulator/usr/bin/sacctmgr debian/tmp-emulator/usr/bin/sacctmgr-emulator
mv -v debian/tmp-emulator/usr/bin/scontrol debian/tmp-emulator/usr/bin/scontrol-emulator
mv -v debian/tmp-emulator/usr/bin/sstat debian/tmp-emulator/usr/bin/sstat-emulator
ls debian/tmp/usr/lib/*/slurm-wlm/*.so | sort > debian/all_plugins_filelist
for f in $(PLUGIN_PACKAGES_LIST) ; do \
ls $$(cat debian/$$f.install | sed "s/^/debian\/tmp\//") ; \
done | sort >> debian/plugin_packages_filelist
cp debian/slurm-wlm-basic-plugins.install.in debian/slurm-wlm-basic-plugins.install
comm -23 debian/all_plugins_filelist debian/plugin_packages_filelist | sed "s/^debian\/tmp\///" >> debian/slurm-wlm-basic-plugins.install
ls debian/tmp/usr/lib/*/slurm-wlm/*.a debian/tmp/usr/lib/*/slurm-wlm/*.la | sort > debian/all_plugins_dev_filelist
for f in $(PLUGIN_PACKAGES_LIST) ; do \
ls $$(cat debian/$$f-dev.install | sed "s/^/debian\/tmp\//") ; \
done | sort >> debian/plugin_packages_dev_filelist
comm -23 debian/all_plugins_dev_filelist debian/plugin_packages_dev_filelist | sed "s/^debian\/tmp\///" >> debian/slurm-wlm-basic-plugins-dev.install
override_dh_strip:
dh_strip -plibslurm44t64
dh_strip -plibpmi0t64 --dbgsym-migration='libpmi0-dbg (<< 17.02.6~)'
dh_strip -plibpmi2-0t64 --dbgsym-migration='libpmi2-0-dbg (<< 17.02.6~)'
dh_strip -pslurm-wlm-basic-plugins --dbgsym-migration='slurm-wlm-basic-plugins-dbg (<< 17.02.6~)'
dh_strip -pslurm-wlm-elasticsearch-plugin
dh_strip -pslurm-wlm-hdf5-plugin
dh_strip -pslurm-wlm-influxdb-plugin
dh_strip -pslurm-wlm-ipmi-plugins
dh_strip -pslurm-wlm-jwt-plugin
dh_strip -pslurm-wlm-mysql-plugin
dh_strip -pslurm-wlm-rsmi-plugin
dh_strip -pslurm-wlm-kafka-plugin
dh_strip -psackd
dh_strip -pslurm-client --dbgsym-migration='slurm-client-dbg (<< 17.02.6~)'
dh_strip -pslurmd --dbgsym-migration='slurmd-dbg (<< 17.02.6~)'
dh_strip -pslurmctld --dbgsym-migration='slurmctld-dbg (<< 17.02.6~)'
dh_strip -pslurmdbd --dbgsym-migration='slurmdbd-dbg (<< 17.02.6~)'
dh_strip -pslurm-client-emulator
dh_strip -pslurm-wlm-emulator
# we do not care about debug symbols for those pkgs
dh_strip -plibslurmdb-perl --no-automatic-dbgsym
dh_strip -plibslurm-perl --no-automatic-dbgsym
dh_strip -plibpam-slurm --no-automatic-dbgsym
dh_strip -plibpam-slurm-adopt --no-automatic-dbgsym
dh_strip -pslurm-client-emulator --no-automatic-dbgsym
dh_strip -plibpmi0-dev --no-automatic-dbgsym
dh_strip -plibpmi2-0-dev --no-automatic-dbgsym
dh_strip -plibslurm-dev --no-automatic-dbgsym
dh_strip -pslurmrestd --no-automatic-dbgsym
strip --verbose --strip-unneeded --remove-section=.comment \
--remove-section=.note debian/slurm-*-plugin*-dev/usr/lib/*/slurm-wlm/*.a
override_dh_auto_test:
override_dh_compress:
dh_compress -X.pdf -X.ttf
|