Whamcloud - gitweb
LU-4397 utils: fix lfs_df loop for disconnected client
[fs/lustre-release.git] / lustre.spec.in
1 # lustre.spec
2
3 # Declare rpmbuild --with/--without parameters
4 %bcond_without servers
5 %bcond_without ldiskfs
6 %bcond_with zfs
7 %bcond_without lustre_tests
8 %bcond_without lustre_iokit
9
10 %if %{without servers}
11     # --without servers overrides --with {ldiskfs|zfs}
12     # so undefine the internal variables set by bcond_*
13     %undefine with_ldiskfs
14     %undefine with_zfs
15 %endif
16
17 %{!?version: %global version @VERSION@}
18 %{!?kver: %global kver ""}
19 %{!?kdir: %global kdir %(dir=$(echo "%configure_args" | sed -ne 's/.*--with-linux=\\([^ ][^ ]*\\).*$/\\1/p'); if [ -n "$dir" ]; then echo "$dir"; else if [ -n "%kver" ]; then kversion="%kver"; else kversion="$(uname -r)"; fi; echo "/lib/modules/$kversion/source"; fi)}
20
21 %{!?kobjdir: %global kobjdir %(dir=$(echo "%configure_args" | sed -ne 's/.*--with-linux-obj=\\([^ ][^ ]*\\).*$/\\1/p'); if [ -n "$dir" ]; then echo "$dir"; else if [ -n "%kver" ]; then kversion="%kver"; else kversion="$(uname -r)"; fi; if [ "%kdir" = "/lib/modules/$kversion/source" ]; then echo "/lib/modules/$kversion/build"; else echo "%kdir"; fi; fi)}
22
23 # as an alternative to this implementation we could simply "make -C $kdir kernelversion"
24 %{!?kversion: %global kversion %(if test -s %kobjdir/include/generated/utsrelease.h ; then LINUXRELEASEHEADER=%kobjdir/include/generated/utsrelease.h ; elif test -s %kobjdir/include/linux/utsrelease.h ; then LINUXRELEASEHEADER=%kobjdir/include/linux/utsrelease.h ; else LINUXRELEASEHEADER=%kobjdir/include/linux/version.h; fi; sed -ne '/^#define UTS_RELEASE/s/.*"\\(.*\\)"$/\\1/p' $LINUXRELEASEHEADER)}
25
26 %{!?downstream_release: %global downstream_release "@DOWNSTREAM_RELEASE@"}
27
28 %define buildid %(if [ -n "@BUILDID@" ]; then echo "_@BUILDID@"; fi)
29
30 %{!?myrelease: %global myrelease %(if [ -n "%downstream_release" ]; then echo -n "%{downstream_release}_"; fi; echo %kversion | tr '-' '_')}
31
32 # always append the buildid, even when the caller defines %release
33 %define fullrelease %{myrelease}%{buildid}
34
35 # in order to get kernel symset and/or kernel module dependencies into
36 # the RPM, in order to support weak-modules, the internal dependency gen-
37 # erator needs to be disabled
38 # this is done with (reduce the double % down to a single %):
39 #
40 # %%global _use_internal_dependency_generator 0
41 #
42 # on SLES10, /usr/lib/rpm/macros already sets this, so no harm in also
43 # defining it here (until Suse changes their mind)
44 #
45 # on RHEL5, however, we do need to explicitly disable the internal dep-
46 # endency generator and allow the external one be used
47 # but since RedHat's kABI is only a subset of the total kernel ABI, it
48 # doesn't include all of the symbols we (or OFED for that matter) need
49 # until RedHat includes all of the symbols we need in their symsets we
50 # cannot support weak-modules
51 # we did e-mail the maintainer of all of this stuff @redhat but got no
52 # response from them
53 #%%global _use_internal_dependency_generator 0
54
55 # for those uses that don't want the -smp/-bigsmp (or the .arch) on the end
56 # of %kversion
57 %define krequires %(bash -c "echo %{kversion} | sed -e 's/\.x86_64$//' -e 's/\.i[3456]86$//' -e 's/-smp$//' -e 's/-bigsmp$//' -e 's/-ppc64$//' -e 's/-default$//'")
58
59 %define sles10 %(bash -c "if [ "%sles_version" = "10" ]; then echo -n '1'; else echo -n '0'; fi")
60
61 %if %sles10
62 %define flavor %(bash -c "echo %{kversion} | sed -e 's/^.*-//'")
63 %endif
64
65 # Set the package name prefix
66 %if %{undefined lustre_name}
67     %if %{with servers}
68         %global lustre_name lustre
69     %else
70         %global lustre_name lustre-client
71     %endif
72 %endif
73
74 %if %{undefined kmoddir}
75     %if %{defined kernel_module_package_moddir}
76         %global kmoddir %{kernel_module_package_moddir}
77     %else
78         %if %{defined suse_kernel_module_package}
79             %global kmoddir updates
80         %else
81             %global kmoddir extra
82         %endif
83     %endif
84 %endif
85
86 %if %{defined cross_path} && %{defined post_script}
87 %define rpm_post_base %(echo $(dirname %{cross_path})/%{lustre_name})
88 %endif
89
90 Summary: Lustre File System
91 Name: %{lustre_name}
92 Version: %{version}
93 Release: %{fullrelease}
94 License: GPL
95 Group: Utilities/System
96 Source: lustre-%{version}.tar.gz
97 URL: http://wiki.whamcloud.com/
98 BuildRoot: %{_tmppath}/lustre-%{version}-root
99 Obsoletes: lustre-lite, lustre-lite-utils, lustre-ldap nfs-utils-lustre
100 Provides: lustre-lite = %{version}, lustre-lite-utils = %{version}
101 Requires: %{name}-modules = %{version}
102 %if %{with servers}
103 Requires: lustre-osd
104 %endif
105 %if %{defined cross_requires}
106 Requires: %{cross_requires}
107 AutoReqProv: no
108 %else
109 # GSS requires this: BuildRequires: pkgconfig, libgssapi-devel >= 0.10
110 %if %{_vendor}=="redhat" || %{_vendor}=="fedora"
111 #suse don't support selinux
112 BuildRequires: libselinux-devel
113 Requires: libselinux
114 %endif
115 %endif
116
117 %description
118 Userspace tools and files for the Lustre file system.
119
120 %package modules
121 Summary: Kernel Lustre modules for Linux %{kversion}
122 %if %{defined cross_requires}
123 Requires: %{cross_requires}
124 AutoReqProv: no
125 %else
126 # for SLES11, we need nothing here
127 # for SLES10, we need (where %{flavor} is, i.e. smp):
128 %if %sles10
129 Requires: kernel-%{flavor}
130 %else
131 %if %{_vendor}=="redhat" || %{_vendor}=="fedora"
132 # for RHEL we need to require the specific kernel still since weak-modules
133 # support on RH is, well, weak, to be punny about it
134 Requires: kernel = %{krequires}
135 %endif
136 %endif
137 %endif
138 Group: Development/Kernel
139
140 %description modules
141 Lustre file system, server and network drivers for Linux %{kversion}.
142
143 %if %{with ldiskfs}
144 %package osd-ldiskfs
145 Summary: osd-ldiskfs contains both ldiskfs and its osd interface in Lustre.
146 Requires: lustre-modules = %{version}
147 Requires: modutils >= 2.4.10
148 Requires: ldiskfsprogs >= 1.42.7.wc1
149 Provides: lustre-osd
150 Obsoletes: lustre-ldiskfs
151 Group: Development/Kernel
152
153 %description osd-ldiskfs
154 The Lustre Object Storage Device (OSD) API is the interface to access and
155 modify data that is supposed to be stored persistently. This API is the interface
156 to code that bridges individual file systems. This specific package provides an
157 implementation of the OSD API for using the Ldiskfs filesystem as the underlying
158 backing store of a Lustre server.
159 %endif
160
161 %if %{with zfs}
162 %package osd-zfs
163 Summary: osd-zfs is the mandatory glue for ZFS support in Lustre.
164 Requires: lustre-modules = %{version}, zfs-kmod
165 Provides: lustre-osd
166 Group: Development/Kernel
167
168 %description osd-zfs
169 The Lustre Object Storage Device (OSD) API is the interface to access and
170 modify data that is supposed to be stored persistently. This API is the interface
171 to code that bridges individual file systems. This specific package provides an
172 implementation of the OSD API for using the ZFS filesystem as the underlying
173 backing store of a Lustre server.
174 %endif
175
176 %package source
177 Summary: Object-Based Disk storage driver source
178 Group: Development/Kernel
179
180 %description source
181 Lustre sources for further development
182
183 # Since the RPMs we ship are to be used on both SLES and RHEL, we
184 # can't include any dependency information (since the package names
185 # are different on the two platforms).
186 #
187 # Instead, we can build these empty meta-packages that only include
188 # dependency information.  These let people get the correct
189 # dependencies for their platform and lets them use tools like yum and
190 # red carpet to install the correct files.
191 #
192 # Unfortunately I have not seen this come up on the lists much, so I
193 # have disabled them (by commenting out their empty files section
194 # below) until it's clear that they resolve more confusion than they
195 # add.
196
197 %package deps-sles
198 Summary: Lustre dependencies meta-package for SLES
199 Group: Utilities/System
200 Provides: lustre-deps = %{version}
201 Requires: %{name} = %{version}, sles-release
202 Conflicts: %{name}-deps-rhel
203
204 %description deps-sles
205 This package has RPM dependencies appropriate for SLES systems.
206
207 %package deps-rhel
208 Summary: Lustre dependencies meta-package for RHEL
209 Group: Utilities/System
210 Provides: lustre-deps = %{version}
211 Requires: %{name} = %{version}, redhat-release
212 Conflicts: %{name}-deps-sles
213
214 %description deps-rhel
215 This package has RPM dependencies appropriate for RHEL, RHL, and FC
216 systems.
217
218 %package tests
219 Summary: Lustre testing framework
220 Group: Development/Kernel
221 Provides: %{name}-tests = %{version}
222 Requires: %{name} = %{version}, %{name}-modules = %{version}, lustre-iokit
223
224 %description tests
225 This package contains a set of test binaries and scripts that are intended
226 to be used by the Lustre testing framework.
227
228 %if %{with lustre_iokit}
229 %package -n lustre-iokit
230 Summary: The Lustre IO-Kit is a collection of benchmark tools for a cluster with the Lustre file system.
231 Group: Applications/System
232 Requires: python > 2.2, sg3_utils
233
234 %description -n lustre-iokit
235 This package includes five tools:
236 sgpdd-survey:
237 A test of the 'bare metal' performance, bypassing as much of the kernel as we can. Uses the sgp_dd utility.
238
239 obdfilter-survey
240 This survey can be run in 3 modes to test disk I/O including the filesystem,
241 network I/O, and disk I/O via the network.  The script does sequential I/O
242 with varying numbers of threads and objects (files) by using lctl::test_brw
243 to drive the echo_client connected to local or remote obdfilter instances,
244 or remote obdecho instances.
245
246 ost-survey
247 This survey tests the client-to-disk performance of individual OSTs, and
248 ranks then for comparison.
249
250 stats-collect
251 This script will collect IO stats on a defined set of nodes.
252
253 ior-survey:
254 A script to run the IOR benchmark. The latest version can be downloaded from
255 http://www.llnl.gov/asci/purple/benchmarks/limited/ior/
256
257 mds-survey:
258 This survey tests the local metadata performance using the echo_client to drive
259 the MDD layer to perform operations. It is run with multiple threads (to
260 simulate MDT service threads) locally on the MDS node, and does not need Lustre
261 clients in order to run
262 %endif
263
264 %if 0%{?suse_version}
265 %debug_package
266 %endif
267 %prep
268 %setup -qn lustre-%{version}
269 ln lustre/ChangeLog ChangeLog-lustre
270 ln lnet/ChangeLog ChangeLog-lnet
271
272 %build
273 # if RPM_BUILD_NCPUS unset, set it
274 if [ -z "$RPM_BUILD_NCPUS" ] ; then
275     RPM_BUILD_NCPUS=$(egrep -c "^cpu[0-9]+" /proc/stat 2>/dev/null || echo 0 :)
276     if [ $RPM_BUILD_NCPUS -eq 0 ] ; then
277         RPM_BUILD_NCPUS=1
278     fi
279     if [ $RPM_BUILD_NCPUS -gt 8 ] ; then
280         RPM_BUILD_NCPUS=8
281     fi
282 fi
283
284 rm -rf $RPM_BUILD_ROOT
285
286 # Set an explicit path to our Linux tree, if we can.
287 cd $RPM_BUILD_DIR/lustre-%{version}
288 # override %optflags so that the vendor's overzealous flags don't create
289 # build failures
290 %define optflags -g -O2 -Werror
291 CONFIGURE_ARGS="%{?configure_args} --with-release=%release"
292 %if %{with lustre_tests}
293 CONFIGURE_ARGS="$CONFIGURE_ARGS --enable-tests --enable-liblustre-tests"
294 %else
295 CONFIGURE_ARGS="$CONFIGURE_ARGS --disable-tests --disable-liblustre-tests"
296 %endif
297 %if %{without lustre_iokit}
298 CONFIGURE_ARGS="$CONFIGURE_ARGS --disable-iokit"
299 %endif
300
301 # if %%kdir was given, make sure it's not in the configure arguments
302 if [ -n "%kdir" ]; then
303         CONFIGURE_ARGS=$(echo $CONFIGURE_ARGS | sed -e 's/"\?--with-linux=[^ ][^ ]* \?//')
304 fi
305 # ditto for %%kobjdir
306 if [ -n "%kobjdir" ]; then
307         CONFIGURE_ARGS=$(echo $CONFIGURE_ARGS | sed -e 's/"\?--with-linux-obj=[^ ][^ ]* \?//')
308 fi
309 # remove --with-kmp-moddir from configure arguments,
310 # it will be set --with-kmp-moddir=%%kmoddir
311 CONFIGURE_ARGS=$(echo $CONFIGURE_ARGS | sed -e 's/"\?--with-kmp-moddir=[^ ][^ ]* \?//')
312
313 # we need to eval "configure" because $CONFIGURE_ARGS could have a quoted
314 # string in it which we don't want word splitted by the shell
315 # also remove (build|host|target) options because they will be specified
316 # inside $CONFIGURE_ARGS
317 %define eval_configure %(echo '%configure' | sed -e 's#\./configure#eval ./configure#' -e 's/--\\(build\\|host\\|target\\)=[^ ][^ ]* //g')
318
319 %eval_configure \
320         %{?kdir: --with-linux=%kdir} %{?kobjdir: --with-linux-obj=%kobjdir} \
321         $CONFIGURE_ARGS --with-kmp-moddir=%{kmoddir}
322 make -j $RPM_BUILD_NCPUS -s %{?make_args}
323
324 %install
325 make install DESTDIR=$RPM_BUILD_ROOT
326 # hack to avoid changing the libsysio code for "make install"
327 rm -f $RPM_BUILD_ROOT%{_libdir}/libsysio.a
328
329 # hack to include the llog_test module in lustre-tests
330 llog_base=$RPM_BUILD_DIR/lustre-%{version}/lustre/obdclass/llog_test
331 if [ -e ${llog_base}.ko ]; then
332   cp ${llog_base}.ko $RPM_BUILD_ROOT%{?rootdir}/lib/modules/%{kversion}/%{kmoddir}/kernel/fs/lustre
333 elif [ -e ${llog_base}.o ]; then
334   cp ${llog_base}.o $RPM_BUILD_ROOT%{?rootdir}/lib/modules/%{kversion}/%{kmoddir}/kernel/fs/lustre
335 fi
336
337 # The .ha_v2 extension identifies the heartbeat resource agent as using
338 # legacy syntax. Install a compatibility symlink to avoid conflicts when
339 # newer-style agents are added.
340 ln -s Lustre.ha_v2 $RPM_BUILD_ROOT%{_sysconfdir}/ha.d/resource.d/Lustre
341
342 # Create the pristine source directory.
343 cd $RPM_BUILD_DIR/lustre-%{version}
344 mkdir -p $RPM_BUILD_ROOT%{_prefix}/src
345 rm -f lustre-source
346 ln -s $RPM_BUILD_ROOT%{_prefix}/src lustre-source
347 make distdir distdir=lustre-source/lustre-%{version}
348 chmod -R go-w lustre-source/lustre-%{version}
349 # fc18 needs 'x' permission for library files
350 find $RPM_BUILD_ROOT -name '*.so' | xargs chmod +x
351
352 cat >lustre.files <<EOF
353 %attr(-, root, root) %{?rootdir}/sbin/mount.lustre
354 %attr(-, root, root) %{_sbindir}/*
355 %attr(-, root, root) %{_bindir}/lfs
356 %attr(-, root, root) %{_bindir}/lfs_migrate
357 %attr(-, root, root) %{_bindir}/llbackup
358 %attr(-, root, root) %{_bindir}/llobdstat
359 %attr(-, root, root) %{_bindir}/llstat
360 %attr(-, root, root) %{_bindir}/lustre_req_history
361 %attr(-, root, root) %{_bindir}/plot-llstat
362 %attr(-, root, root) %{_bindir}/req_layout
363 %attr(-, root, root) %{_libdir}/libptlctl.a
364 %attr(-, root, root) %{_libdir}/liblustreapi.a
365 %attr(-, root, root) %{_libdir}/liblustreapi.so
366 %attr(-, root, root) %{_mandir}/man?/*
367 %attr(-, root, root) %{_datadir}/lustre
368 %attr(-, root, root) %{_includedir}/lustre
369 %attr(-, root, root) %{_includedir}/libcfs
370 %attr(-, root, root) %{_libexecdir}/lustre/lc_common
371 %attr(-, root, root) %{_sysconfdir}/udev/rules.d/99-lustre.rules
372 %attr(-, root, root) %{_sysconfdir}/init.d/lnet
373 %attr(-, root, root) %{_sysconfdir}/init.d/lustre
374 %attr(-, root, root) %config(noreplace) %{_sysconfdir}/ldev.conf
375 %attr(-, root, root) %{_sysconfdir}/sysconfig/lustre
376 %attr(-, root, root) %{_libexecdir}/lustre/haconfig
377 %attr(-, root, root) %{_sysconfdir}/ha.d/resource.d/Lustre.ha_v2
378 %attr(-, root, root) %{_sysconfdir}/ha.d/resource.d/Lustre
379 EOF
380
381 if [ -f $RPM_BUILD_ROOT%{_libdir}/libcfsutil.a ] ; then
382   echo '%attr(-, root, root) %{_libdir}/libcfsutil.a' >>lustre.files
383 fi
384
385 if [ -f $RPM_BUILD_ROOT%{_libdir}/liblustre.so ] ; then
386   echo '%attr(-, root, root) %{_libdir}/liblustre.a' >>lustre.files
387   echo '%attr(-, root, root) %{_libdir}/liblustre.so' >>lustre.files
388 fi
389
390 if [ -f $RPM_BUILD_ROOT%{_libdir}/libiam.a ] ; then
391   echo '%attr(-, root, root) %{_libdir}/libiam.a' >>lustre.files
392 fi
393
394 if [ -d $RPM_BUILD_ROOT%{_libdir}/lustre/snmp ] ; then
395   echo '%attr(-, root, root) %{_libdir}/lustre/snmp' >>lustre.files
396   echo '%attr(-, root, root) %{_datadir}/lustre/snmp/mibs' >>lustre.files
397 fi
398
399 # Have universal lustre headers
400 if [ -f $RPM_BUILD_DIR/lustre-%{version}/lustre/include/lustre/lustre_idl.h ] ; then
401   echo '%attr(-, root, root) %{_includedir}/linux/lustre_user.h' >>lustre.files
402 else
403   echo '%attr(-, root, root) %{_includedir}/linux/lustre_idl.h' >>lustre.files
404 fi
405
406 if [ -f $RPM_BUILD_DIR/lustre-%{version}/lustre/include/linux/lustre_types.h ] ; then
407   echo '%attr(-, root, root) %{_includedir}/linux/lustre_types.h' >>lustre.files
408 fi
409
410 %if %{with lustre_tests}
411 echo '%attr(-, root, root) %{_libdir}/lustre/tests/*' >lustre-tests.files
412 echo '%attr(-, root, root) %{_bindir}/mcreate' >>lustre-tests.files
413 echo '%attr(-, root, root) %{_bindir}/munlink' >>lustre-tests.files
414 echo '%attr(-, root, root) %{?rootdir}/lib/modules/%{kversion}/%{kmoddir}/kernel/fs/@PACKAGE@/llog_test.ko' >>lustre-tests.files
415 if [ -d $RPM_BUILD_ROOT%{_libdir}/lustre/liblustre/tests ] ; then
416   echo '%attr(-, root, root) %{_libdir}/lustre/liblustre/tests/*' >>lustre-tests.files
417 fi
418 %endif
419
420 %if %{defined cross_path}
421 %if %{defined rpm_post_base}
422 POST_SCRIPT=$RPM_BUILD_DIR/lustre-%{version}/%{post_script}
423 if [ -f $POST_SCRIPT ]; then
424         cp -f $POST_SCRIPT $RPM_BUILD_ROOT/%{rpm_post_base}.sh
425         echo '%attr(0555, root, root) %{rpm_post_base}.sh' >>lustre.files
426         cp -f $POST_SCRIPT $RPM_BUILD_ROOT/%{rpm_post_base}-modules.sh
427 %if %{with ldiskfs}
428         cp -f $POST_SCRIPT $RPM_BUILD_ROOT/%{rpm_post_base}-osd-ldiskfs.sh
429 %endif
430 %if %{with zfs}
431         cp -f $POST_SCRIPT $RPM_BUILD_ROOT/%{rpm_post_base}-osd-zfs.sh
432 %endif
433 %if %{with lustre_tests}
434         cp -f $POST_SCRIPT $RPM_BUILD_ROOT/%{rpm_post_base}-tests.sh
435         echo '%attr(0555, root, root) %{rpm_post_base}-tests.sh' >>lustre-tests.files
436 %endif
437 fi
438 %endif
439 %else
440 # mark modules executable for find-debuginfo.sh
441 find $RPM_BUILD_ROOT%{?rootdir}/lib/modules/%{kversion}/%{kmoddir} -name "*.ko" -type f | \
442         xargs --no-run-if-empty chmod u+x
443 %endif
444
445 %files -f lustre.files
446
447 %files modules
448 %attr(-, root, root) %{?rootdir}/lib/modules/%{kversion}/%{kmoddir}/*
449 %if %{with lustre_tests}
450 %exclude %{?rootdir}/lib/modules/%{kversion}/%{kmoddir}/kernel/fs/@PACKAGE@/llog_test.ko
451 %endif
452 %if %{with ldiskfs}
453 %exclude %{?rootdir}/lib/modules/%{kversion}/%{kmoddir}/kernel/fs/@PACKAGE@/ldiskfs.ko
454 %exclude %{?rootdir}/lib/modules/%{kversion}/%{kmoddir}/kernel/fs/@PACKAGE@/fsfilt_ldiskfs.ko
455 %exclude %{?rootdir}/lib/modules/%{kversion}/%{kmoddir}/kernel/fs/@PACKAGE@/osd_ldiskfs.ko
456 %endif
457 %if %{with zfs}
458 %exclude %{?rootdir}/lib/modules/%{kversion}/%{kmoddir}/kernel/fs/@PACKAGE@/osd_zfs.ko
459 %endif
460 %if %{defined rpm_post_base}
461 %attr(0555, root, root) %{rpm_post_base}-modules.sh
462 %endif
463 %attr(-, root, root) %doc COPYING
464 %attr(-, root, root) %doc ChangeLog-lustre
465 %attr(-, root, root) %doc ChangeLog-lnet
466
467 %if %{with ldiskfs}
468 %files osd-ldiskfs
469 %attr(-, root, root) %{?rootdir}/lib/modules/%{kversion}/%{kmoddir}/kernel/fs/@PACKAGE@/ldiskfs.ko
470 %attr(-, root, root) %{?rootdir}/lib/modules/%{kversion}/%{kmoddir}/kernel/fs/@PACKAGE@/fsfilt_ldiskfs.ko
471 %attr(-, root, root) %{?rootdir}/lib/modules/%{kversion}/%{kmoddir}/kernel/fs/@PACKAGE@/osd_ldiskfs.ko
472 %if %{defined rpm_post_base}
473 %attr(0555, root, root) %{rpm_post_base}-osd-ldiskfs.sh
474 %endif
475 %endif
476
477 %if %{with zfs}
478 %files osd-zfs
479 %attr(-, root, root) %{?rootdir}/lib/modules/%{kversion}/%{kmoddir}/kernel/fs/@PACKAGE@/osd_zfs.ko
480 %if %{defined rpm_post_base}
481 %attr(0555, root, root) %{rpm_post_base}-osd-zfs.sh
482 %endif
483 %endif
484
485 %files source
486 %attr(-, root, root) %{_prefix}/src/lustre-%{version}
487
488 # uncomment these lines to enable deps packages
489 # %files deps-sles
490 # %files deps-rhel
491
492 %if %{with lustre_tests}
493 %files tests -f lustre-tests.files
494 %endif
495
496 %if %{with lustre_iokit}
497 %files -n lustre-iokit
498 %attr(-, root, root) %{_bindir}/ior-survey
499 %attr(-, root, root) %{_bindir}/parse-ior
500 %attr(-, root, root) %{_bindir}/libecho
501 %attr(-, root, root) %{_bindir}/obdfilter-survey
502 %attr(-, root, root) %{_bindir}/plot-obdfilter
503 %attr(-, root, root) %{_bindir}/plot-ost
504 %attr(-, root, root) %{_bindir}/ost-survey
505 %attr(-, root, root) %{_bindir}/sgpdd-survey
506 %attr(-, root, root) %{_bindir}/plot-sgpdd
507 %attr(-, root, root) %{_bindir}/lstats.sh
508 %attr(-, root, root) %{_bindir}/gather_stats_everywhere.sh
509 %attr(-, root, root) %{_bindir}/config.sh
510 %attr(-, root, root) %{_bindir}/mds-survey
511 %doc lustre-iokit/obdfilter-survey/README.obdfilter-survey
512 %doc lustre-iokit/ior-survey/README.ior-survey
513 %doc lustre-iokit/ost-survey/README.ost-survey
514 %doc lustre-iokit/mds-survey/README.mds-survey
515 %doc lustre-iokit/sgpdd-survey/README.sgpdd-survey
516 %doc lustre-iokit/stats-collect/README.lstats.sh
517 %endif
518
519 %if %{defined rpm_post_base}
520 %post
521 if [ -x %{rpm_post_base}.sh ]; then
522         %{rpm_post_base}.sh %{cross_path} create
523 fi
524
525 %preun
526 if [ -x %{rpm_post_base}.sh ]; then
527         %{rpm_post_base}.sh %{cross_path} remove
528 fi
529 %endif
530
531 %post modules
532 %if %{defined rpm_post_base}
533 if [ -x %{rpm_post_base}-modules.sh ]; then
534         %{rpm_post_base}-modules.sh %{cross_path} create
535 fi
536 %else
537 if [ -f /boot/System.map-%{kversion} ]; then
538         depmod -ae -F /boot/System.map-%{kversion} %{kversion} || exit 0
539 else
540         depmod -ae %{kversion} || exit 0
541 fi
542
543 MODULES_RPM_NAME=$(rpm -q %{name}-modules | grep "%{version}-%{release}")
544 # "weak modules" support
545 # Suse
546 if [ -x /usr/lib/module-init-tools/weak-modules ]; then
547     rpm -ql $MODULES_RPM_NAME | grep '\.ko$' |
548         /usr/lib/module-init-tools/weak-modules --add-modules
549 fi
550 # RedHat
551 if [ -x /sbin/weak-modules ]; then
552     rpm -ql $MODULES_RPM_NAME | grep '\.ko$' |
553         /sbin/weak-modules --add-modules
554 fi
555
556 # If the kernel was built to reject unsupported modules (e.g. not a Lustre
557 # kernel), and this hasn't been overridden in /etc/modprobe.d yet, then
558 # print a warning so that users are aware of this issue.
559 if sysctl kernel.unsupported >/dev/null 2>&1 &&
560    [ "$(sysctl -n kernel.unsupported 2>/dev/null)" = "0" ] &&
561     ! modprobe -c | grep -q "^allow_unsupported_modules[ \t]1" ; then
562      echo "
563      warning: the Lustre modules are not supported by Novell. To use Lustre
564               on this system, you should put
565
566      allow_unsupported_modules 1
567
568      into /etc/modprobe.d/unsupported_modules"
569 fi
570 %endif
571
572 %if %{with ldiskfs}
573 %post osd-ldiskfs
574 %if %{defined rpm_post_base}
575 if [ -x %{rpm_post_base}-osd-ldiskfs.sh ]; then
576         %{rpm_post_base}-osd-ldiskfs.sh %{cross_path} create
577 fi
578 %else
579 if [ -f /boot/System.map-%{kversion} ]; then
580        depmod -ae -F /boot/System.map-%{kversion} %{kversion} || exit 0
581 else
582        depmod -ae %{kversion} || exit 0
583 fi
584
585 OSD_LDISKFS_RPM_NAME=$(rpm -q %{name}-osd-ldiskfs | grep "%{version}-%{release}")
586 # "weak modules" support
587 # Suse
588 if [ -x /usr/lib/module-init-tools/weak-modules ]; then
589     rpm -ql $OSD_LDISKFS_RPM_NAME | grep '\.ko$' |
590         /usr/lib/module-init-tools/weak-modules --add-modules
591 fi
592 # RedHat
593 if [ -x /sbin/weak-modules ]; then
594     rpm -ql $OSD_LDISKFS_RPM_NAME | grep '\.ko$' |
595         /sbin/weak-modules --add-modules
596 fi
597
598 # If the kernel was built to reject unsupported modules (e.g. not a Lustre
599 # kernel), and this hasn't been overridden in /etc/modprobe.d yet, then
600 # print a warning so that users are aware of this issue.
601 if sysctl kernel.unsupported >/dev/null 2>&1 &&
602    [ "$(sysctl -n kernel.unsupported 2>/dev/null)" = "0" ] &&
603     ! modprobe -c | grep -q "^allow_unsupported_modules[ \t]1" ; then
604      echo "
605      warning: the Lustre modules are not supported by Novell. To use Lustre
606               on this system, you should put
607
608      allow_unsupported_modules 1
609
610      into /etc/modprobe.d/unsupported_modules"
611 fi
612 %endif
613 %endif
614
615 %if %{with zfs}
616 %post osd-zfs
617 %if %{defined rpm_post_base}
618 if [ -x %{rpm_post_base}-osd-zfs.sh ]; then
619         %{rpm_post_base}-osd-zfs.sh %{cross_path} create
620 fi
621 %else
622 if [ -f /boot/System.map-%{kversion} ]; then
623        depmod -ae -F /boot/System.map-%{kversion} %{kversion} || exit 0
624 else
625        depmod -ae %{kversion} || exit 0
626 fi
627
628 OSD_ZFS_RPM_NAME=$(rpm -q %{name}-osd-zfs | grep "%{version}-%{release}")
629 # "weak modules" support
630 # Suse
631 if [ -x /usr/lib/module-init-tools/weak-modules ]; then
632     rpm -ql $OSD_ZFS_RPM_NAME | grep '\.ko$' |
633         /usr/lib/module-init-tools/weak-modules --add-modules
634 fi
635 # RedHat
636 if [ -x /sbin/weak-modules ]; then
637     rpm -ql $OSD_ZFS_RPM_NAME | grep '\.ko$' |
638         /sbin/weak-modules --add-modules
639 fi
640
641 # If the kernel was built to reject unsupported modules (e.g. not a Lustre
642 # kernel), and this hasn't been overridden in /etc/modprobe.d yet, then
643 # print a warning so that users are aware of this issue.
644 if sysctl kernel.unsupported >/dev/null 2>&1 &&
645    [ "$(sysctl -n kernel.unsupported 2>/dev/null)" = "0" ] &&
646     ! modprobe -c | grep -q "^allow_unsupported_modules[ \t]1" ; then
647      echo "
648      warning: the Lustre modules are not supported by Novell. To use Lustre
649               on this system, you should put
650
651      allow_unsupported_modules 1
652
653      into /etc/modprobe.d/unsupported_modules"
654 fi
655 %endif
656 %endif
657
658 %preun modules
659 %if %{defined rpm_post_base}
660 if [ -x %{rpm_post_base}-modules.sh ]; then
661         %{rpm_post_base}-modules.sh %{cross_path} remove
662 fi
663 %else
664 MODULES_RPM_NAME=$(rpm -q %{name}-modules | grep "%{version}-%{release}")
665 rpm -ql $MODULES_RPM_NAME | grep '\.ko$' > /var/run/%{name}-modules || true
666 %endif
667
668 %if %{with ldiskfs}
669 %preun osd-ldiskfs
670 %if %{defined rpm_post_base}
671 if [ -x %{rpm_post_base}-osd-ldiskfs.sh ]; then
672         %{rpm_post_base}-osd-ldiskfs.sh %{cross_path} remove
673 fi
674 %else
675 OSD_LDISKFS_RPM_NAME=$(rpm -q %{name}-osd-ldiskfs | grep "%{version}-%{release}")
676 rpm -ql $OSD_LDISKFS_RPM_NAME | grep '\.ko$' > /var/run/%{name}-osd-ldiskfs || true
677 %endif
678 %endif
679
680 %if %{with zfs}
681 %preun osd-zfs
682 %if %{defined rpm_post_base}
683 if [ -x %{rpm_post_base}-osd-zfs.sh ]; then
684         %{rpm_post_base}-osd-zfs.sh %{cross_path} remove
685 fi
686 %else
687 OSD_ZFS_RPM_NAME=$(rpm -q %{name}-osd-zfs | grep "%{version}-%{release}")
688 rpm -ql $OSD_ZFS_RPM_NAME | grep '\.ko$' > /var/run/%{name}-osd-zfs || true
689 %endif
690 %endif
691
692 %if %{undefined cross_path}
693 %postun modules
694 if [ -f /boot/System.map-%{kversion} ]; then
695         depmod -ae -F /boot/System.map-%{kversion} %{kversion} || exit 0
696 else
697         depmod -ae %{kversion} || exit 0
698 fi
699
700 # "weak modules" support
701 # Suse
702 if [ -x /usr/lib/module-init-tools/weak-modules ]; then
703     cat /var/run/%{name}-modules |
704         /usr/lib/module-init-tools/weak-modules --remove-modules
705 fi
706 # RedHat
707 if [ -x /sbin/weak-modules ]; then
708     cat /var/run/%{name}-modules |
709         /sbin/weak-modules --remove-modules
710 fi
711 rm /var/run/%{name}-modules
712
713 %if %{with ldiskfs}
714 %postun osd-ldiskfs
715 if [ -f /boot/System.map-%{kversion} ]; then
716        depmod -ae -F /boot/System.map-%{kversion} %{kversion} || exit 0
717 else
718        depmod -ae %{kversion} || exit 0
719 fi
720
721 # "weak modules" support
722 # Suse
723 if [ -x /usr/lib/module-init-tools/weak-modules ]; then
724     cat /var/run/%{name}-osd-ldiskfs |
725         /usr/lib/module-init-tools/weak-modules --remove-modules
726 fi
727 # RedHat
728 if [ -x /sbin/weak-modules ]; then
729     cat /var/run/%{name}-osd-ldiskfs |
730         /sbin/weak-modules --remove-modules
731 fi
732 rm /var/run/%{name}-osd-ldiskfs
733 %endif
734
735 %if %{with zfs}
736 %postun osd-zfs
737 if [ -f /boot/System.map-%{kversion} ]; then
738        depmod -ae -F /boot/System.map-%{kversion} %{kversion} || exit 0
739 else
740        depmod -ae %{kversion} || exit 0
741 fi
742
743 # "weak modules" support
744 # Suse
745 if [ -x /usr/lib/module-init-tools/weak-modules ]; then
746     cat /var/run/%{name}-osd-zfs |
747         /usr/lib/module-init-tools/weak-modules --remove-modules
748 fi
749 # RedHat
750 if [ -x /sbin/weak-modules ]; then
751     cat /var/run/%{name}-osd-zfs |
752         /sbin/weak-modules --remove-modules
753 fi
754 rm /var/run/%{name}-osd-zfs
755 %endif
756 %endif
757
758 %if %{with lustre_tests}
759 %post tests
760 %if %{defined rpm_post_base}
761 if [ -x %{rpm_post_base}-tests.sh ]; then
762         %{rpm_post_base}-tests.sh %{cross_path} create
763 fi
764
765 %preun tests
766 if [ -x %{rpm_post_base}-tests.sh ]; then
767         %{rpm_post_base}-tests.sh %{cross_path} remove
768 fi
769 %else
770 if [ -f /boot/System.map-%{kversion} ]; then
771         depmod -ae -F /boot/System.map-%{kversion} %{kversion} || exit 0
772 else
773         depmod -ae %{kversion} || exit 0
774 fi
775
776 %postun tests
777 if [ -f /boot/System.map-%{kversion} ]; then
778         depmod -ae -F /boot/System.map-%{kversion} %{kversion} || exit 0
779 else
780         depmod -ae %{kversion} || exit 0
781 fi
782 %endif
783 %endif
784
785 %clean
786 rm -rf $RPM_BUILD_ROOT