Whamcloud - gitweb
LU-3478 iokit: NUMA support in sgpdd-survey
[fs/lustre-release.git] / ldiskfs / lustre-ldiskfs.spec.in
1 # lustre-ldiskfs.spec
2 %{!?version: %define version @VERSION@}
3 %{!?kdir: %define kdir %(dir=$(echo "%configure_args" | sed -ne 's/.*--with-linux=\\([^ ][^ ]*\\).*$/\\1/p'); if [ -n "$dir" ]; then echo "$dir"; else echo "/lib/modules/$(uname -r)/build"; fi)}
4
5 %{!?kobjdir: %define kobjdir %(dir=$(echo "%configure_args" | sed -ne 's/.*--with-linux-obj=\\([^ ][^ ]*\\).*$/\\1/p'); if [ -n "$dir" ]; then echo "$dir"; else echo "%kdir"; fi)}
6
7 # as an alternative to this implementation we could simply "make -C $kdir kernelversion"
8 %{!?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)}
9
10 %{!?downstream_release: %define downstream_release "@DOWNSTREAM_RELEASE@"}
11
12 %define buildid %(if [ -n "@BUILDID@" ]; then echo "_@BUILDID@"; fi)
13
14 %{!?release: %define release %(if [ -n "%downstream_release" ]; then echo -n "%{downstream_release}_"; fi; release=$(echo %kversion | tr '-' '_'); echo ${release})}
15
16 # always append the buildid, even when the caller defines %release
17 %define fullrelease %{release}%{buildid}
18
19 Summary: ldiskfs backend file system
20 Name: lustre-ldiskfs
21 Version: %{version}
22 Release: %{fullrelease}
23 License: GPL
24 Group: Development/Kernel
25 Source: lustre-ldiskfs-%{version}.tar.gz
26 URL: http://www.sun.com/software/products/lustre/index.xml
27 BuildRoot: %{_tmppath}/lustre-ldiskfs-%{version}-root
28 Requires: modutils >= 2.4.10, ldiskfsprogs >= 1.42.7.wc1
29 Provides: lustre-backend-fs
30
31 %description
32 Provides the ldiskfs backend file system kernel module, used by
33 servers in the Lustre file system, for Linux %{kversion}.
34
35 %if 0%{?suse_version}
36 %debug_package
37 %endif
38 %prep
39 %setup -q
40
41 %build
42 # if RPM_BUILD_NCPUS unset, set it
43 if [ -z "$RPM_BUILD_NCPUS" ] ; then
44     RPM_BUILD_NCPUS=$(egrep -c "^cpu[0-9]+" /proc/stat 2>/dev/null || echo 0 :)
45     if [ $RPM_BUILD_NCPUS -eq 0 ] ; then
46         RPM_BUILD_NCPUS=1
47     fi
48     if [ $RPM_BUILD_NCPUS -gt 8 ] ; then
49         RPM_BUILD_NCPUS=8
50     fi
51 fi
52
53 rm -rf $RPM_BUILD_ROOT
54
55 # Set an explicit path to our Linux tree, if we can.
56 cd $RPM_BUILD_DIR/lustre-ldiskfs-%{version}
57 CONFIGURE_ARGS="%{?configure_args} --with-release=%release"
58
59 # if %%kdir was given, make sure it's not in the configure arguments
60 if [ -n "%kdir" ]; then
61         CONFIGURE_ARGS=$(echo $CONFIGURE_ARGS | sed -e 's/"\?--with-linux=[^ ][^ ]* \?//')
62 fi
63 # ditto for %%kobjdir
64 if [ -n "%kobjdir" ]; then
65         CONFIGURE_ARGS=$(echo $CONFIGURE_ARGS | sed -e 's/"\?--with-linux-obj=[^ ][^ ]* \?//')
66 fi
67
68 # we need to eval "configure" because $CONFIGURE_ARGS could have a quoted
69 # string in it which we don't want word splitted by the shell
70 %define eval_configure %(echo '%configure' | sed -e 's#\./configure#eval ./configure#')
71
72 eval ./configure %{?configure_args} \
73         %{?kdir: --with-linux=%kdir} %{?kobjdir: --with-linux-obj=%kobjdir} \
74         --sysconfdir=%{_sysconfdir} \
75         --mandir=%{_mandir} \
76         --libdir=%{_libdir} \
77         $CONFIGURE_ARGS
78 make -j $RPM_BUILD_NCPUS -s
79
80 %install
81 make install DESTDIR=$RPM_BUILD_ROOT
82 # Kernel module needs to be executable at the end of the install
83 # section to allow the find-debuginfo.sh to produce a proper
84 # debuginfo package.  Permissions will be corrected in the files
85 # section.
86 chmod 755 ${RPM_BUILD_ROOT}/lib/modules/%{kversion}/updates/kernel/fs/lustre-ldiskfs/ldiskfs.ko
87
88 # mark modules executable for find-debuginfo.sh
89 find $RPM_BUILD_ROOT/lib/modules/%{kversion}/updates -name "*.ko" -type f | \
90         xargs --no-run-if-empty chmod u+x
91
92 %files
93 %defattr(644, root, root, 755)
94 /lib/modules/%{kversion}/updates/kernel/fs/lustre-ldiskfs
95
96 %post
97 if [ -f /boot/System.map-%{kversion} ]; then
98         depmod -ae -F /boot/System.map-%{kversion} %{kversion} || exit 0
99 else
100         depmod -ae %{kversion} || exit 0
101 fi
102
103 %postun
104 if [ -f /boot/System.map-%{kversion} ]; then
105         depmod -ae -F /boot/System.map-%{kversion} %{kversion} || exit 0
106 else
107         depmod -ae %{kversion} || exit 0
108 fi
109
110 %clean
111 rm -rf $RPM_BUILD_ROOT