diff --git a/build/lbuild b/build/lbuild index 6450ed6f26f1dfb945b427cbcfaab23e6a8aa564..20d5439c2e05c94e35a72917de07b96268328538 100755 --- a/build/lbuild +++ b/build/lbuild @@ -629,6 +629,7 @@ prep_kernel_build() -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" \ @@ -1204,24 +1205,12 @@ patchless_build_sequence() 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 - delimiter=- - ;; - sles10) - type=-source - delimiter=. - ;; - sles9) - type=-source - delimiter=- - ;; - *) - echo "Don't know what to do with $DISTRO" - return 255 ;; esac diff --git a/build/lmake b/build/lmake index 8a0b47ba4bb7244524b1d6d4380611324909bf56..c74297224d06e9f75d5ec35bd0e6c85d45cc0432 100755 --- a/build/lmake +++ b/build/lmake @@ -393,7 +393,11 @@ depend_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 @@ -505,7 +509,6 @@ build_lustre() { (( $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 \ @@ -526,7 +529,6 @@ install_kernel() { (( $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" @@ -583,7 +585,6 @@ cleanup_libmodules() { (( $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}" @@ -603,7 +604,6 @@ install_lustre() (( $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 @@ -614,7 +614,6 @@ build_kms() (( $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 @@ -639,12 +638,16 @@ install_kms() (( $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 + 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 @@ -656,8 +659,7 @@ install_kms() -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 } save_headers() @@ -810,6 +812,10 @@ done 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 diff --git a/build/lustre-kernel-2.4.spec.in b/build/lustre-kernel-2.4.spec.in index 54e83407f9709fd928526bd419fe980fb8669314..772e13b9e2c0a15f35c765197b0d703e35ebe09f 100644 --- a/build/lustre-kernel-2.4.spec.in +++ b/build/lustre-kernel-2.4.spec.in @@ -11,6 +11,7 @@ Summary: The Linux kernel (the core of the Linux operating system) %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 @@ -388,11 +389,12 @@ popd >/dev/null # 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} - 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} @@ -402,20 +404,20 @@ for flavor in "" smp bigmem bigsmp pseries64 BOOT jensen ; do 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} - sed -e "s^%ver_str^%{KVERREL}${flavor}^g" %{SOURCE26} >> ${script} + sed -e "s^%ver_str^%{KVERREL}${delim_flavor}^g" %{SOURCE26} >> ${script} echo "else" >> ${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} - sed -e "s^%ver_str^%{KVERREL}${flavor}^g" %{SOURCE27} >> ${script} + sed -e "s^%ver_str^%{KVERREL}${delim_flavor}^g" %{SOURCE27} >> ${script} echo "else" >> ${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 @@ -440,7 +442,7 @@ if [ -x /sbin/new-kernel-pkg ] ; then PACKAGE_ARG="--package kernel-${flavor}" fi /sbin/new-kernel-pkg $PACKAGE_ARG --mkinitrd --depmod \ - --install %{KVERREL}${flavor} + --install %{KVERREL}${delim_flavor} fi EOF ;; @@ -455,9 +457,9 @@ EOF 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 - /sbin/new-kernel-pkg --rminitrd --rmmoddep --remove %{KVERREL}${flavor} + /sbin/new-kernel-pkg --rminitrd --rmmoddep --remove %{KVERREL}${delim_flavor} fi EOF ;; @@ -466,20 +468,20 @@ EOF 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 -/lib/modules/%{KVERREL}${flavor} +/lib/modules/%{KVERREL}${delim_flavor} %ifarch ia64 -/boot/efi/redhat/%{kernel_glob}${flavor} +/boot/efi/redhat/%{kernel_glob}${delim_flavor} %endif %if %{linux26} %if %{susebuild} -/boot/Kerntypes-%{KVERREL}${flavor} +/boot/Kerntypes-%{KVERREL}${delim_flavor} %endif -/boot/symvers-%{KVERREL}-%{_target_cpu}${flavor}.gz +/boot/symvers-%{KVERREL}-%{_target_cpu}${delim_flavor}.gz %endif EOF @@ -629,10 +631,10 @@ BuildObj () flavext="" flavtgt="" else - flavext="-$flavor" + flavext="%{flavordelim}$flavor" flavtgt="$flavor" fi - 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 @@ -659,12 +661,8 @@ BuildObj () $(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 @@ -672,7 +670,7 @@ EOF 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" \ > $o/Module.symvers }