File: rules

package info (click to toggle)
slurm-wlm 25.11.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 46,824 kB
  • sloc: ansic: 551,323; sh: 10,228; javascript: 6,528; makefile: 4,277; perl: 3,717; python: 559; pascal: 131
file content (177 lines) | stat: -rwxr-xr-x 8,957 bytes parent folder | download
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