Whamcloud - gitweb
LU-13178 build: Update ZFS version to 0.8.3
[fs/lustre-release.git] / contrib / lbuild / lbuild
index 4d72c93..5e19901 100755 (executable)
@@ -414,6 +414,14 @@ compare_version () {
     return 1
 }
 
+# Return a numeric version code based on a version string.  The version
+# code is useful for comparison two version strings to see which is newer.
+version_code() {
+    # split arguments like "0.8.0" into "0", "8", "0"
+    eval set -- $(tr "[:punct:]" " " <<< $*)
+    echo -n "$((($1 << 16) | ($2 << 8) | $3))"
+}
+
 uniqify() {
 
     echo $(echo "$*" | xargs -n 1 | sort -u)
@@ -1010,11 +1018,12 @@ build_spl_zfs() {
     # The spl/zfs spec files expect RPM_BUILD_ROOT to point to the root of the
     # destination for the rpms
     export RPM_BUILD_ROOT=$TOPDIR
-    SPLZFSVER=${SPLZFSVER:-0.7.13}
+    SPLZFSVER=${SPLZFSVER:-0.8.3}
     SPLZFSTAG=${SPLZFSTAG:-}
     # "spl zfs" prior to 0.8.0
     # "zfs" for 0.8.0 and later
-    SPLZFSPKGS="spl zfs"
+    (( $(version_code $SPLZFSVER) < $(version_code 0.8.0) )) &&
+        SPLZFSPKGS="spl zfs" || SPLZFSPKGS="zfs"
 
     # The files expect a kver to be set to the kernel version .
     local kver=$(find_linux_release)
@@ -1484,6 +1493,8 @@ build_kernel_with_srpm() {
                                   sed -e '/_VERSION=/s/_[0-9]*_g.*$//g';
                                   cat "$FULL_PATCH";
                                   cat "$LBUILD_DIR/lbuild";
+                                 test -f lbuild-${DISTROMAJ%%[0-9]*} &&
+                                 cat lbuild-${DISTROMAJ%%[0-9]*};
                                   cat "$LBUILD_DIR/lbuild-$DISTROMAJ"; } |
                                 md5sum | cut -d" " -f1)
         # see if we can link to the reuse pool
@@ -1609,6 +1620,8 @@ build_ofed() {
                                   echo "$BUILD_GEN")";
                                   cat "${linux}/include/linux/autoconf.h";
                                   cat "$LBUILD_DIR/lbuild";
+                                 test -f lbuild-${DISTROMAJ%%[0-9]*} &&
+                                 cat lbuild-${DISTROMAJ%%[0-9]*};
                                   cat "$LBUILD_DIR/lbuild-$DISTROMAJ"; } |
                                 md5sum | cut -d" " -f1)
         # see if we can link to the reuse pool
@@ -1745,38 +1758,17 @@ build_with_srpm() {
                fi
        fi
 
-    # ~sigh~  have to make copies of and modify some of the rpm
-    # infrastructure files so that find-requires can find our unpacked
-    # kernel-devel artifacts
-    cp $RPM_HELPERS_DIR/{symset-table,find-requires{,.ksyms}} .
-    export FIND_REQUIRES="$(pwd)/find-requires"
-    chmod 755 {symset-table,find-requires{,.ksyms}}
-    local tmp="$(pwd)"
-    tmp="${tmp//\//\\/}"
-    ed find-requires <<EOF
-1a
-set -x
-.
-/|.*find-requires.ksyms/s/|/| bash -x/
-g/ [^ ]*\/\(find-requires\.ksyms\)/s// $tmp\/\1/g
-wq
-EOF
-    ed find-requires.ksyms <<EOF
-1a
-set -x
-.
-g/\/.*\/\(symset-table\)/s//$tmp\/\1/g
-g/\(\/usr\/src\/kernels\/\)/s//$tmp\/reused\1/g
-wq
-EOF
-    ed symset-table <<EOF
-1a
-set -x
-.
-g/\(\/boot\/\)/s//$tmp\/reused\1/g
-g/\(\/usr\/src\/kernels\/\)/s//$tmp\/reused\1/g
-wq
-EOF
+       # ~sigh~  have to make copies of and modify some of the rpm
+       # infrastructure files so that find-requires can find our unpacked
+       # kernel-devel artifacts
+       cp $RPM_HELPERS_DIR/{symset-table,find-requires{,.ksyms}} .
+       export FIND_REQUIRES="$(pwd)/find-requires"
+       chmod 755 {symset-table,find-requires{,.ksyms}}
+       local tmp="$(pwd)"
+       tmp="${tmp//\//\\/}"
+       sed -i "s/\/.*find-requires.ksyms/$tmp\/find-requires.ksyms/g" find-requires
+       sed -i "s/\/usr\/src\/kernels/$tmp\/reused\/usr\/src\/kernels/" find-requires.ksyms
+       sed -i "s/\/boot/$tmp\/reused\/boot/; s/\/usr\/src\/kernels/$tmp\/reused\/usr\/src\/kernels/" symset-table
 
        build_ofed "${LINUXOBJ:-$LINUX}" "$ofed_type" "$ofed_version" ||
         fatal 1 "error building OFED"