blob: 97a1fc1710864953fe5d78bb7e103faba6e5bf29 (
plain) (
blame)
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
|
PORTNAME= slurm
DISTVERSION= 25.11.0
PORTREVISION= 1
CATEGORIES= sysutils
MASTER_SITES= https://download.schedmd.com/slurm/
PKGNAMESUFFIX= -wlm
MAINTAINER= rikka.goering@outlook.de
COMMENT= Simple Linux Utility for Resource Management
WWW= https://slurm.schedmd.com/
LICENSE= GPLv2+
LICENSE_FILE= ${WRKSRC}/COPYING
NOT_FOR_ARCHS= armv6 armv7 i386 mips powerpc powerpcspe
NOT_FOR_ARCHS_REASON= 32-bit support is deprecated
LIB_DEPENDS= libhttp_parser.so:www/http-parser \
libjson-c.so:devel/json-c \
libjwt.so:www/libjwt \
liblz4.so:archivers/liblz4 \
libmunge.so:security/munge \
librdkafka.so:net/librdkafka \
libsysinfo.so:devel/libsysinfo \
libunwind.so:devel/libunwind \
libyaml.so:textproc/libyaml
USES= compiler:c11 cpe gmake libtool localbase lua mysql:client perl5 \
pkgconfig python:build readline shebangfix ssl tar:bz2
CPE_VENDOR= schedmd
USE_LDCONFIG= yes
USE_PERL5= build
USE_RC_SUBR= slurmctld slurmd
SHEBANG_FILES= doc/html/shtml2html.py doc/man/man2html.py
GNU_CONFIGURE= yes
# FreeBSD Infiniband support is still experimental
# slurmrestd does not build on FreeBSD
CONFIGURE_ARGS= --disable-dependency-tracking \
--disable-slurmrestd \
--docdir=${DOCSDIR} \
--htmldir=${DOCSDIR} \
--sysconfdir=${ETCDIR} \
--with-mysql_config=${LOCALBASE}/bin
CONFIGURE_ENV= MAKE=${GMAKE}
INSTALL_TARGET= install-strip
TEST_TARGET= check
CFLAGS+= -I${WRKSRC}/slurm
LDFLAGS+= -lsysinfo -lprocstat -fcommon
SUB_FILES= pkg-message
USERS= ${PORTNAME}
GROUPS= ${PORTNAME}
PLIST_SUB= GROUPS=${GROUPS} \
USERS=${USERS}
PORTDOCS= *
OPTIONS_DEFINE= CURL DOCS GUI HDF5 HWLOC IPMI
OPTIONS_DEFAULT= HDF5 HWLOC
OPTIONS_SUB= yes
CURL_DESC= Require cURL for elasticsearch plugins
GUI_DESC= Build sview GUI config tool
HDF5_DESC= Job profiling using HDF5
HWLOC_DESC= Portable hardware locality
IPMI_DESC= IPMI energy consumption accounting
CURL_LIB_DEPENDS= libcurl.so:ftp/curl
CURL_CONFIGURE_WITH= libcurl
DOCS_BUILD_DEPENDS= man2html:textproc/man2html
GUI_BUILD_DEPENDS= itstool:textproc/itstool
GUI_USES= gnome
GUI_USE= GNOME=cairo,gdkpixbuf,glib20,gtk20,pango
GUI_CONFIGURE_ENABLE= glibtest gtktest x11
HDF5_LIB_DEPENDS= libhdf5.so:science/hdf5 \
libhdf5_hl.so:science/hdf5
HDF5_CONFIGURE_WITH= hdf5
HDF5_CONFIGURE_ENV= H5CC=${LOCALBASE}/bin/h5cc \
H5FC=${LOCALBASE}/bin/h5fc
HDF5_LDFLAGS= -lhdf5_hl
HWLOC_LIB_DEPENDS= libhwloc.so.15:devel/hwloc2
HWLOC_CONFIGURE_WITH= hwloc
IPMI_LIB_DEPENDS= libfreeipmi.so:sysutils/freeipmi \
libipmimonitoring.so:sysutils/freeipmi
IPMI_CONFIGURE_WITH= freeipmi
_ARCH= ${ARCH:S|aarch64|aarch64elf|:S|amd64|elf_amd64|:S|powerpc64le|elf64lppc|:S|powerpc64|elf64ppc|:S|riscv64|elf64lriscv|}
# SLURM's configure enables interactive jobs if pty.h exists. Replacing
# #include <pty.h> with appropriate headers will therefore not work, so instead
# add a pty.h for the build.
pre-configure:
${CP} ${FILESDIR}/pty.h ${WRKSRC}/slurm
${REINPLACE_CMD} -e 's|/usr/local|${LOCALBASE}|' ${WRKSRC}/configure
# Make /proc => /compat/linux/proc edits only in files that exist & contain "/proc"
(cd ${WRKSRC} && \
${GREP} -RIl '"/proc' src | ${XARGS} ${REINPLACE_CMD} \
-e 's|"/proc|"/compat/linux/proc|g' \
-e 's|(/proc)|(/compat/linux/proc)|g')
@if ${WHICH} sbatch > /dev/null; then \
${ECHO_CMD} "********************************************"; \
${ECHO_CMD} "Build may fail while slurm-wlm is installed."; \
${ECHO_CMD} "Deinstall slurm-wlm and run make again."; \
${ECHO_CMD} "********************************************"; \
false; \
fi
# Fix lld binary-blob rule: add -m ${_ARCH} wherever --format=binary is used
${FIND} ${WRKSRC} -name Makefile.in -print0 | \
${XARGS} -0 ${GREP} -Il -- '--format=binary' | \
${XARGS} ${REINPLACE_CMD} -e 's|$$(LD) -r -o|$$(LD) -r -m ${_ARCH} -o|'
${FIND} ${WRKSRC} -name Makefile.in | ${XARGS} \
${REINPLACE_CMD} -e 's|htmldir = \$${datadir.*$$|htmldir = @htmldir@|'
# Hack around nonfunctional --disable-gtktest flag
pre-configure-GUI-off:
${REINPLACE_CMD} -e 's|min_gtk_version=.*|min_gtk_version=2000.0.0|' \
${WRKSRC}/configure
post-install:
@${MKDIR} ${STAGEDIR}/var/spool/slurmctld \
${STAGEDIR}${ETCDIR}
${INSTALL_DATA} ${WRKSRC}/etc/slurm.conf.example \
${STAGEDIR}${ETCDIR}/slurm.conf.sample
.include <bsd.port.mk>
|