summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
24a5115)
i=cliffw
i=wangyb
Allow a kernel target to specify a delimiter between the version and the
"flavor" (i.e. "smp")
- specifically this allows RH kernels to be <version>smp and SLES10 kernels
to be <version>-smp.
- maintaining the vendors versioning specification means that when software
is trying to determine a vendors kernel using patterns (like OFED does),
it properly detects the SLES10 kernel.
This all lays the ground work for bug 15316.
-e "s^@JENSEN_ARCHS@^$BOOT_ARCHS^g" \
-e "s^@KERNEL_EXTRA_VERSION@^$EXTRA_VERSION^g" \
-e "s^@KERNEL_EXTRA_VERSION_DELIMITER@^$EXTRA_VERSION_DELIMITER^g" \
-e "s^@JENSEN_ARCHS@^$BOOT_ARCHS^g" \
-e "s^@KERNEL_EXTRA_VERSION@^$EXTRA_VERSION^g" \
-e "s^@KERNEL_EXTRA_VERSION_DELIMITER@^$EXTRA_VERSION_DELIMITER^g" \
+ -e "s^@KERNEL_TARGET_DELIMITER@^$TARGET_DELIMITER^g" \
-e "s^@KERNEL_RELEASE@^${EXTRA_VERSION//-/_}^g" \
-e "s^@KERNEL_SOURCE@^$KERNEL^g" \
-e "s^@KERNEL_VERSION@^$VERSION^g" \
-e "s^@KERNEL_RELEASE@^${EXTRA_VERSION//-/_}^g" \
-e "s^@KERNEL_SOURCE@^$KERNEL^g" \
-e "s^@KERNEL_VERSION@^$VERSION^g" \
fi
[ -d $TOPDIR/reused ] && rm -rf $TOPDIR/reused
fi
[ -d $TOPDIR/reused ] && rm -rf $TOPDIR/reused
- local type=
- local delimiter=
+ local delimiter=${EXTRA_VERSION_DELIMITER:-"-"}
+ # default to source type -source and special case below
+ local type=-source
case "$DISTRO" in
rhel*)
type=-devel
case "$DISTRO" in
rhel*)
type=-devel
- delimiter=-
- ;;
- sles10)
- type=-source
- delimiter=.
- ;;
- sles9)
- type=-source
- delimiter=-
- ;;
- *)
- echo "Don't know what to do with $DISTRO"
- return 255
set_make
pushd "$TOPDIR/linux" >/dev/null
echo "Overriding EXTRAVERSION in kernel..."
set_make
pushd "$TOPDIR/linux" >/dev/null
echo "Overriding EXTRAVERSION in kernel..."
- perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = ${EXTRA_VERSION_DELIMITER}${EXTRA_VERSION}${TARGET_CONFIG}/" Makefile
+ local extra_version="${EXTRA_VERSION_DELIMITER}${EXTRA_VERSION}"
+ if [ -n "${TARGET_CONFIG}" ]; then
+ extra_version="${extra_version}${TARGET_DELIMITER}${TARGET_CONFIG}"
+ fi
+ perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = ${extra_version}/" Makefile
echo "Making depend in $PWD..."
$MAKE "$MAKE_CC" mrproper || fatal 1 "Error running make mrproper"
rm -f rpm-release
echo "Making depend in $PWD..."
$MAKE "$MAKE_CC" mrproper || fatal 1 "Error running make mrproper"
rm -f rpm-release
{
(( $BUILD_LUSTRE )) || return 0
set_make
{
(( $BUILD_LUSTRE )) || return 0
set_make
- FULL_VERSION="${VERSION}${EXTRA_VERSION_DELIMITER}${EXTRA_VERSION}${TARGET_CONFIG}"
pushd "$TOPDIR" >/dev/null
sed \
-e s^@VERSION@^${LUSTRE_VERSION}^g \
pushd "$TOPDIR" >/dev/null
sed \
-e s^@VERSION@^${LUSTRE_VERSION}^g \
{
(( $INSTALL_KERNEL )) || return 0
set_make
{
(( $INSTALL_KERNEL )) || return 0
set_make
- FULL_VERSION="${VERSION}${EXTRA_VERSION_DELIMITER}${EXTRA_VERSION}${TARGET_CONFIG}"
pushd "$TOPDIR/linux" >/dev/null
mkdir -p "$DESTDIR/boot"
pushd "$TOPDIR/linux" >/dev/null
mkdir -p "$DESTDIR/boot"
{
(( $INSTALL_LUSTRE )) || return 0
{
(( $INSTALL_LUSTRE )) || return 0
- FULL_VERSION="${VERSION}${EXTRA_VERSION_DELIMITER}${EXTRA_VERSION}${TARGET_CONFIG}"
KVERREL="${VERSION}${EXTRA_VERSION_DELIMITER}${EXTRA_VERSION}"
i="$DESTDIR/lib/modules/${FULL_VERSION}"
KVERREL="${VERSION}${EXTRA_VERSION_DELIMITER}${EXTRA_VERSION}"
i="$DESTDIR/lib/modules/${FULL_VERSION}"
(( $INSTALL_LUSTRE )) || return 0
return 0
set_make
(( $INSTALL_LUSTRE )) || return 0
return 0
set_make
- FULL_VERSION="${VERSION}${EXTRA_VERSION_DELIMITER}${EXTRA_VERSION}${TARGET_CONFIG}"
pushd "$TOPDIR" >/dev/null
$MAKE "$MAKE_CC" -s install "DESTDIR=$DESTDIR" KERNELRELEASE="$FULL_VERSION" || fatal 1 "Error installing Lustre."
popd >/dev/null
pushd "$TOPDIR" >/dev/null
$MAKE "$MAKE_CC" -s install "DESTDIR=$DESTDIR" KERNELRELEASE="$FULL_VERSION" || fatal 1 "Error installing Lustre."
popd >/dev/null
(( $BUILD_KERNEL )) || return 0
(( $SUSEBUILD )) || return 0
set_make
(( $BUILD_KERNEL )) || return 0
(( $SUSEBUILD )) || return 0
set_make
- FULL_VERSION="${VERSION}${EXTRA_VERSION_DELIMITER}${EXTRA_VERSION}${TARGET_CONFIG}"
mkdir -p "${TOPDIR}/modules-${FULL_VERSION}"
for dir in /usr/src/kernel-modules/* ; do
# we are replacing lustre-lite, so don't include it
mkdir -p "${TOPDIR}/modules-${FULL_VERSION}"
for dir in /usr/src/kernel-modules/* ; do
# we are replacing lustre-lite, so don't include it
(( $INSTALL_KERNEL )) || return 0
(( $LINUX26 )) || return 0
set_make
(( $INSTALL_KERNEL )) || return 0
(( $LINUX26 )) || return 0
set_make
- FULL_VERSION="${VERSION}${EXTRA_VERSION_DELIMITER}${EXTRA_VERSION}${TARGET_CONFIG}"
for build_dir in "${TOPDIR}/modules-${FULL_VERSION}/*" ; do
[ -d $build_dir ] || continue
# these modules are terrible, and don't all build
$MAKE "$MAKE_CC" -C $build_dir KERNEL_SOURCE="${TOPDIR}/linux" INSTALL_MOD_PATH="$DESTDIR"
done
for build_dir in "${TOPDIR}/modules-${FULL_VERSION}/*" ; do
[ -d $build_dir ] || continue
# these modules are terrible, and don't all build
$MAKE "$MAKE_CC" -C $build_dir KERNEL_SOURCE="${TOPDIR}/linux" INSTALL_MOD_PATH="$DESTDIR"
done
+ local symvers_file="${DESTDIR}/boot/symvers-${VERSION}${EXTRA_VERSION_DELIMITER}${EXTRA_VERSION}-${TARGET_ARCH}"
+ if [ -n "$TARGET_CONFIG" ]; then
+ symvers_file="${symvers_file}${TARGET_DELIMITER}${TARGET_CONFIG}"
+ fi
+ symvers_file="$symvers_file.gz"
( symver vmlinux
moddir="${DESTDIR}/lib/modules/${FULL_VERSION}"
cd $moddir/kernel
( symver vmlinux
moddir="${DESTDIR}/lib/modules/${FULL_VERSION}"
cd $moddir/kernel
-name '*.ko' -print); do
symver $module
done
-name '*.ko' -print); do
symver $module
done
- ) | sort -u -k2 \
- | gzip -c9 > "${DESTDIR}/boot/symvers-${VERSION}${EXTRA_VERSION_DELIMITER}${EXTRA_VERSION}-${TARGET_ARCH}${TARGET_CONFIG}.gz"
+ ) | sort -u -k2 | gzip -c9 > $symvers_file
check_options
load_target
EXTRA_VERSION_DELIMITER=${EXTRA_VERSION_DELIMITER:-"-"}
check_options
load_target
EXTRA_VERSION_DELIMITER=${EXTRA_VERSION_DELIMITER:-"-"}
+FULL_VERSION="${VERSION}${EXTRA_VERSION_DELIMITER}${EXTRA_VERSION}"
+if [ -n "$TARGET_CONFIG" ]; then
+ FULL_VERSION="${FULL_VERSION}${TARGET_DELIMITER}${TARGET_CONFIG}"
+fi
setup_ccache_distcc
extract_kernel
setup_ccache_distcc
extract_kernel
%define kversion @KERNEL_VERSION@
%define kextraver @KERNEL_EXTRA_VERSION@
%define kextraverdelim @KERNEL_EXTRA_VERSION_DELIMITER@
%define kversion @KERNEL_VERSION@
%define kextraver @KERNEL_EXTRA_VERSION@
%define kextraverdelim @KERNEL_EXTRA_VERSION_DELIMITER@
+%define flavordelim "@KERNEL_TARGET_DELIMITER@"
%define release @KERNEL_RELEASE@
# /usr/src/%{kslnk} -> /usr/src/linux-%{KVERREL}
%define kslnk linux-2.4
%define release @KERNEL_RELEASE@
# /usr/src/%{kslnk} -> /usr/src/linux-%{KVERREL}
%define kslnk linux-2.4
# handle both SuSE and Red Hat's new-kernel-pkg bits
for flavor in "" smp bigmem bigsmp pseries64 BOOT jensen ; do
# handle both SuSE and Red Hat's new-kernel-pkg bits
for flavor in "" smp bigmem bigsmp pseries64 BOOT jensen ; do
+ [ -n "$flavor" ] && delim_flavor="%{flavordelim}$flavor"
for when in pre preun post postun ; do
script="${when}${flavor}.sh"
cat %{SOURCE25} %{SOURCE32} %{SOURCE33} > ${script}
echo "if [ -d /etc/susehelp.d ] ; then" >> ${script}
for when in pre preun post postun ; do
script="${when}${flavor}.sh"
cat %{SOURCE25} %{SOURCE32} %{SOURCE33} > ${script}
echo "if [ -d /etc/susehelp.d ] ; then" >> ${script}
- sed -e "s/@when@/$when/g" -e "s^%ver_str^%{KVERREL}${flavor}^g" %{SOURCE28} >> ${script}
+ sed -e "s/@when@/$when/g" -e "s^%ver_str^%{KVERREL}${delim_flavor}^g" %{SOURCE28} >> ${script}
case $when in
pre)
echo "if [ ! -f /etc/modprobe.conf ] ; then" >> ${script}
case $when in
pre)
echo "if [ ! -f /etc/modprobe.conf ] ; then" >> ${script}
post)
# /sbin/update-modules.dep compares when the modules were built, rather
# than installed, so force modules.dep to be recreated
post)
# /sbin/update-modules.dep compares when the modules were built, rather
# than installed, so force modules.dep to be recreated
- echo "rm -f /lib/modules/%{KVERREL}${flavor}/modules.dep" >> ${script}
+ echo "rm -f /lib/modules/%{KVERREL}${delim_flavor}/modules.dep" >> ${script}
echo "if [ -f /etc/modprobe.conf ] ; then" >> ${script}
echo "if [ -f /etc/modprobe.conf ] ; then" >> ${script}
- sed -e "s^%ver_str^%{KVERREL}${flavor}^g" %{SOURCE26} >> ${script}
+ sed -e "s^%ver_str^%{KVERREL}${delim_flavor}^g" %{SOURCE26} >> ${script}
- sed -e "s^%ver_str^%{KVERREL}${flavor}^g" -e "s^%%{cfg_name}^${flavor}^g" %{SOURCE29} >> ${script}
+ sed -e "s^%ver_str^%{KVERREL}${delim_flavor}^g" -e "s^%%{cfg_name}^${delim_flavor}^g" %{SOURCE29} >> ${script}
echo "fi" >> ${script}
;;
postun)
echo "if [ -f /etc/modprobe.conf ] ; then" >> ${script}
echo "fi" >> ${script}
;;
postun)
echo "if [ -f /etc/modprobe.conf ] ; then" >> ${script}
- sed -e "s^%ver_str^%{KVERREL}${flavor}^g" %{SOURCE27} >> ${script}
+ sed -e "s^%ver_str^%{KVERREL}${delim_flavor}^g" %{SOURCE27} >> ${script}
- sed -e "s^%ver_str^%{KVERREL}${flavor}^g" %{SOURCE30} >> ${script}
+ sed -e "s^%ver_str^%{KVERREL}${delim_flavor}^g" %{SOURCE30} >> ${script}
echo "fi" >> ${script}
;;
esac
echo "fi" >> ${script}
;;
esac
PACKAGE_ARG="--package kernel-${flavor}"
fi
/sbin/new-kernel-pkg $PACKAGE_ARG --mkinitrd --depmod \
PACKAGE_ARG="--package kernel-${flavor}"
fi
/sbin/new-kernel-pkg $PACKAGE_ARG --mkinitrd --depmod \
- --install %{KVERREL}${flavor}
+ --install %{KVERREL}${delim_flavor}
preun)
cat >> ${script} <<EOF
/sbin/modprobe loop 2> /dev/null > /dev/null || :
preun)
cat >> ${script} <<EOF
/sbin/modprobe loop 2> /dev/null > /dev/null || :
-rm -f /lib/modules/%{KVERREL}${flavor}/modules.*
+rm -f /lib/modules/%{KVERREL}${delim_flavor}/modules.*
if [ -x /sbin/new-kernel-pkg ] ; then
if [ -x /sbin/new-kernel-pkg ] ; then
- /sbin/new-kernel-pkg --rminitrd --rmmoddep --remove %{KVERREL}${flavor}
+ /sbin/new-kernel-pkg --rminitrd --rmmoddep --remove %{KVERREL}${delim_flavor}
cat > "kernel$flavor.files" <<EOF
%%defattr(-, root, root)
cat > "kernel$flavor.files" <<EOF
%%defattr(-, root, root)
-/boot/%{kernel_glob}${flavor}
-/boot/System.map-%{KVERREL}${flavor}
-/boot/config-%{KVERREL}${flavor}
+/boot/%{kernel_glob}${delim_flavor}
+/boot/System.map-%{KVERREL}${delim_flavor}
+/boot/config-%{KVERREL}${delim_flavor}
%%dir /lib/modules
%%dir /dev/shm
%%dir /lib/modules
%%dir /dev/shm
-/lib/modules/%{KVERREL}${flavor}
+/lib/modules/%{KVERREL}${delim_flavor}
-/boot/efi/redhat/%{kernel_glob}${flavor}
+/boot/efi/redhat/%{kernel_glob}${delim_flavor}
%endif
%if %{linux26}
%if %{susebuild}
%endif
%if %{linux26}
%if %{susebuild}
-/boot/Kerntypes-%{KVERREL}${flavor}
+/boot/Kerntypes-%{KVERREL}${delim_flavor}
-/boot/symvers-%{KVERREL}-%{_target_cpu}${flavor}.gz
+/boot/symvers-%{KVERREL}-%{_target_cpu}${delim_flavor}.gz
flavext=""
flavtgt=""
else
flavext=""
flavtgt=""
else
+ flavext="%{flavordelim}$flavor"
- perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = %{kextraverdelim}%{kextraver}${flavtgt}/" $RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}/Makefile
+ perl -p -i -e "s/^EXTRAVERSION.*/EXTRAVERSION = %{kextraverdelim}%{kextraver}${flavext}/" $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
c="$RPM_BUILD_ROOT/usr/src/linux-%{KVERREL}"
o="${c}-obj/%{_target_cpu}/$flavor"
mkdir -p $o
$(set -- 2.6.5 ; echo ${*//./ })
EOF
rm -f $o/Makefile
$(set -- 2.6.5 ; echo ${*//./ })
EOF
rm -f $o/Makefile
- source scripts/mkmakefile \
- ../../../linux-%{KVERREL} \
- $o \
- $VERSION \
- $PATCHLEVEL \
- > $o/Makefile.in
+ ARCH=%{_target_cpu} /bin/sh scripts/mkmakefile ../../../linux-%{KVERREL} $o \
+ $VERSION $PATCHLEVEL > $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
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
fi
sed -e "s^$o^../linux-%{KVERREL}-obj/%{_target_cpu}/$flavor^" \
$o/Makefile.in > $o/Makefile
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" \
+ zcat "$RPM_BUILD_ROOT/boot/symvers-%{KVERREL}-%{_target_cpu}${flavext}.gz" \