Whamcloud - gitweb
b=19336 Get rid of the EXTRA_VERSION_DELIMETER shenanigans
authorBrian J. Murrell <brian@sun.com>
Thu, 10 Jun 2010 19:50:20 +0000 (15:50 -0400)
committerRobert Read <robert.read@oracle.com>
Thu, 10 Jun 2010 23:32:21 +0000 (16:32 -0700)
We used to carry around a bunch of baggage in order to specify what kind
of delimeter to put between the version and "extra version".  The truth of
the matter is that this should always be "-".

This patch includes some support for a build system developer to force
an uncached rebuild of all products.

i=wangyb
i=yangsheng

build/lbuild
build/lbuild-sles
build/lbuild-sles11
lustre/kernel_patches/targets/2.6-sles10.target.in
lustre/kernel_patches/targets/2.6-sles11.target.in

index 20697bf..7e59379 100755 (executable)
@@ -48,10 +48,12 @@ LUSTRE_EXTRA_VERSION=
 STAGEDIR=
 TMPDIR=${TMPDIR:-"/var/tmp"}
 TIMESTAMP=
-# XXX - i think these two parameters/arguments/variables need to be
-#       cleaned up and merged.  they effectively do the same thing
+# this is a dir to try reuse old kernel RPMs in (although, it seems to be
+# unused in any real manner
 REUSERPM=
 REUSEBUILD=
+# should cached products be used or force rebuilding?
+USE_BUILD_CACHE=true
 # what does this do exactly?  does it imply no kernel build?
 NORPM=false
 LDISKFSRPM=true
