X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=build%2Flbuild-sles11;h=6b6b36d1a4db9a1f55af90fb6e7dbabd244035b3;hp=daab643693b4612419e7cfc72599975fc9cb5788;hb=0ee03999a24c3e5e2652155237809671414630b9;hpb=36b52838433ad24872149e6b83dd0a75ae77b61f diff --git a/build/lbuild-sles11 b/build/lbuild-sles11 index daab643..6b6b36d 100644 --- a/build/lbuild-sles11 +++ b/build/lbuild-sles11 @@ -1,22 +1,19 @@ # vim:expandtab:shiftwidth=4:softtabstop=4:tabstop=4: # 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 +# to build built for this distribution (only -- if you want to force a kernel +# build on all distributions, update the BUILD_GEN variable in build/lbuild) +BUILD_GEN+=".0" source ${0%/*}/lbuild-sles -# this is what lnxrel really should be, once bug 19336 lands -real_lnxrel=${lnxrel##${lnxmin#.}-} - edit_specs() { # edit the SPECs with our changes local spec for spec in $RPMSMPTYPE source; do - #cp $TOPDIR/SPECS/kernel-$spec.spec{,.orig} - sed -i -e "s/^\(Release: *\).*$/\1${real_lnxrel}_${buildid}/" \ + #cp $TOPDIR/SOURCES/kernel-$spec.spec{,.orig} + sed -i -e "s/^\(Release: *\).*$/\1${lnxrel}_${buildid}/" \ -e "s/^ExclusiveArch:.*/& ppc ppc64/" \ -e '/^%setup /a\ cp %_sourcedir/linux-2.6.27-lustre.patch %_builddir/%{name}-%{version}/lustre.patch\ @@ -24,36 +21,39 @@ cp %_sourcedir/linux-2.6.27-lustre.patch %_builddir/%{name}-%{version}/lustre.p -e "/flavor=\${config/a\ [ \"\$flavor\" == \"$RPMSMPTYPE\" ] || continue" \ -e "s/^\(BuildRequires: kernel-dummy\)/# \1/" \ - SPECS/kernel-${spec}.spec + SOURCES/kernel-${spec}.spec || \ + fatal 1 "Error while editing SOURCES/kernel-${spec}.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-\)\(.*\)/\1lustre-\2/' \ - -e "/^Provides: *kernel = /a\ + sed -i -e 's/^\(Name:.*kernel-\)\(.*\)/\1lustre-\2/' \ + -e "/^Provides: *kernel = /a\ Provides: kernel-$spec = %{version}-%{release} " \ - -e 's/^\([ ][ ]*-i %_builddir\/kernel-\)\(source-2.6.27.21\/\$patch; then\)/\1lustre-\2/' \ - -e '/^%build/,/^%changelog/s/\(kernel-\)\(source\.files\)/\1lustre-\2/g' \ - -e '/--no-backup-if-mismatch/,/fi/s/kernel-source-/kernel-lustre-source-/g' \ - -e "s/^\(%package -n kernel-\)\(.*\)/\1lustre-\2/" \ - -e "s/^\(%description -n kernel-\)\(.*\)/\1lustre-\2/" \ - -e "s/^\(%files -n kernel-\)\(.*\)/\1lustre-\2/" \ - -e "s/^\(Provides:.*kernel-\)\(.*\)/\1lustre-\2/" \ - -e "s/^\(Requires:.*kernel-\)\(.*\)/\1lustre-\2/" \ - -e "s/^\(Supplements:.*kernel-\)\(.*\)/\1lustre-\2/" \ - SPECS/kernel-${spec}.spec + -e 's/^\([ ][ ]*-i %_builddir\/kernel-\)\(source-2.6.27.21\/\$patch; then\)/\1lustre-\2/' \ + -e '/^%build/,/^%changelog/s/\(kernel-\)\(source\.files\)/\1lustre-\2/g' \ + -e '/--no-backup-if-mismatch/,/fi/s/kernel-source-/kernel-lustre-source-/g' \ + -e "s/^\(%package -n kernel-\)\(.*\)/\1lustre-\2/" \ + -e "s/^\(%description -n kernel-\)\(.*\)/\1lustre-\2/" \ + -e "s/^\(%files -n kernel-\)\(.*\)/\1lustre-\2/" \ + -e "s/^\(Provides:.*kernel-\)\(.*\)/\1lustre-\2/" \ + -e "s/^\(Requires:.*kernel-\)\(.*\)/\1lustre-\2/" \ + -e "s/^\(Supplements:.*kernel-\)\(.*\)/\1lustre-\2/" \ + SOURCES/kernel-${spec}.spec || \ + fatal 1 "Error while editing SOURCES/kernel-${spec}.spec" fi - # XXX - a building-on-Ubuntu hack + # XXX - a building-on-Ubuntu hack if grep -q "Ubuntu" /etc/issue; then sed -i -e '/^%_sourcedir\/install-configs %_sourcedir .*/i\ curl ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.17/2.6.17-mm1/broken-out/i386-use-c-code-for-current_thread_info.patch | patch -p1' \ -e 's/^\(BuildRequires: .*\)$/#NOU \1/g' \ -e 's/%(\(chmod .*\))$/%(bash -c "\1")/' \ -e 's/ -a 109//' \ - SPECS/kernel-${spec}.spec - fi + SOURCES/kernel-${spec}.spec || \ + fatal 1 "Error while editing SOURCES/kernel-${spec}.spec" + fi done } @@ -63,7 +63,8 @@ unpack_linux_devel_rpm-sles11() { local rpmdir="${callers_rpm%/*}" local kernelrpm - local wanted_kernel="${lnxmaj}${lnxmin}${TARGET_DELIMITER}${lnxrel}" + local wanted_kernel="${lnxmaj}${lnxmin}-${lnxrel}" + # this is a hack that should go away when the modified lustre kernel # Provides kernel-default-base vvvvvvvvv if ! kernelrpm=$(find_rpm "$rpmdir" provides "^kernel-(lustre-)?default-base = $wanted_kernel"); then @@ -74,26 +75,28 @@ unpack_linux_devel_rpm-sles11() { fatal 1 "Unpack error for $kernelrpm" fi + if ! kernelrpm=$(find_rpm "$rpmdir" provides "^kernel-(lustre-)?default-devel = $wanted_kernel"); then + fatal 1 "Could not find the kernel-default-devel in $rpmdir/" + fi + + if ! rpm2cpio < "$rpmdir/$kernelrpm" | cpio -id > /dev/null 2>&1; then + fatal 1 "Unpack error for $kernelrpm" + fi + } -# this is actually valid for sles10 and sles11 but let's test it on sles11 only, first -find_linux_devel_paths() { - local path="$1" +find_linux_rpm-sles11() { + local prefix="$1" + local wanted_kernel="$2" + local pathtorpms=${3:-"${KERNELRPMSBASE}/${lnxmaj}/${DISTRO}/${TARGET_ARCH}"} - LINUX=$path/usr/src/linux-${lnxmaj}${lnxmin}${delimiter}${lnxrel##${lnxmin#.}-} + # what, oh what, do we do for sles11? + # if anyone knows how we get an arbitrary (kernel-source and + # kernel-default-base in this case) from the Suse update mechanism, + # please feel free to fix this - local objects=$TARGET_ARCH/$RPMSMPTYPE - if [ -d $path/usr/src/linux-${lnxmaj}${lnxmin}${delimiter}${lnxrel##${lnxmin#.}-}-obj/powerpc ]; then - objects="powerpc/$TARGET_ARCH" - elif [ $TARGET_ARCH == 'i686' ]; then - objects="i386/$RPMSMPTYPE" - fi + fatal 1 "I don't know how to get packages for SLES11" - LINUXOBJ=$path/usr/src/linux-${lnxmaj}${lnxmin}${delimiter}${lnxrel##${lnxmin#.}-}-obj/$objects + return 0 - LINUXRELEASE=$(find_linux_release ${LINUXOBJ:-$LINUX}) - if [ -z "$LINUXRELEASE" ]; then - echo "Failed to find linux release in ${LINUXOBJ:-$LINUX}" - RC=255 - fi }