%define __spec_install_post /usr/lib/rpm/brp-compress || :
#
# RPM foo magic
-%define _missing_doc_files_terminate_build 0
+%define _missing_doc_files_terminate_build 0
%define _unpackaged_files_terminate_build 0
%define debug_package %{nil}
%define buildjensen 0
%define buildsmp 0
%define buildbigsmp 0
+%define buildpseries64 0
%define buildup 0
%define buildsrc 0
%define buildbigsmp 1
%endif
+%ifarch @PSERIES64_ARCHS@
+%define buildpseries64 1
+%endif
+
%ifarch @UP_ARCHS@
%define buildup 1
%endif
%define buildbigsmp 0
%define buildBOOT 0
%define buildbigmem 0
+%define buildpseries64 0
%define buildjensen 0
%endif
%{expand: %%define buildup_%{buildup} yadda}
%{expand: %%define buildsmp_%{buildsmp} yadda}
%{expand: %%define buildbigsmp_%{buildbigsmp} yadda}
+%{expand: %%define buildpseries64_%{buildpseries64} yadda}
%{expand: %%define buildBOOT_%{buildBOOT} yadda}
%{expand: %%define buildbigmem_%{buildbigmem} yadda}
%{expand: %%define buildjensen_%{buildjensen} yadda}
%ifarch alpha
%define kernel_glob vmlinu?-%{KVERREL}
%endif
+%ifarch ppc ppc64
+%define kernel_glob vmlinu?-%{KVERREL}
+%endif
Name: kernel
Version: %{kversion}
Install the kernel-bigsmp package if your machine uses two or more CPUs.
+%package pseries64
+Summary: Standard Kernel for 64-bit Power based SMP and LPAR Machines
+Group: System/Kernel
+Provides: module-info, kernel = %{version}, k_smp4G
+%ifarch %{all_x86} ia64 x86_64
+Provides: kernel-drm = 4.1.0, kernel-drm = 4.2.0, kernel-drm = 4.3.0, kernel-drm = 4.2.99.3
+%endif
+%if %{rhbuild}
+Prereq: %{kernel_prereq}
+Conflicts: %{kernel_conflicts}
+%endif
+
+%description pseries64
+The standard kernel for Power3, Power4 and PowerPC 970 64-bit SMP
+machines.
+
+This kernel can be used for all 64bit RS/6000, pSeries and JS20
+machines.
+
%package bigmem
Summary: The Linux Kernel for machines with more than 4 Gigabyte of memory.
Group: System Environment/Kernel
popd >/dev/null
# handle both SuSE and Red Hat's new-kernel-pkg bits
-for flavor in "" smp bigmem bigsmp BOOT jensen ; do
+for flavor in "" smp bigmem bigsmp pseries64 BOOT jensen ; do
for when in pre preun post postun ; do
script="${when}${flavor}.sh"
echo "if [ -f /etc/SuSE-release ] ; then" > ${script}
;;
esac
done
+
+ cat > "kernel$flavor.files" <<EOF
+%%defattr(-, root, root)
+/boot/%{kernel_glob}${flavor}
+/boot/System.map-%{KVERREL}${flavor}
+/boot/config-%{KVERREL}${flavor}
+%%dir /lib/modules
+%%dir /dev/shm
+/lib/modules/%{KVERREL}${flavor}
+%ifarch ia64
+/boot/efi/redhat/%{kernel_glob}${flavor}
+%endif
+%if %{linux26}
+%if %{susebuild}
+/boot/Kerntypes-%{KVERREL}${flavor}
+%endif
+/boot/symvers-%{KVERREL}-%{_target_cpu}${flavor}.gz
+%endif
+EOF
+
done
+cat > kernel-source.files <<EOF
+%%defattr(-,root,root)
+%%dir /usr/src/linux-%{KVERREL}
+/usr/src/linux-%{KVERREL}/*
+%if %{linux26}
+%%dir /usr/src/linux-%{KVERREL}-obj
+/usr/src/linux-%{KVERREL}-obj/*
+%endif
+EOF
+
%build
# if RPM_BUILD_NCPUS unset, set it
if [ -z "$RPM_BUILD_NCPUS" ] ; then
sh -x ./build/lmake \
--build-kernel --build-lustre \
--install \
+ --save-headers \
--target @LUSTRE_TARGET@ \
--target-arch %{_target_cpu} \
${target_config} \
BuildKernel bigsmp
%endif
+%if %{buildpseries64}
+BuildKernel pseries64
+%endif
+
%if %{buildup}
BuildKernel
%endif
%if %{buildbase}
BuildLustre
-SaveHeaders
%endif
popd >/dev/null
fi
done
MAKE="make -s O=$o -C ${c}"
- $MAKE $OLDCONFIG
- $MAKE prepare-all
+ if [ "$CC" ] ; then
+ MAKE_CC="CC=$CC"
+ fi
+ $MAKE "$MAKE_CC" $OLDCONFIG
+ $MAKE "$MAKE_CC" prepare-all
$MAKE clean
rm -rf $o/.config.old $o/include/config
# Replace the Makefile in the object directory with a version
##
## do -source package cleanup/install
##
-%if %{buildbase}
+if [ "%{buildbase}" -ne 0 ] ; then
pushd linux >/dev/null
mkdir -p $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}
rm -f drivers/net/hamradio/soundmodem/gentbl scripts/mkdep
rm -rf $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/configs
mkdir -p $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/configs
cp ../lustre/kernel_patches/kernel_configs/kernel-%{kversion}-@LUSTRE_TARGET@*.config $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/configs
- %if %{linux26}
+ if [ "%{linux26}" -ne 0 ] ; then
# this only works because CFS only builds one kernel per target/arch per kernel-source rpm
objdir=$RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}-obj
mkdir -p $objdir
- %if %{buildbigmem}
- BuildObj bigmem
- %endif
- %if %{buildBOOT}
- BuildObj BOOT
- %endif
- %if %{buildjensen}
- BuildObj jensen
- %endif
- %if %{buildsmp}
- BuildObj smp
- %endif
- %if %{buildbigsmp}
- BuildObj bigsmp
- %endif
- %if %{buildup}
- BuildObj up
- %endif
+ if [ "%{buildbigmem}" -ne 0 ] ; then
+ BuildObj bigmem
+ fi
+ if [ "%{buildBOOT}" -ne 0 ] ; then
+ BuildObj BOOT
+ fi
+ if [ "%{buildjensen}" -ne 0 ] ; then
+ BuildObj jensen
+ fi
+ if [ "%{buildsmp}" -ne 0 ] ; then
+ BuildObj smp
+ fi
+ if [ "%{buildbigsmp}" -ne 0 ] ; then
+ BuildObj bigsmp
+ fi
+ if [ "%{buildpseries64}" -ne 0 ] ; then
+ BuildObj pseries64
+ fi
+ 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
# Remove $RPM_BUILD_ROOT prefix from symlinks.
for link in $(find $objdir -type l); do
rm -f $link
ln -s ${target/$RPM_BUILD_ROOT/} $link
done
- %else # 2.4 rh-style
+ else # 2.4 rh-style
perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = -%{kextraver}custom/" $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/Makefile
cp ../lustre/kernel_patches/kernel_configs/kernel-%{kversion}-@LUSTRE_TARGET@-%{_target_cpu}%{dashtargetboard}.config $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/.config
for oc in oldconfig_nonint silentoldconfig oldconfig ; do
break
fi
done
- make -s $OLDCONFIG -C $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}
- %if %{linux26}
- make -s include/asm -C $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}
- %else
- make -s symlinks -C $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}
- %endif
- make -s include/linux/version.h -C $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}
+ if [ "$CC" ] ; then
+ MAKE_CC="CC=$CC"
+ fi
+ make "$MAKE_CC" -s $OLDCONFIG -C $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}
+ make "$MAKE_CC" -s symlinks -C $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}
+ make "$MAKE_CC" -s include/linux/version.h -C $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}
#this generates modversions info which we want to include and we may as
#well include the depends stuff as well, after we fix the paths
install -m 644 %{SOURCE15} rhconfig.h
echo "#include <linux/rhconfig.h>" >> version.h
keyword=if
- for i in smp BOOT BOOTsmp bigmem bigsmp up ; do
+ for i in smp BOOT BOOTsmp bigmem bigsmp pseries64 up ; do
# When we build in an i386, we don't have an bigmem header directory
# in savedheaders/i386/bigmem. We also don't have a BOOT directory
# anywhere except in savedheaders/i386. So, we need to use this method
rm -rf $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/savedheaders
- %if %{rhbuild}
+ if [ "%{rhbuild}" -ne 0 ] ; then
# fix up the tmp_include_depends file wrt the buildroot
perl -p -i -e "s|$RPM_BUILD_ROOT||g" $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/tmp_include_depends
- %endif
- %endif # linux26
+ fi
+ fi # linux26
popd >/dev/null
-%endif # buildbase
+fi # buildbase
popd >/dev/null
%pre bigsmp -f prebigsmp.sh
+%pre pseries64 -f prepseries64.sh
+
%pre bigmem -f prebigmem.sh
%post -f post.sh
+%post pseries64 -f postpseries64.sh
+
%post smp -f postsmp.sh
%post bigsmp -f postbigsmp.sh
# Allow clean removal of modules directory
%preun -f preun.sh
+%preun pseries64 -f preunpseries64.sh
+
%preun smp -f preunsmp.sh
%preun bigsmp -f preunbigsmp.sh
# suse needs these i guess
%postun -f postun.sh
+%postun pseries64 -f postunpseries64.sh
+
%postun smp -f postunsmp.sh
%postun bigsmp -f postunbigsmp.sh
%triggerin bigsmp -- kudzu
[ -x /usr/sbin/module_upgrade ] && /usr/sbin/module_upgrade || :
+%triggerin pseries64 -- kudzu
+[ -x /usr/sbin/module_upgrade ] && /usr/sbin/module_upgrade || :
+
%triggerin bigmem -- kudzu
[ -x /usr/sbin/module_upgrade ] && /usr/sbin/module_upgrade || :
###
%if %{buildup}
-%files
-%defattr(-, root, root)
-/boot/%{kernel_glob}
-%ifarch ia64
-/boot/efi/redhat/%{kernel_glob}
-%endif
-/boot/System.map-%{KVERREL}
-/boot/config-%{KVERREL}
-%dir /lib/modules
-%dir /dev/shm
-/lib/modules/%{KVERREL}
-%if %{linux26}
-/boot/Kerntypes-%{KVERREL}
-/boot/symvers-%{KVERREL}-%{_target_cpu}.gz
-%endif # linux26
+%files -f kernel.files
%endif
%if %{buildsmp}
-%files smp
-%defattr(-, root, root)
-/boot/%{kernel_glob}smp
-%ifarch ia64
-/boot/efi/redhat/%{kernel_glob}smp
-%endif
-/boot/System.map-%{KVERREL}smp
-/boot/config-%{KVERREL}smp
-%dir /lib/modules
-%dir /dev/shm
-/lib/modules/%{KVERREL}smp
-%if %{linux26}
-/boot/Kerntypes-%{KVERREL}smp
-/boot/symvers-%{KVERREL}-%{_target_cpu}smp.gz
-%endif # linux26
+%files smp -f kernelsmp.files
%endif
%if %{buildbigsmp}
-%files bigsmp
-%defattr(-, root, root)
-/boot/%{kernel_glob}bigsmp
-%ifarch ia64
-/boot/efi/redhat/%{kernel_glob}bigsmp
+%files bigsmp -f kernelbigsmp.files
%endif
-/boot/System.map-%{KVERREL}bigsmp
-/boot/config-%{KVERREL}bigsmp
-%dir /lib/modules
-%dir /dev/shm
-/lib/modules/%{KVERREL}bigsmp
-%if %{linux26}
-/boot/Kerntypes-%{KVERREL}bigsmp
-/boot/symvers-%{KVERREL}-%{_target_cpu}bigsmp.gz
-%endif # linux26
+
+%if %{buildpseries64}
+%files pseries64 -f kernelpseries64.files
%endif
%if %{buildbigmem}
-%files bigmem
-%defattr(-, root, root)
-/boot/%{kernel_glob}bigmem
-%ifarch ia64
-/boot/efi/redhat/%{kernel_glob}bigmem
-%endif
-/boot/System.map-%{KVERREL}bigmem
-/boot/config-%{KVERREL}bigmem
-%dir /lib/modules
-%dir /dev/shm
-/lib/modules/%{KVERREL}bigmem
-%if %{linux26}
-/boot/Kerntypes-%{KVERREL}bigmem
-/boot/symvers-%{KVERREL}-%{_target_cpu}bigmem.gz
-%endif # linux26
+%files bigmem -f kernelbigmem.files
%endif
%if %{buildBOOT}
-%files BOOT
-%defattr(-, root, root)
-/boot/%{kernel_glob}BOOT
-%ifarch ia64
-/boot/efi/redhat/%{kernel_glob}BOOT
-%endif
-/boot/System.map-%{KVERREL}BOOT
-/boot/config-%{KVERREL}BOOT
-%dir /lib/modules
-%dir /dev/shm
-/lib/modules/%{KVERREL}BOOT
-%if %{linux26}
-/boot/Kerntypes-%{KVERREL}BOOT
-/boot/symvers-%{KVERREL}-%{_target_cpu}BOOT.gz
-%endif # linux26
+%files BOOT -f kernelBOOT.files
%endif
%if %{buildbase}
-%if 1
-%files source
-%defattr(-,root,root)
-%dir /usr/src/linux-%{KVERREL}
-/usr/src/linux-%{KVERREL}/*
-%if %{linux26}
-%dir /usr/src/linux-%{KVERREL}-obj
-/usr/src/linux-%{KVERREL}-obj/*
-%endif # linux26
-%endif
+%files source -f kernel-source.files
%files doc
%defattr(-,root,root)
%files -n lustre-lite-utils
%defattr(-, root, root)
-%doc lustre/COPYING lustre/BUGS lustre/ChangeLog lustre/README lustre/doc/lustre.pdf
+%doc lustre/COPYING lustre/lustre/BUGS lustre/ChangeLog lustre/README lustre/lustre/doc/lustre.pdf
/sbin/*
/usr/sbin/*
/usr/bin/*
@ENABLE_INIT_SCRIPTS@/etc/init.d/lustre
@ENABLE_INIT_SCRIPTS@/etc/init.d/lustrefs
/usr/include/lustre/*
-/usr/include/portals/*
/usr/include/linux/*
/usr/lib/lib*.a
/usr/share/man/man?/*