Hi Michael,
For patches which modify the autoconf-inputs you have to run the
autogen.sh right after the patches are applied, so that the configure
script itself is re-generated. I do it here in the spec-file:
# Set an explicit path to our Linux tree, if we can.
cd $RPM_BUILD_DIR/lustre-%{version}
sh autogen.sh # <--- run the autoconf stuff to re-generate the
configure scripts
# override %optflags so that the vendor's overzealous flags don't create
# build failures
%define optflags -g -O2 -Werror
CONFIGURE_ARGS="%{?configure_args} --with-release=%release"
I assume that this is the main point. I set kversion, kdir, and kobjdir
manually at the top of the spec file (but calling rpmbuild with
appropriate defines should be fine as well).
I have also added the following line:
%{!?is_client: %define is_client 1}
to avoid the complains about the unpatched kernel.
I also apply a few other patches from the master branch on jira but I'm
not sure which ones are actually still needed.
I have started this with 1.8.6 on Scientific Linux 5.5, and some of them
are probably obsolete in the meantime.
Let me know if you are still getting errors, then I'll have a look which
ones are actually needed in addition to the latest one.
best regards,
Martin
On 11/20/2014 12:14 AM, Sternberg, Michael G. wrote:
Martin,
Could you disclose how you managed to compile? - This would be quite interesting for my
system here (Lustre-1.8.9, EL5 servers, EL6 client).
I may be missing something basic. I unpacked a .src.rpm and added your patch to the spec
file:
$ diff SPECS/lustre.spec.orig SPECS/lustre.spec
60a61
> Patch0: lustre-1.8.9wc1-kernel-2.6.32-504.el6.patch
139a141
> %patch0 -p1
I then adapted
https://wiki.hpdd.intel.com/display/PUB/Rebuilding+the+Lustre-client+rpms...
and tried:
rpmbuild --define 'kversion 2.6.32-504.el6.x86_64' \
--define 'kdir /usr/src/kernels/2.6.32-504.el6.x86_64/' \
--without servers \
--bb SPECS/lustre.spec \
2>&1 | tee ./lustre-client-1.8.9-el6.log
I did not get very far:
> ...
> checking for /usr/src/kernels/2.6.32-504.el6.x86_64/include/linux/lustre_version.h...
no
> configure: WARNING: Unpatched kernel detected.
> configure: WARNING: Lustre servers cannot be built with an unpatched kernel;
> configure: WARNING: disabling server build
> ...
> checking which ldiskfs series to use... configure: WARNING: Unknown kernel version
2.6.32-504.el6.x86_64, fix ldiskfs/configure.ac
> ...
> config.status: creating autoMakefile
> Making all in .
> cc1: error: -D__KERNEL__: No such file or directory
> cc1: error: -D__KERNEL__: No such file or directory
> cc1: error: -D__KERNEL__: No such file or directory
> cc1: error: -D__KERNEL__: No such file or directory
> cc1: error: -D__KERNEL__: No such file or directory
> cc1: error: -D__KERNEL__: No such file or directory
> cc1: error: -D__KERNEL__: No such file or directory
> /home/share/soft/rpm/BUILD/lustre-1.8.9/lustre/llite/lloop.c:85:26: error:
linux/config.h: No such file or directory
> make[6]: *** [/home/share/soft/rpm/BUILD/lustre-1.8.9/lnet/lnet/api-errno.o] Error 1
> cc1: error: -D__KERNEL__: No such file or directory
> make[5]: *** [/home/share/soft/rpm/BUILD/lustre-1.8.9/lnet/lnet] Error 2
> make[5]: *** Waiting for unfinished jobs....
> make[6]: *** [/home/share/soft/rpm/BUILD/lustre-1.8.9/lnet/selftest/console.o] Error
1
> make[5]: *** [/home/share/soft/rpm/BUILD/lustre-1.8.9/lnet/selftest] Error 2
> In file included from
/usr/src/kernels/2.6.32-504.el6.x86_64/arch/x86/include/asm/percpu.h:45,
> from
/usr/src/kernels/2.6.32-504.el6.x86_64/arch/x86/include/asm/current.h:5,
> from
/usr/src/kernels/2.6.32-504.el6.x86_64/arch/x86/include/asm/processor.h:15,
> from
/usr/src/kernels/2.6.32-504.el6.x86_64/include/linux/prefetch.h:14,
> from /usr/src/kernels/2.6.32-504.el6.x86_64/include/linux/list.h:7,
> from
/usr/src/kernels/2.6.32-504.el6.x86_64/include/linux/module.h:9,
> from
/home/share/soft/rpm/BUILD/lustre-1.8.9/lustre/llite/lloop.c:87:
> /usr/src/kernels/2.6.32-504.el6.x86_64/include/linux/kernel.h:962:2: error: #warning
Attempt to use kernel headers from user space, see http: [cut off]
> ...
I have kernel-devel, kernel-headers, and rpm-build duly installed.
$ rpm -qa | grep kernel | sort
abrt-addon-kerneloops-2.0.8-26.el6.centos.x86_64
dracut-kernel-004-356.el6.noarch
kernel-2.6.32-279.19.1.el6.x86_64
kernel-2.6.32-504.el6.x86_64
kernel-devel-2.6.32-504.el6.x86_64
kernel-firmware-2.6.32-504.el6.noarch
kernel-headers-2.6.32-504.el6.x86_64
libreport-plugin-kerneloops-2.0.9-21.el6.centos.x86_64
with best regards,
Michael
> On 2014-11-07, at 09:55 , Martin Hecht <hecht(a)hlrs.de> wrote:
> for compiling Whancloud's Lustre 1.8.9 for use with OFED2 on Scientific
> Linux 6.6 running kernel 2.6.32-504.el6.x86_64 I had to backport this
> commit:
>
http://git.whamcloud.com/fs/lustre-release.git/patch/6df47ff8445b7d86ec23...
> It's basically the same patch, just a few minor adjustments to make it
> apply cleanly on the 1.8 branch.
> I'm attaching the backported patch to this mail.
>
>
<lustre-1.8.9wc1-kernel-2.6.32-504.el6.patch>_______________________________________________