@@ -748,7 +750,7 @@ do_patch_linux() {
 
     local do_patch=${1:-true}
 
-    FULL_PATCH="$PWD/lustre-kernel-${TARGET}${EXTRA_VERSION_DELIMITER}${EXTRA_VERSION}.patch"
+    FULL_PATCH="$PWD/lustre-kernel-${TARGET}-${EXTRA_VERSION}.patch"
     [ -f "$FULL_PATCH" ] && rm -f "$FULL_PATCH"
     $do_patch && pushd linux >/dev/null
     for series in $SERIES; do
@@ -941,7 +943,7 @@ skeep_ldiskfs_rpm() {
 #generate LUSTRE_EXTRA_VERSION from EXTRA_VERSION
 gen_lustre_version() {
 
-    LUSTRE_EXTRA_VERSION="${lnxmaj}${EXTRA_VERSION_DELIMITER}${EXTRA_VERSION}${TARGET_DELIMITER}${RPMSMPTYPE}"
+    LUSTRE_EXTRA_VERSION="${lnxmaj}-${EXTRA_VERSION}${FLAVOR_DELIMITER}${RPMSMPTYPE}"
     LUSTRE_EXTRA_VERSION=${LUSTRE_EXTRA_VERSION//-/_}
 
 }
@@ -986,13 +988,12 @@ find_linux_release() {
 #     or just gotten rid of.  :-)
 find_linux_rpm() {
     local prefix="$1"
-    local delimiter=${2:-"-"}
 
     local pathtorpms="${KERNELRPMSBASE}/${lnxmaj}/${DISTRO}"
     [ -d $pathtorpms ] || return 255
 
     local kernelbinaryrpm rpmfile
-    local wanted_kernel="${lnxmaj}${delimiter}${lnxrel}"
+    local wanted_kernel="${lnxmaj}${lnxmin}-${lnxrel}"
 
     local arch ret=1
     for arch in $TARGET_ARCHS_ALL; do
@@ -1021,10 +1022,6 @@ find_linux_rpm() {
 # lustre itself)
 unpack_linux_devel_rpm() {
     local kernelrpm="${1}"
-    # it's worth noting that neither sles10 nor rhel5 appear to use their
-    # extra_version delimiter for the dirname under /usr/src, so we could
-    # probably just get rid of this parameter
-    local delimiter=${2:-"-"}
 
     [ -f "$kernelrpm" ] || return 255
     [ -d $TOPDIR/reused ] || mkdir $TOPDIR/reused || return 255
@@ -1332,21 +1329,27 @@ build_kernel_with_srpm() {
     if $RELEASE; then
         local release_str="RELEASE=$RELEASE\n"
     fi
-    local REUSE_SIGNATURE=$({ echo -en $release_str; echo $BUILD_GEN; cat $CONFIG_FILE $TARGET_FILE $FULL_PATCH; } | md5sum | cut -d" " -f1)
 
-    # see if we can link to the reuse pool
-    # XXX - hrm.  i'm not convinced this doesn't belong in the reuse "library"
-    local CAN_LINK_FOR_REUSE=false
-    touch $REUSEBUILD/$$
-    if cp -al $REUSEBUILD/$$ $TOPDIR/ 2>/dev/null; then
-        CAN_LINK_FOR_REUSE=true
+    if $USE_BUILD_CACHE && [ -n "$REUSEBUILD" ]; then
+        local REUSE_SIGNATURE=$({ echo -en $release_str;
+                                  echo $BUILD_GEN;
+                                  cat $CONFIG_FILE $TARGET_FILE $FULL_PATCH; } |
+                                md5sum | cut -d" " -f1)
+        # see if we can link to the reuse pool
+        # XXX - hrm.  i'm not convinced this doesn't belong in the reuse
+        #       "library"
+        local CAN_LINK_FOR_REUSE=false
+        touch $REUSEBUILD/$$
+        if cp -al $REUSEBUILD/$$ $TOPDIR/ 2>/dev/null; then
+            CAN_LINK_FOR_REUSE=true
+        fi
+        rm $REUSEBUILD/$$
     fi
-    rm $REUSEBUILD/$$
 
     # the extra version string to use for the kernel (which might be a reused
     # kernel, remember)
     local kernel_extra_version=""
-    if $REUSERPM && ! reuse kernel "$TOPDIR" "$CAN_LINK_FOR_REUSE" \
+    if ! $USE_BUILD_CACHE || ! reuse kernel "$TOPDIR" "$CAN_LINK_FOR_REUSE" \
                                    "$REUSE_SIGNATURE"; then
         # nothing cached, build from scratch
         if [ ! -r "$KERNELDIR/$KERNEL_SRPM" ]; then
@@ -1366,14 +1369,18 @@ build_kernel_with_srpm() {
         prepare_and_build_srpm >&${outfd} ||
             fatal 1 "failed to prepare_and_build_srpm"
 
-        # store the resulting kernel RPM build tree for future use
-        echo "caching the built kenel for future builds..." >&${outfd}
-        if ! store_for_reuse "$TOPDIR/{SPECS,SOURCES,BUILD,SRPMS,RPMS}" \
-                             "kernel" "$REUSEBUILD" "$REUSE_SIGNATURE" \
-                             "$CAN_LINK_FOR_REUSE"; then
-            error "Failed to store kernel RPMS for reuse"
-            echo "unknown"
-            return 1
+        if [ -z "$REUSE_SIGNATURE" ]; then
+            echo "No reuse signature was caculated so not storing the built kernel" >&${outfd}
+        else
+            # store the resulting kernel RPM build tree for future use
+            echo "Storing the built kernel for future reuse" >&${outfd}
+            if ! store_for_reuse "$TOPDIR/{SPECS,SOURCES,BUILD,SRPMS,RPMS}" \
+                                 "kernel" "$REUSEBUILD" "$REUSE_SIGNATURE" \
+                                 "$CAN_LINK_FOR_REUSE"; then
+                error "Failed to store kernel RPMS for reuse"
+                echo "unknown"
+                return 1
+            fi
         fi
     fi  # build reuse
 
@@ -1520,7 +1527,7 @@ build_rdac() {
 # build OFED
 # globals used:
 #    TOPDIR
-#    REUSEBUILD, REUSERPM
+#    REUSEBUILD, USE_BUILD_CACHE
 #    CONFIGURE_FLAGS
 
 build_ofed() {
@@ -1532,10 +1539,14 @@ build_ofed() {
         return 0
     fi
 
-    if [ -n "$REUSEBUILD" ]; then
+    if $USE_BUILD_CACHE && [ -n "$REUSEBUILD" ]; then
+        local REUSE_SIGNATURE=$({ echo "$ofed_version";
+                                  echo "$(find_linux_release ${linux})";
+                                  cat "${linux}/include/linux/autoconf.h"; } |
+                                md5sum | cut -d" " -f1)
         # see if we can link to the reuse pool
-            # XXX - hrm.  i'm not convinced this doesn't belong in the reuse
-            #       "library"
+        # XXX - hrm.  i'm not convinced this doesn't belong in the reuse
+        #       "library"
         local CAN_LINK_FOR_REUSE=false
         touch $REUSEBUILD/$$
         if cp -al $REUSEBUILD/$$ $TOPDIR/; then
@@ -1544,33 +1555,38 @@ build_ofed() {
         rm $REUSEBUILD/$$
     fi
 
-    local REUSE_SIGNATURE=$({ echo "$ofed_version";
-                              echo "$(find_linux_release ${linux})";
-                              cat "${linux}/include/linux/autoconf.h"; } |
-                            md5sum | cut -d" " -f1)
-    if ! $REUSERPM || ! reuse ofed "$TOPDIR" "$CAN_LINK_FOR_REUSE" \
+    if ! $USE_BUILD_CACHE || ! reuse ofed "$TOPDIR" "$CAN_LINK_FOR_REUSE" \
                                    "$REUSE_SIGNATURE"; then
-        # stash away the existing built articles for a moment
-        mkdir bak
-        mv {BUILD,{S,}RPMS,S{OURCE,PEC}S} bak
-        function mv_back {
-            pushd bak
-            find . | cpio -pudlm ..
-            popd
-            rm -rf bak
-        }
-        create_rpmbuild_dirs
+        if [ -n "$REUSE_SIGNATURE" ]; then
+            # stash away the existing built articles for a moment
+            mkdir bak
+            mv {BUILD,{S,}RPMS,S{OURCE,PEC}S} bak
+            function mv_back {
+                pushd bak
+                find . | cpio -pudlm ..
+                popd
+                rm -rf bak
+            }
+            create_rpmbuild_dirs
+        fi
         # build it
         build_kernel_ib "${linux}"
-        if ! store_for_reuse "$TOPDIR/{SPECS,SOURCES,BUILD,SRPMS,RPMS}" \
-                             "ofed" "$REUSEBUILD" "$REUSE_SIGNATURE" \
-                             "$CAN_LINK_FOR_REUSE"; then
-            error "Failed to store OFED RPMS for reuse"
+
+        if [ -z "$REUSE_SIGNATURE" ]; then
+            echo "No reuse signature was caculated so not storing the built ofed"
+        else
+            # store the resulting RPM build tree for future use
+            echo "Storing the built ofed for future reuse"
+            if ! store_for_reuse "$TOPDIR/{SPECS,SOURCES,BUILD,SRPMS,RPMS}" \
+                                 "ofed" "$REUSEBUILD" "$REUSE_SIGNATURE" \
+                                 "$CAN_LINK_FOR_REUSE"; then
+                error "Failed to store OFED RPMS for reuse"
+                mv_back
+                return 1
+            fi
+            # put the stuff we stashed away back
             mv_back
-            return 1
         fi
-        # put the stuff we stashed away back
-        mv_back
     fi
 
     pushd "$TOPDIR" >/dev/null
@@ -1604,10 +1620,8 @@ build_with_srpm() {
             fi
 
             # install the -devel RPM in preparation for the lustre build
-            # note that the EXTRA_VERSION_DELIMITER is *NOT* used in the
-            # version of the directory name under /usr/src
             if ! lnxrel="$kernel_extra_version" unpack_linux_devel_rpm \
-                           "$TOPDIR/RPMS/$arch/$kernel_devel_rpm" "-"; then
+                           "$TOPDIR/RPMS/$arch/$kernel_devel_rpm"; then
                 fatal 1 "Could not find the Linux tree in $TOPDIR/RPMS/$arch/$kernel_devel_rpm"
             fi
         done
@@ -1615,7 +1629,7 @@ build_with_srpm() {
         # need to find and unpack the vendor's own kernel-devel for patchless
         # client build
         local kernelrpm
-        if ! kernelrpm=$(find_linux_rpm "-$DEVEL_KERNEL_TYPE" ${EXTRA_VERSION_DELIMITER:-"-"}); then
+        if ! kernelrpm=$(find_linux_rpm "-$DEVEL_KERNEL_TYPE"); then
             fatal 1 "Could not find the kernel-$DEVEL_KERNEL_TYPE RPM in ${KERNELRPMSBASE}/${lnxmaj}/${DISTRO}"
         fi
         if ! lnxrel="$lnxrel" unpack_linux_devel_rpm "$kernelrpm" "-"; then
@@ -1944,7 +1958,6 @@ check_options
 unpack_lustre
 
 load_target
-EXTRA_VERSION_DELIMITER=${EXTRA_VERSION_DELIMITER:-"-"}
 
 if [ -n "$OFED_VERSION" -a "$OFED_VERSION" != "inkernel" ]; then
     download_ofed
@@ -1985,6 +1998,7 @@ else
 
         build_with_srpm || fatal 1 "Failed to build_with_srpm"
     else
+        EXTRA_VERSION_DELIMITER=${EXTRA_VERSION_DELIMITER:-"-"}
         source ${0%/*}/lbuild.old_school
 
         old_school_download_kernel
index 94af57a..ad774d9 100644 (file)
@@ -86,22 +86,24 @@ rpm_BUILD_kernel_dirname() {
 find_linux_devel_paths() {
     local path="$1"
 
-    LINUX=$path/usr/src/linux-${lnxmaj}${lnxmin}${delimiter}${lnxrel##${lnxmin#.}-}
+    LINUX=$path/usr/src/linux-${lnxmaj}${lnxmin}-${lnxrel}
 
     local objects=$TARGET_ARCH/$RPMSMPTYPE
-    if [ -d $path/usr/src/linux-${lnxmaj}${lnxmin}${delimiter}${lnxrel##${lnxmin#.}-}-obj/powerpc ]; then
+    if [ -d $path/usr/src/linux-${lnxmaj}${lnxmin}-${lnxrel}-obj/powerpc ]; then
         objects="powerpc/$TARGET_ARCH"
     elif [ $TARGET_ARCH == 'i686' ]; then
         objects="i386/$RPMSMPTYPE"
     fi
 
-    LINUXOBJ=$path/usr/src/linux-${lnxmaj}${lnxmin}${delimiter}${lnxrel##${lnxmin#.}-}-obj/$objects
+    LINUXOBJ=$path/usr/src/linux-${lnxmaj}${lnxmin}-${lnxrel}-obj/$objects
+    LINUXRELEASE=$(find_linux_release "$LINUXOBJ")
 
-    LINUXRELEASE=$(find_linux_release ${LINUXOBJ:-$LINUX})
     if [ -z "$LINUXRELEASE" ]; then
-        echo "Failed to find linux release in ${LINUXOBJ:-$LINUX}"
+        echo "Failed to find linux release in $LINUXOBJ"
         return 255
     fi
+
+    return 0
 }
 
 mcpu_rpmbuild_opt() {
@@ -109,4 +111,3 @@ mcpu_rpmbuild_opt() {
     echo "--define \'jobs $(/usr/bin/getconf _NPROCESSORS_ONLN)\'"
     return 0
 }
-
index 3fc997d..6f00c5f 100644 (file)
@@ -8,16 +8,13 @@ BUILD_GEN=3   # bz19975 enable the building of src.rpms by default
 
 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/SOURCES/kernel-$spec.spec{,.orig}
-        sed -i -e "s/^\(Release: *\).*$/\1${real_lnxrel}_${buildid}/" \
+        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\
@@ -67,10 +64,10 @@ 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}"
     if $PATCHLESS; then
 # this $PATCHLESS block should go away when bug 19336 lands.
-        wanted_kernel="${lnxmaj}${lnxmin}${TARGET_DELIMITER}${real_lnxrel}"
+        wanted_kernel="${lnxmaj}${lnxmin}-${lnxrel}"
     fi
     # this is a hack that should go away when the modified lustre kernel
     # Provides kernel-default-base                        vvvvvvvvv
index 90fe29c..4794f8c 100644 (file)
@@ -3,7 +3,7 @@ lnxmin=".60"
 # when we fix up this lnxmaj/lnxmin/lnxrel business...
 #lnxrel="0.33"
 # and note that this means we get rid of the EXTRA_VERSION_DELIMITER crap!!
-lnxrel="60-0.42.8"
+lnxrel="0.42.8"
 
 # this is the delimeter that goes between $lnxmaj and $lnxrel
 # defaults to "-"
@@ -11,12 +11,12 @@ EXTRA_VERSION_DELIMITER="."
 
 # this is the delimeter that goes before the "smp" at the end of the version
 # defaults to empty
-TARGET_DELIMITER="-"
+FLAVOR_DELIMITER="-"
 
-KERNEL_SRPM=kernel-source-$lnxmaj.$lnxrel.src.rpm
-SERIES=""
+KERNEL_SRPM=kernel-source-${lnxmaj}${lnxmin}-${lnxrel}.src.rpm
+SERIES=2.6-sles10.series
 VERSION=$lnxmaj
-EXTRA_VERSION="${lnxrel}_lustre.@VERSION@"
+EXTRA_VERSION="${lnxmin#.}-${lnxrel}_lustre.@VERSION@"
 LUSTRE_VERSION=@VERSION@
 
 OFED_VERSION=1.5.1
index e105853..da6a427 100644 (file)
@@ -1,26 +1,19 @@
 lnxmaj="2.6.27"
 lnxmin=".23"
-# when we fix up this lnxmaj/lnxmin/lnxrel business...
-#lnxrel="0.37_f594963d"
-# and note that this means we get rid of the EXTRA_VERSION_DELIMITER crap!!
-lnxrel="23-0.1"
+lnxrel="0.1"
 # use this when there is an "RPM fix" which means that the name of the
 # (source) RPM has been updated but the version of the kernel inside the
 # RPM is not also updated
-rpmfix=".1"
-
-# this is the delimeter that goes between $lnxmaj and $lnxrel
-# defaults to "-"
-EXTRA_VERSION_DELIMITER="."
+#rpmfix=".1"
 
 # this is the delimeter that goes before the "smp" at the end of the version
 # defaults to empty
 TARGET_DELIMITER="-"
 
-KERNEL_SRPM=kernel-source-$lnxmaj.$lnxrel${rpmfix}.src.rpm
+KERNEL_SRPM=kernel-source-${lnxmaj}${lnxmin}-${lnxrel}${rpmfix}.src.rpm
 SERIES=2.6-sles11.series
 VERSION=$lnxmaj
-EXTRA_VERSION="${lnxrel}_lustre.@VERSION@"
+EXTRA_VERSION="${lnxmin#.}-${lnxrel}_lustre.@VERSION@"
 LUSTRE_VERSION=@VERSION@
 
 OFED_VERSION=1.5.1