-# increment this if you have made a change that should force a new kernel
-# to build built
-#BUILD_GEN=1
-#BUILD_GEN=2 # bz19952: remove -lustre tag from kernel RPM names
-BUILD_GEN=3 # bz19975 enable the building of src.rpms by default
-
-DEVEL_KERNEL_TYPE="devel"
-
-prepare_and_build_srpm() {
-
- pushd $TOPDIR >/dev/null
- local GCC_VER=""
- read GCC_VER < <($CC --version)
- GCC_VER=${GCC_VER##* }
- if [[ $GCC_VER = 4.3* ]]; then
- # add the gcc 4.3 kernel build fix patch to it
- cat <<"EOF" >> $TOPDIR/SOURCES/linux-${lnxmaj}-lustre.patch
-diff -urp linux-2.6.18.rawops/Makefile linux-2.6.18.races/Makefile
---- linux-2.6.18.rawops/Makefile 2007-02-08 19:00:31.000000000 +0200
-+++ linux-2.6.18.rawops/Makefile 2007-02-14 19:23:49.000000000 +0200
-@@ -506,6 +506,9 @@ KBUILD_CFLAGS += $(call cc-option,-Wdeclaration-after-statement,)
- # disable pointer signed / unsigned warnings in gcc 4.0
- CFLAGS += $(call cc-option,-Wno-pointer-sign,)
-
-+# workaround to avoid gcc 4.3 emitting libgcc calls (see gcc bug #32044)
-+CFLAGS += $(call cc-option,-fno-tree-scev-cprop,)
-+
- # Default kernel image to build when no specific target is given.
- # KBUILD_IMAGE may be overruled on the command line or
- # set in the environment
-EOF
- fi
-
- # create the buildid
- local buildid="_lustre${EXTRA_VERSION##*_lustre}"
-
- # edit the SPEC with our changes
- sed -i -e 's/^\(%define signmodules \).*/\10/' \
- -e "s/^#% \(define buildid\).*/%\1 ${buildid}/" \
- -e '/-e $RPM_SOURCE_DIR\/kabi_whitelist_/i\
- rm -f $RPM_SOURCE_DIR/kabi_whitelist_%{_target_cpu}$Flavour' \
- -e '/_sourcedir\/kabitool -b \./a\
- cp $RPM_BUILD_ROOT/kabi_whitelist $RPM_SOURCE_DIR/kabi_whitelist_%{_target_cpu}$Flavour' \
- -e '/^# empty final patch file to facilitate testing of kernel patches/i\
-# adds Lustre patches\
-Patch99995: linux-%{kversion}-lustre.patch' \
- -e '/^# conditionally applied test patch for debugging convenience/i\
-# lustre patch\
-%patch99995 -p1\
-' \
- -e '/^%prep$/,/^# END OF PATCH APPLICATIONS$/s/kernel-%{kversion}/%{name}-%{kversion}/g' \
- -e '/find $RPM_BUILD_ROOT\/lib\/modules\/$KernelVer/a\
- cp -a fs/ext3/* $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/fs/ext3 \
- cp -a fs/ext4/* $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/fs/ext4' \
- SPECS/kernel-2.6.spec
-
- if $KERNEL_LUSTRE_NAMING; then
- # these are all of the changes needed because we change the package names
- # to kernel-lustre-*. these should all go away when we stop this insanity
- sed -i -e 's/^\(Name:.*kernel\)/\1-lustre/' \
- -e '/^Provides: glibc-kernheaders = /a\
-Provides: kernel-headers = %{rpmversion}-%{release}
-Obsoletes: kernel-headers
-' \
- -e '/^Provides: kernel-%{_target_cpu} = %{rpmversion}-%{release}$/a\
-Provides: kernel = %{rpmversion}-%{release}
-' \
- -e '/^Provides: kernel-devel-%{_target_cpu} = %{rpmversion}-%{release}$/a\
-Provides: kernel-devel = %{rpmversion}-%{release}
-Obsoletes: kernel-devel
-' \
- -e '/^Provides: %{name}-debuginfo-common-%{_target_cpu} = %{KVERREL}$/a\
-Provides: kernel-debuginfo-common = %{KVERREL}
-Obsoletes: kernel-debuginfo-common
-' \
- -e '/^Provides: %{name}-debuginfo-%{_target_cpu} = %{KVERREL}$/a\
-Provides: kernel-debuginfo = %{KVERREL}
-Obsoletes: kernel-debuginfo
-' \
- SPECS/kernel-2.6.spec
- fi
-
- # XXX - a building-on-Ubuntu hack
- if grep -q "Ubuntu" /etc/issue; then
- sed -i -e 's/^\(BuildPreReq: .*\)$/#NOU \1/g' \
- -e 's/^\(BuildRequires: .*\)$/#NOU \1/g' \
- SPECS/kernel-2.6.spec
- fi
-
- # finally, work around RH bug 491775, if needed
- if ! grep -q "cp -a asm-x86_64 \$RPM_BUILD_ROOT/lib/modules/\$KernelVer/build/include" \
- SPECS/kernel-2.6.spec; then
- # XXX - i wonder if we will need to do this ad-hoc patching enough to
- # formalize a patching system. let's assume not for the time
- # being.
- patch -s -p0 <<"EOF" || fatal 1 "Error while patching SPECS/kernel-2.6.spec"
---- SPECS/kernel-2.6.spec.dist 2009-03-23 20:30:55.000000000 -0400
-+++ SPECS/kernel-2.6.spec 2009-03-23 20:37:03.000000000 -0400
-@@ -6961,6 +6961,10 @@
- cd include
- cp -a acpi config keys linux math-emu media mtd net pcmcia rdma rxrpc scsi sound video asm asm-generic $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
- cp -a `readlink asm` $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
-+ if [ "$Arch" = "i386" ]; then
-+ mkdir -p $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include/asm-x86_64
-+ cp -a asm-x86_64/{stacktrace,k8,pci-direct}.h $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include/asm-x86_64
-+ fi
- if [ "$Arch" = "x86_64" ]; then
- cp -a asm-i386 $RPM_BUILD_ROOT/lib/modules/$KernelVer/build/include
- fi
-EOF
- fi
-
- popd >/dev/null