#
%define kversion @KERNEL_VERSION@
%define kextraver @KERNEL_EXTRA_VERSION@
+%define kextraverdelim @KERNEL_EXTRA_VERSION_DELIMITER@
%define release @KERNEL_RELEASE@
# /usr/src/%{kslnk} -> /usr/src/linux-%{KVERREL}
%define kslnk linux-2.4
Name: kernel-lustre
Version: %{kversion}
Release: %{release}%{?targetboard:%{targetboard}}%{?debuglevel_1:.dbg}
-%define KVERREL %{PACKAGE_VERSION}-%{kextraver}%{?targetboard:%{targetboard}}%{?debuglevel_1:.dbg}
+%define KVERREL %{PACKAGE_VERSION}%{kextraverdelim}%{kextraver}%{?targetboard:%{targetboard}}%{?debuglevel_1:.dbg}
License: GPL
Group: System Environment/Kernel
ExclusiveArch: %{all_x86} x86_64 ia64 ppc
#The Lustre book, sample configurations, and other documentation for
#Lustre.
+# This is required in rpm >= 4.4.? and _should_ be set by the %setup macro
+# but isn't, at least for 4.4.2. Yay RPM.
+%define buildsubdir lustre-kernel-%{version}
+%define _buildsubdir lustre-kernel-%{version}
+
%prep
%setup -n lustre-kernel-%{version} -q -c
if [ ! -d lustre ] ; then
--kerneldir $RPM_SOURCE_DIR \
-j $RPM_BUILD_NCPUS \
--destdir $RPM_BUILD_ROOT \
- -- --disable-tests \
+ -- --enable-tests \
@CONFIGURE_FLAGS@
}
flavext="-$flavor"
flavtgt="$flavor"
fi
- perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{kextraver}${flavtgt}/" $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/Makefile
+ perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = %{kextraverdelim}%{kextraver}${flavtgt}/" $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/Makefile
c="$RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}"
o="${c}-obj/%{_target_cpu}/$flavor"
mkdir -p $o
$MAKE clean
rm -rf $o/.config.old $o/include/config
# Replace the Makefile in the object directory with a version
- # that has relative path names.
+ # that has relative path names. This is done by fixing the Makefile
+ # after the fact to work with 2.6.17 and newer mkmakefile.
read VERSION PATCHLEVEL SUBLEVEL <<-EOF
$(set -- 2.6.5 ; echo ${*//./ })
EOF
+ rm -f $o/Makefile
source scripts/mkmakefile \
../../../linux-%{KVERREL} \
- ../linux-%{KVERREL}-obj/%{_target_cpu}/$flavor \
+ $o \
$VERSION \
$PATCHLEVEL \
- > $o/Makefile
+ > $o/Makefile.in
+ if [ -f $o/Makefile ] ; then
+ # will exist only for 2.6.17 and newer because mkmakefile
+ # now writes the makefile to $o instead of stdout
+ mv -f $o/Makefile $o/Makefile.in
+ fi
+ sed -e "s^$o^../linux-%{KVERREL}-obj/%{_target_cpu}/$flavor^" \
+ $o/Makefile.in > $o/Makefile
zcat "$RPM_BUILD_ROOT/boot/symvers-%{KVERREL}-%{_target_cpu}${flavtgt}.gz" \
> $o/Module.symvers
}
if [ "%{buildup}" -ne 0 ] ; then
BuildObj up
fi
- perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{kextraver}custom/" $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/Makefile
+ perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = %{kextraverdelim}%{kextraver}custom/" $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/Makefile
# Remove $RPM_BUILD_ROOT prefix from symlinks.
for link in $(find $objdir -type l); do
target=$(readlink $link)
ln -s ${target/$RPM_BUILD_ROOT/} $link
done
else # 2.4 rh-style
- perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{kextraver}custom/" $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/Makefile
+ perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = %{kextraverdelim}%{kextraver}custom/" $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/Makefile
# get the one from the build we just completed as it might have picked
# up new options
#cp ../lustre/kernel_patches/kernel_configs/kernel-%{kversion}-@LUSTRE_TARGET@-%{_target_cpu}%{dashtargetboard}.config $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/.config