Gentoo Archives: gentoo-commits

From: "Alexey Shvetsov (alexxy)" <alexxy@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] gentoo-x86 commit in sys-cluster/slurm: slurm-2.6.3.ebuild ChangeLog
Date: Mon, 04 Nov 2013 11:24:12
Message-Id: 20131104112405.E80D22004B@flycatcher.gentoo.org
1 alexxy 13/11/04 11:24:05
2
3 Modified: ChangeLog
4 Added: slurm-2.6.3.ebuild
5 Log:
6 Version bump per bug #488310
7
8 (Portage version: 2.2.7/cvs/Linux x86_64, signed Manifest commit with key F82F92E6)
9
10 Revision Changes Path
11 1.25 sys-cluster/slurm/ChangeLog
12
13 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-cluster/slurm/ChangeLog?rev=1.25&view=markup
14 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-cluster/slurm/ChangeLog?rev=1.25&content-type=text/plain
15 diff : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-cluster/slurm/ChangeLog?r1=1.24&r2=1.25
16
17 Index: ChangeLog
18 ===================================================================
19 RCS file: /var/cvsroot/gentoo-x86/sys-cluster/slurm/ChangeLog,v
20 retrieving revision 1.24
21 retrieving revision 1.25
22 diff -u -r1.24 -r1.25
23 --- ChangeLog 2 Jun 2013 19:46:40 -0000 1.24
24 +++ ChangeLog 4 Nov 2013 11:24:05 -0000 1.25
25 @@ -1,6 +1,11 @@
26 # ChangeLog for sys-cluster/slurm
27 # Copyright 1999-2013 Gentoo Foundation; Distributed under the GPL v2
28 -# $Header: /var/cvsroot/gentoo-x86/sys-cluster/slurm/ChangeLog,v 1.24 2013/06/02 19:46:40 alexxy Exp $
29 +# $Header: /var/cvsroot/gentoo-x86/sys-cluster/slurm/ChangeLog,v 1.25 2013/11/04 11:24:05 alexxy Exp $
30 +
31 +*slurm-2.6.3 (04 Nov 2013)
32 +
33 + 04 Nov 2013; Alexey Shvetsov <alexxy@g.o> +slurm-2.6.3.ebuild:
34 + Version bump per bug #488310
35
36 *slurm-2.5.6 (02 Jun 2013)
37
38
39
40
41 1.1 sys-cluster/slurm/slurm-2.6.3.ebuild
42
43 file : http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-cluster/slurm/slurm-2.6.3.ebuild?rev=1.1&view=markup
44 plain: http://sources.gentoo.org/viewvc.cgi/gentoo-x86/sys-cluster/slurm/slurm-2.6.3.ebuild?rev=1.1&content-type=text/plain
45
46 Index: slurm-2.6.3.ebuild
47 ===================================================================
48 # Copyright 1999-2013 Gentoo Foundation
49 # Distributed under the terms of the GNU General Public License v2
50 # $Header: /var/cvsroot/gentoo-x86/sys-cluster/slurm/slurm-2.6.3.ebuild,v 1.1 2013/11/04 11:24:05 alexxy Exp $
51
52 EAPI=5
53
54 if [[ ${PV} == *9999* ]]; then
55 EGIT_REPO_URI="git://github.com/SchedMD/slurm.git"
56 INHERIT_GIT="git-2"
57 SRC_URI=""
58 KEYWORDS=""
59 else
60 inherit versionator
61 if [[ ${PV} == *pre* || ${PV} == *rc* ]]; then
62 MY_PV=$(replace_version_separator 3 '-0.') # pre-releases or release-candidate
63 else
64 MY_PV=$(replace_version_separator 3 '-') # stable releases
65 fi
66 MY_P="${PN}-${MY_PV}"
67 INHERIT_GIT=""
68 SRC_URI="http://www.schedmd.com/download/total/${MY_P}.tar.bz2"
69 KEYWORDS="~amd64 ~x86"
70 S="${WORKDIR}/${MY_P}"
71 fi
72
73 inherit autotools base eutils pam perl-module user ${INHERIT_GIT}
74
75 DESCRIPTION="SLURM: A Highly Scalable Resource Manager"
76 HOMEPAGE="http://www.schedmd.com"
77
78 LICENSE="GPL-2"
79 SLOT="0"
80 IUSE="lua maui multiple-slurmd +munge mysql pam perl postgres ssl static-libs torque ypbind"
81
82 DEPEND="
83 !sys-cluster/torque
84 !net-analyzer/slurm
85 !net-analyzer/sinfo
86 mysql? ( dev-db/mysql )
87 munge? ( sys-auth/munge )
88 ypbind? ( net-nds/ypbind )
89 pam? ( virtual/pam )
90 postgres? ( dev-db/postgresql-base )
91 ssl? ( dev-libs/openssl )
92 lua? ( dev-lang/lua )
93 !lua? ( !dev-lang/lua )
94 >=sys-apps/hwloc-1.1.1-r1"
95 RDEPEND="${DEPEND}
96 dev-libs/libcgroup
97 maui? ( sys-cluster/maui[slurm] )"
98
99 REQUIRED_USE="torque? ( perl )"
100
101 LIBSLURM_PERL_S="${WORKDIR}/${P}/contribs/perlapi/libslurm/perl"
102 LIBSLURMDB_PERL_S="${WORKDIR}/${P}/contribs/perlapi/libslurmdb/perl"
103
104 RESTRICT="primaryuri"
105
106 PATCHES=(
107 "${FILESDIR}/${PN}-2.5.4-nogtk.patch"
108 )
109
110 src_unpack() {
111 if [[ ${PV} == *9999* ]]; then
112 git-2_src_unpack
113 else
114 default
115 fi
116 }
117
118 pkg_setup() {
119 enewgroup slurm 500
120 enewuser slurm 500 -1 /var/spool/slurm slurm
121 }
122
123 src_prepare() {
124 # Gentoo uses /sys/fs/cgroup instead of /cgroup
125 # FIXME: Can the "^/cgroup" and "\([ =\"]\)/cgroup" patterns be merged?
126 sed \
127 -e 's|\([ =\"]\)/cgroup|\1/sys/fs/cgroup|g' \
128 -e "s|^/cgroup|/sys/fs/cgroup|g" \
129 -i "${S}/doc/man/man5/cgroup.conf.5" \
130 -i "${S}/etc/cgroup.release_common.example" \
131 -i "${S}/src/common/xcgroup_read_config.c" \
132 || die "Can't sed /cgroup for /sys/fs/cgroup"
133 # and pids should go to /var/run/slurm
134 sed -e 's:/var/run/slurmctld.pid:/var/run/slurm/slurmctld.pid:g' \
135 -e 's:/var/run/slurmd.pid:/var/run/slurm/slurmd.pid:g' \
136 -i "${S}/etc/slurm.conf.example" \
137 || die "Can't sed for /var/run/slurmctld.pid"
138 # also state dirs are in /var/spool/slurm
139 sed -e 's:StateSaveLocation=*.:StateSaveLocation=/var/spool/slurm:g' \
140 -e 's:SlurmdSpoolDir=*.:SlurmdSpoolDir=/var/spool/slurm/slurmd:g' \
141 -i "${S}/etc/slurm.conf.example" \
142 || die "Can't sed ${S}/etc/slurm.conf.example for StateSaveLocation=*. or SlurmdSpoolDir=*"
143 # and tmp should go to /var/tmp/slurm
144 sed -e 's:/tmp:/var/tmp:g' \
145 -i "${S}/etc/slurm.conf.example" \
146 || die "Can't sed for StateSaveLocation=*./tmp"
147 # disable sview since it need gtk+
148 sed -e '/sview/d' \
149 -i configure.ac
150 sed -e 's:sview::g' \
151 -i src/Makefile.am
152 # apply patches
153 epatch "${PATCHES[@]}"
154 elibtoolize
155 eautoreconf
156 }
157
158 src_configure() {
159 local myconf=(
160 --sysconfdir="${EPREFIX}/etc/${PN}"
161 --with-hwloc="${EPREFIX}/usr"
162 --docdir="${EPREFIX}/usr/share/doc/${P}"
163 --htmldir="${EPREFIX}/usr/share/doc/${P}"
164 )
165 use pam && myconf+=( --with-pam_dir=$(getpam_mod_dir) )
166 use mysql || myconf+=( --without-mysql_config )
167 use postgres || myconf+=( --without-pg_config )
168 econf "${myconf[@]}" \
169 $(use_enable pam) \
170 $(use_with ssl) \
171 $(use_with munge) \
172 $(use_enable static-libs static) \
173 $(use_enable multiple-slurmd)
174
175 # --htmldir does not seems to propagate... Documentations are installed
176 # in /usr/share/doc/slurm-2.3.0/html
177 # instead of /usr/share/doc/slurm-2.3.0.2/html
178 sed -e "s|htmldir = .*/html|htmldir = \${prefix}/share/doc/slurm-${PVR}/html|g" -i doc/html/Makefile || die
179 if use perl ; then
180 # small hack to make it compile
181 mkdir -p "${S}/src/api/.libs"
182 mkdir -p "${S}/src/db_api/.libs"
183 touch "${S}/src/api/.libs/libslurm.so"
184 touch "${S}/src/db_api/.libs/libslurmdb.so"
185 cd "${LIBSLURM_PERL_S}"
186 S="${LIBSLURM_PERL_S}" SRC_PREP="no" perl-module_src_configure
187 cd "${LIBSLURMDB_PERL_S}"
188 S="${LIBSLURMDB_PERL_S}" SRC_PREP="no" perl-module_src_configure
189 cd "${S}"
190 rm -rf "${S}/src/api/.libs" "${S}/src/db_api/.libs"
191 fi
192 }
193
194 src_compile() {
195 default
196 use pam && emake -C contribs/pam || die
197 if use perl ; then
198 cd "${LIBSLURM_PERL_S}"
199 S="${LIBSLURM_PERL_S}" perl-module_src_compile
200 cd "${LIBSLURMDB_PERL_S}"
201 S="${LIBSLURMDB_PERL_S}" perl-module_src_compile
202 cd "${S}"
203 fi
204 if use torque ; then
205 emake -C contribs/torque || die
206 fi
207 }
208
209 src_install() {
210 default
211 use pam && emake DESTDIR="${D}" -C contribs/pam install || die
212 if use perl; then
213 cd "${LIBSLURM_PERL_S}"
214 S="${LIBSLURM_PERL_S}" perl-module_src_install
215 cd "${LIBSLURMDB_PERL_S}"
216 S="${LIBSLURMDB_PERL_S}" perl-module_src_install
217 cd "${S}"
218 fi
219 if use torque; then
220 emake DESTDIR="${D}" -C contribs/torque || die
221 rm -f "${ED}/usr/bin/mpiexec" || die
222 fi
223 use static-libs || find "${ED}" -name '*.la' -exec rm {} +
224 # install sample configs
225 keepdir /etc/slurm
226 insinto /etc/slurm
227 doins etc/bluegene.conf.example
228 doins etc/cgroup.conf.example
229 doins etc/cgroup_allowed_devices_file.conf.example
230 doins etc/slurm.conf.example
231 doins etc/slurmdbd.conf.example
232 exeinto /etc/slurm
233 doexe etc/cgroup.release_common.example
234 doexe etc/slurm.epilog.clean
235 # install init.d files
236 newinitd "${FILESDIR}/slurmd.initd" slurmd
237 newinitd "${FILESDIR}/slurmctld.initd" slurmctld
238 newinitd "${FILESDIR}/slurmdbd.initd" slurmdbd
239 # install conf.d files
240 newconfd "${FILESDIR}/slurm.confd" slurm
241 # Install logrotate file
242 insinto /etc/logrotate.d
243 newins "${FILESDIR}/logrotate" slurm || die
244 # cgroups support
245 exeinto /etc/slurm/cgroup
246 doexe etc/cgroup.release_common.example
247 mv "${D}"/etc/slurm/cgroup/cgroup.release_common.example "${D}"/etc/slurm/cgroup/release_common || die "Can't move cgroup.release_common.example"
248 ln -s release_common "${D}"/etc/slurm/cgroup/release_cpuset || die "Can't create symbolic link release_cpuset"
249 ln -s release_common "${D}"/etc/slurm/cgroup/release_devices || die "Can't create symbolic link release_devices"
250 ln -s release_common "${D}"/etc/slurm/cgroup/release_freezer || die "Can't create symbolic link release_freezer"
251 }
252
253 pkg_preinst() {
254 if use munge; then
255 sed -i 's,\(SLURM_USE_MUNGE=\).*,\11,' "${D}"etc/conf.d/slurm || die
256 fi
257 if use ypbind; then
258 sed -i 's,\(SLURM_USE_YPBIND=\).*,\11,' "${D}"etc/conf.d/slurm || die
259 fi
260 }
261
262 create_folders_and_fix_permissions() {
263 einfo "Fixing permissions in ${@}"
264 mkdir -p ${@}
265 chown -R ${PN}:${PN} ${@}
266 }
267
268 pkg_postinst() {
269 paths=(
270 /var/${PN}/checkpoint
271 /var/${PN}
272 /var/spool/${PN}/slurmd
273 /var/spool/${PN}
274 /var/run/${PN}
275 /var/log/${PN}
276 /var/tmp/${PN}/${PN}d
277 /var/tmp/${PN}
278 )
279 for folder_path in ${paths[@]}; do
280 create_folders_and_fix_permissions $folder_path
281 done
282 einfo
283
284 elog "Please visit the file '/usr/share/doc/${P}/html/configurator.html"
285 elog "through a (javascript enabled) browser to create a configureation file."
286 elog "Copy that file to /etc/slurm/slurm.conf on all nodes (including the headnode) of your cluster."
287 einfo
288 elog "For cgroup support, please see http://www.schedmd.com/slurmdocs/cgroup.conf.html"
289 elog "Your kernel must be compiled with the wanted cgroup feature:"
290 elog " General setup --->"
291 elog " [*] Control Group support --->"
292 elog " [*] Freezer cgroup subsystem"
293 elog " [*] Device controller for cgroups"
294 elog " [*] Cpuset support"
295 elog " [*] Simple CPU accounting cgroup subsystem"
296 elog " [*] Resource counters"
297 elog " [*] Memory Resource Controller for Control Groups"
298 elog " [*] Group CPU scheduler --->"
299 elog " [*] Group scheduling for SCHED_OTHER"
300 elog "Then, set these options in /etc/slurm/slurm.conf:"
301 elog " ProctrackType=proctrack/cgroup"
302 elog " TaskPlugin=task/cgroup"
303 einfo
304 ewarn "Paths were created for slurm. Please use these paths in /etc/slurm/slurm.conf:"
305 for folder_path in ${paths[@]}; do
306 ewarn " ${folder_path}"
307 done
308 }