# our children should die when we do
push_exit_trap "kill -INT -$$ || true" kill_children
+# 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
+#BUILD_GEN=3 # bz19975: enable the building of src.rpms by default
+BUILD_GEN=4 # bz22281: use the git hash in the kernel extra version
+
TOPDIR=$PWD
# CVSROOT is inherited from the environment
CONFIGURE_FLAGS=
EXTERNAL_PATCHES=
EXTRA_VERSION=
-LUSTRE_EXTRA_VERSION=
STAGEDIR=
TMPDIR=${TMPDIR:-"/var/tmp"}
TIMESTAMP=
--xen
Builds a Xen domX kernel.
+ --set-value
+ Set's a variable to a given value.
+
EOF
# list_targets
fatal "$1" "$2"
}
-# canonicalize a relative path
+# canonicalize a relative path to a file
+canon_filepath() {
+ local PATH="$1"
+
+ if [ ! -f "$PATH" ]; then
+ return 1
+ fi
+
+ local FILE=${PATH##*/}
+ local DIR=${PATH%/*}
+
+ echo $(canon_path "$DIR")/$FILE
+ return 0
+}
+
+# canonicalize a relative path to a dir
canon_path() {
local PATH="$1"
download_ofed() {
local force="${1:-false}"
- local location="http://downloads.lustre.org/public/OFED/"
+ if [ -z "$OFED_VERSION" -o "$OFED_VERSION" = "inkernel" ]; then
+ return 0
+ fi
+
+ local location="http://www.openfabrics.org/downloads/OFED/ofed-${OFED_VERSION}/"
- local Mmv daily
if [[ $OFED_VERSION = daily-* ]]; then
+ local Mmv daily
OFED_VERSION=${OFED_VERSION/daily-/}
Mmv=${OFED_VERSION%%-*}
daily=${OFED_VERSION##$Mmv-}
fi
fi
- if [ -z "$OFED_VERSION" -o "$OFED_VERSION" = "inkernel" ]; then
- return 0
- fi
-
local file="OFED-${OFED_VERSION}.tgz"
download_file "$location/$file" "$KERNELTREE" "$force"
}
-download_rdac() {
- local force="${1:-false}"
-
- local location="http://downloads.lustre.org/public/RDAC/"
-
- if [ -z "$RDAC_VERSION" -o "$RDAC_VERSION" = "inkernel" ]; then
- return 0
- fi
-
- local file="rdac-LINUX-${RDAC_VERSION}-source.tar.gz"
- download_file "$location/$file" "$KERNELTREE" "$force"
-
-}
-
-download_mptlinux() {
- local force="${1:-false}"
-
- local location="http://downloads.lustre.org/public/MPTLINUX/"
-
- if [ -z "$MPTLINUX_VERSION" -o "$MPTLINUX_VERSION" = "inkernel" ]; then
- return 0
- fi
-
- file="SUN_MPTLINUX_RHEL5_PH16-${MPTLINUX_VERSION}.tar.gz"
- download_file "$location/$file" "$KERNELTREE" "$force"
-
-}
-
load_target() {
EXTRA_VERSION_save="$EXTRA_VERSION"
if $PATCHLESS || [ -n "$SERIES" ]; then
EXTRA_VERSION=$(echo $EXTRA_VERSION | sed -e "s/\(.*_lustre\)\..*/\1/")
# EXTRA_VERSION="${EXTRA_VERSION}-${TAG}.${TIMESTAMP}"
- EXTRA_VERSION="${EXTRA_VERSION}.${TIMESTAMP}"
+ if ! $PATCHLESS && [ -n "$BUILDID" ]; then
+ EXTRA_VERSION="${EXTRA_VERSION}.${BUILDID}"
+ fi
fi
fi
# EXTRA_VERSION=${EXTRA_VERSION//-/_}
}
-unpack_rdac() {
-
- if ! untar "$KERNELTREE/rdac-LINUX-${RDAC_VERSION}-source.tar.gz"; then
- return 1
- fi
- [ -d rdac-LINUX ] || ln -sf rdac-LINUX-[0-9][0-9].* rdac-LINUX
-
-}
-
-unpack_mptlinux() {
-
- if ! untar $KERNELTREE/SUN_MPTLINUX_RHEL5_PH16-${MPTLINUX_VERSION}.tar.gz pkg1-rhel5/srpms-1/mptlinux-${MPTLINUX_VERSION}-1.src.rpm; then
- return 1
- fi
- mv pkg1-rhel5/srpms-1/mptlinux-${MPTLINUX_VERSION}-1.src.rpm .
-
-}
-
unpack_lustre() {
if [ -z "$LUSTRE" ]; then
fatal 1 "There was an error checking out Lustre/Portals/Build from CVS."
echo "Creating lustre tarball..."
sh autogen.sh || fatal 1 "There was an error running autogen.sh."
- ./configure --disable-{modules,utils,liblustre,tests,doc} || \
+ ./configure --enable-dist || \
fatal 1 "There was an error running ./configure to create makefiles."
make dist || fatal 1 "There was an error running 'make dist'."
LUSTRE=$PWD/lustre-*.tar.gz
targets="--target $arch $targets"
done
- local confoptions="--with-linux=${linux}"
+ local confoptions=""
+
if $PATCHLESS; then
- confoptions="--with-linux=${linux} --disable-server"
- fi
- if [ "$linuxobj" != "" ]; then
- confoptions="$confoptions --with-linux-obj=${linuxobj}"
+ confoptions="$confoptions --disable-server"
fi
- ./configure $confoptions ${CONFIGURE_FLAGS} 2>&1
- if [ "$?" != "0" ]; then
- local saved_config="../config.log.$(date +%s)"
- cp config.log $saved_config
- chmod a+r $saved_config
- echo "Saved config.log is at $saved_config"
- cat /proc/mounts
- ls -l /proc/$$
- pwd
- echo "config.log contents:"
- cat config.log
- popd
- return 255
+ local rpmbuildopt='-tb'
+ if $NORPM; then
+ rpmbuildopt='-tc'
+ echo NORPM mode. Only compiling.
fi
- gen_lustre_version
+ ( $(skeep_ldiskfs_rpm $TAG) ) || {
- # hack. Somebody move build/lustre.spec to lustre.spec for b1_6
- local lustre_spec
- [ -f lustre.spec ] && lustre_spec=lustre.spec
- [ -f build/lustre.spec ] && lustre_spec=build/lustre.spec
+ pushd ldiskfs > /dev/null || return 255
- [ -f "$lustre_spec" ] && sed \
- -e "s^Release: .*$^Release: $LUSTRE_EXTRA_VERSION^" \
- < $lustre_spec \
- > ../lustre.spec
+ if ! ./configure --enable-dist; then
+ echo "failed to configure in ldiskfs"
+ popd >/dev/null # pushd ldiskfs
+ popd >/dev/null # pushd lustre
+ return 255
+ fi
- local rpmbuildopt='-bb'
- if $NORPM; then
- rpmbuildopt='-bc'
- echo NORPM mode. Only compiling.
- fi
+ if ! make dist 2>&1; then
+ popd >/dev/null # pushd ldiskfs
+ popd >/dev/null # pushd lustre
+ return 255
+ fi
+
+ #cp lustre-ldiskfs*.tar.gz $TOPDIR/SOURCES || \
+ # fatal 1 "Could not copy lustre-ldiskfs*.tar.gz to $TOPDIR/SOURCES"
+
+ if ! $RPMBUILD $targets $rpmbuildopt lustre-ldiskfs*.tar.gz \
+ --define "configure_args $confoptions ${CONFIGURE_FLAGS}" \
+ --define "kdir $linux" \
+ ${linuxobj:+--define "kobjdir $linuxobj"} \
+ --define "_tmppath /var/tmp" \
+ --define "_topdir $TOPDIR" 2>&1; then
+ popd >/dev/null # pushd ldiskfs
+ popd >/dev/null # pushd lustre
+ return 255
+ fi
+
+ if $DO_SRC; then
+ if ! $RPMBUILD -ts lustre-ldiskfs*.tar.gz \
+ --define "configure_args $confoptions ${CONFIGURE_FLAGS}" \
+ --define "kdir $linux" \
+ ${linuxobj:+--define "kobjdir $linuxobj"} \
+ --define "_tmppath /var/tmp" \
+ --define "_topdir $TOPDIR" 2>&1; then
+ popd >/dev/null # pushd ldiskfs
+ popd >/dev/null # pushd lustre
+ return 255
+ fi
+ fi
+ popd >/dev/null # pushd ldiskfs
+
+ # tell lustre where ldiskfs is
+ # XXX - pointing to the RPM BUILD dir is a hack. we need to flesh
+ # out the ldiskfs RPM build so that it builds a
+ # lustre-ldiskfs-devel RPM and install that and point lustre
+ # to that instead
+ confoptions="$confoptions --with-ldiskfs=$(ls -d $TOPDIR/BUILD/lustre-ldiskfs-*)"
+ }
# convert the $PATCHLESS boolean to an empty/not-empty boolean
# as silly as this seems, it makes the syntax of the rpmbuild command
lustre_tests="no"
fi
- $RPMBUILD $targets $rpmbuildopt ../lustre.spec \
+ $RPMBUILD $targets $rpmbuildopt "$LUSTRE" \
${is_patchless:+--define "lustre_name lustre-client"} \
${lustre_tests:+--define "build_lustre_tests 0"} \
${FIND_REQUIRES:+--define "__find_requires $FIND_REQUIRES"} \
--define "configure_args $confoptions ${CONFIGURE_FLAGS}" \
+ --define "kdir $linux" \
+ ${linuxobj:+--define "kobjdir $linuxobj"} \
--define "_tmppath $TMPDIR" \
--define "_topdir $TOPDIR" 2>&1 || \
fatal 1 "Error building rpms for $BUILD_ARCHS."
- popd >/dev/null
- ( $(skeep_ldiskfs_rpm $TAG) ) && return
-
- pushd lustre/ldiskfs || return 255
- make dist 2>&1
- if [ "$?" != "0" ]; then
- popd
- return 255
- fi
- cp lustre-ldiskfs*.tar.gz $TOPDIR/SOURCES
-
- gen_lustre_version
-
- local ldiskfs_spec=lustre-ldiskfs.spec
- [ -f "$ldiskfs_spec" ] && sed \
- -e "s^Release: .*$^Release: $LUSTRE_EXTRA_VERSION^" \
- < $ldiskfs_spec \
- > ../lustre-ldiskfs.spec
-
- if ! $RPMBUILD $targets $rpmbuildopt ../lustre-ldiskfs.spec \
- --define "_tmppath /var/tmp" \
- --define "_topdir $TOPDIR" 2>&1; then
- popd
- return 255
- fi
-
if $DO_SRC; then
- if ! $RPMBUILD -bs ../lustre-ldiskfs.spec \
- --define "_tmppath /var/tmp" \
- --define "_topdir $TOPDIR" 2>&1; then
+ if ! $RPMBUILD -ts "$LUSTRE" \
+ ${is_patchless:+--define "lustre_name lustre-client"} \
+ ${lustre_tests:+--define "build_lustre_tests 0"} \
+ ${FIND_REQUIRES:+--define "__find_requires $FIND_REQUIRES"} \
+ --define "configure_args $confoptions ${CONFIGURE_FLAGS}" \
+ --define "kdir $linux" \
+ ${linuxobj:+--define "kobjdir $linuxobj"} \
+ --define "_tmppath $TMPDIR" \
+ --define "_topdir $TOPDIR" 2>&1; then
popd
return 255
fi
fi
- popd
+ popd >/dev/null
}
#check if we need to build separate ldiskfs RPM
skeep_ldiskfs_rpm() {
- local tag="$1"
+ local tag="$1"
- local skip=false
+ local skip=false
- if ! $LDISKFSRPM; then
- skip=true
- elif $PATCHLESS; then
- skip=true
- else
- for skiptag in $SKIPLDISKFSRPM; do
- [[ $tag == $skiptag ]] && skip=true && break
- done
- fi
-
- pushd $TOPDIR/BUILD/lustre-[1-9]* >/dev/null
- grep -q '^SERVER_TRUE[ \t]=[ \t]#$' autoMakefile && skip=true
- popd >/dev/null
-
- echo $skip
-
-}
-
-#generate LUSTRE_EXTRA_VERSION from EXTRA_VERSION
-gen_lustre_version() {
+ if ! $LDISKFSRPM; then
+ skip=true
+ elif $PATCHLESS; then
+ skip=true
+ else
+ for skiptag in $SKIPLDISKFSRPM; do
+ [[ $tag == $skiptag ]] && skip=true && break
+ done
+ fi
- LUSTRE_EXTRA_VERSION="${lnxmaj}-${EXTRA_VERSION}${FLAVOR_DELIMITER}${RPMSMPTYPE}"
- LUSTRE_EXTRA_VERSION=${LUSTRE_EXTRA_VERSION//-/_}
+ echo $skip
}
}
store_for_reuse() {
- local articles="$1"
- local module="$2"
- local location="$3"
- local signature="$4"
- local use_links="$5"
-
- local linkflag=""
- if $use_links; then
- linkflag="l"
+ local articles="$1"
+ local module="$2"
+ local location="$3"
+ local signature="$4"
+ local use_links="$5"
+
+ local linkflag=""
+ if $use_links; then
+ linkflag="l"
+ fi
+
+ local default_iface=$(/sbin/ip route get 192.1.1.1 | sed -ne 's/.* dev \(.*\) * src .*/\1/p')
+ if [ -z "$default_iface" ]; then
+ fatal 1 "Failed to determine the default route interface"
+ fi
+ local unique_id=$(/sbin/ip addr show dev $default_iface | sed -ne '/ inet /s/ *inet \(.*\)\/.*/\1/p' | head -1)
+ if [ -z "$unique_id" ]; then
+ fatal 1 "Failed to determine a unique id from interface $default_interface"
+ fi
+
+ local finallocation="$location"/"$signature"/"$module"
+ location="$location"/"$signature-${unique_id}"/"$module"
+ mkdir -p "$location"
+ # the cleanup script removes any directory that doesn't have a
+ # .lastused, so let's try to prevent that as soon as we can
+ # this solution still slightly racy with the cleanup script
+ # but the race is a lot tighter now
+ touch -t 197001010000 "$location/.lastused"
+ ## use eval/echo here to make sure shell expansions are performed
+ #if ! cp -a${linkflag} $(eval echo $articles) "$location"; then
+ local article
+ for article in $(eval echo $articles); do
+ if ! cp -a${linkflag} "$article" "$location"; then
+ error "Failed to copy \"$article\" to \"$location\" in store_for_reuse()"
+ # rename the cache location so that it's not cached
+ # product, but is around for analysis
+ mv "$location"{,-bad-$(date +%s)} ||
+ error "failed to clean up a failed cache attempt" \
+ "in \"$location\" -- manual cleanup will be" \
+ "necessary"
+ return 1
fi
+ done
- location="$location"/"$signature"/"$module"
- mkdir -p "$location"
- # the cleanup script removes any directory that doesn't have a
- # .lastused, so let's try to prevent that as soon as we can
- # this solution still slightly racy with the cleanup script
- # but the race is a lot tighter now
- touch -t 197001010000 "$location/.lastused"
- ## use eval/echo here to make sure shell expansions are performed
- #if ! cp -a${linkflag} $(eval echo $articles) "$location"; then
- local article
- for article in $(eval echo $articles); do
- if ! cp -a${linkflag} "$article" "$location"; then
- error "Failed to copy \"$article\" to \"$location\" in store_for_reuse()"
- # rename the cache location so that it's not cached
- # product, but is around for analysis
- mv "$location"{,-bad-$(date +%s)} ||
- error "failed to clean up a failed cache attempt" \
- "in \"$location\" -- manual cleanup will be" \
- "necessary"
- return 1
- fi
- done
-
- # flag the cache as complete (i.e. in case lbuild was previously
- # interrupted while caching)
- touch "$location/.lastused"
+ # flag the cache as complete (i.e. in case lbuild was previously
+ # interrupted while caching)
+ touch "$location/.lastused"
- return 0
+ # put the temporary location into the final location
+ # (last one wins)
+ mkdir -p "${finallocation%/*}"
+ mv "$location" "$finallocation"
+ rmdir "${location%/*}"
+ return 0
}
find $dir -type f |
xargs ln -t $dest/RPMS/${dir##*/} -s
done
-
fi
return 0
else
}
-build_mptlinux() {
- local linux="$1"
- local version="$2"
-
- if [ -z "$version" -o "$version" = "inkernel" ]; then
- return 0
- fi
-
- local targets arch
- for arch in $BUILD_ARCHS; do
- targets="--target $arch $targets"
- done
-
- local rpmbuildopt='-bb'
- if $NORPM; then
- rpmbuildopt='-bc'
- echo NORPM mode. Only compiling.
- fi
-
- # if only we could just rebuild the src.rpm. but the included spec
- # is a real pig's breakfast. just check out the patch we need to
- # apply to it to make it useful.
- #$RPMBUILD --rebuild \
- # --define "_topdir ${TOPDIR}" --target ${TARGET_ARCH} \
- # ${TOPDIR}/mptlinux-*.src.rpm
- rpm -ivh --define "_topdir ${TOPDIR}" ${TOPDIR}/mptlinux-*.src.rpm
-
- # now the big honkin' patch to the spec file
- pushd ${TOPDIR}/SPECS
- # to regen this patch use:
- # !!cd ~/rpm/SPECS/ && diff -u mptlinux.spec{.dist,}
- patch -p0 < ${TOPDIR}/lustre/build/mptlinux.spec.patch || fatal 1 "failed to patch mptlinux.spec"
- popd
-
- local targets arch
- for arch in $BUILD_ARCHS; do
- targets="--target $arch $targets"
- done
-
- local rpmbuildopt='-bb'
- if $NORPM; then
- rpmbuildopt='-bc'
- echo NORPM mode. Only compiling.
- fi
-
- if ! $RPMBUILD $targets $rpmbuildopt \
- ${FIND_REQUIRES:+--define "__find_requires $FIND_REQUIRES"} \
- --define "_tmppath /var/tmp" \
- --define "_topdir ${TOPDIR}" \
- --define "kernel_obj $linux" \
- ${TOPDIR}/SPECS/mptlinux.spec 2>&1; then
- return 1
- fi
- if $DO_SRC; then
- if ! $RPMBUILD -bs \
- ${FIND_REQUIRES:+--define "__find_requires $FIND_REQUIRES"} \
- --define "_tmppath /var/tmp" \
- --define "_topdir ${TOPDIR}" \
- --define "kernel_obj $linux" \
- ${TOPDIR}/SPECS/mptlinux.spec 2>&1; then
- return 1
- fi
- fi
-
- return 0
-
-}
-
-# build RDAC
-build_rdac() {
- local linux="$1"
- local version="$2"
-
- if [ -z "$version" -o "$version" = "inkernel" ]; then
- return 0
- fi
-
- # note that we use an _, not a . before the spec on purpose. we are not
- # allowed to have more than one file with a .spec trailer in a tarball
- # that is supposed to be usable with rpmbuild
- cp lustre/build/rdac_spec ${TOPDIR}/SPECS/rdac.spec || fatal 1 "Could not find rdac.spec in lustre/build"
-
- local targets arch
- for arch in $BUILD_ARCHS; do
- targets="--target $arch $targets"
- done
-
- local rpmbuildopt='-bb'
- if $NORPM; then
- rpmbuildopt='-bc'
- echo NORPM mode. Only compiling.
- fi
-
- local distro
- case $DISTRO in
- rhel5) distro="REDHAT"
- ;;
- sles1*) distro="SUSE"
- ;;
- *) echo "$DISTRO not supported by RDAC, skipping"
- return 0
- ;;
- esac
- if ! $RPMBUILD $targets $rpmbuildopt --define "dist $distro" \
- ${FIND_REQUIRES:+--define "__find_requires $FIND_REQUIRES"} \
- --define "_tmppath /var/tmp" \
- --define "_topdir ${TOPDIR}" \
- --define "kernel_obj $linux" \
- ${TOPDIR}/SPECS/rdac.spec 2>&1; then
- return 1
- fi
- if $DO_SRC; then
- if ! $RPMBUILD -bs --define "dist $distro" \
- ${FIND_REQUIRES:+--define "__find_requires $FIND_REQUIRES"} \
- --define "_tmppath /var/tmp" \
- --define "_topdir ${TOPDIR}" \
- --define "kernel_obj $linux" \
- ${TOPDIR}/SPECS/rdac.spec 2>&1; then
- return 1
- fi
- fi
-
- return 0
-}
-
# build OFED
# globals used:
# TOPDIR
local linux="$1"
local ofed_version="$2"
- # before lustre, build kernel-ib
- if [ -z "$ofed_version" -o "$ofed_version" = "inkernel" ]; then
+ # if an ofed version is given, then it means use OFED proper,
+ # not any vendor specific "inkernel" version
+ if [ -z "$ofed_version" ]; then
return 0
fi
+ if [ "$ofed_version" = "inkernel" ]; then
+ # see if there is a distro specific override for this and use
+ # that if it exists
+ # XXX we need to better integrate a distro specific override with
+ # the rest of this function so that all of the reuse cache
+ # stuff is leveraged given that 80% of this function is reuse
+ if type -p build_ofed-${DISTRO}; then
+ local ofed_location
+ ofed_location=$(build_ofed-${DISTRO} ${STDOUT})
+ local rc=${PIPESTATUS[0]}
+ CONFIGURE_FLAGS="--with-o2ib=${ofed_location} ${CONFIGURE_FLAGS}"
+ return $rc
+ else
+ return 0
+ fi
+ fi
+
+ # build kernel-ib
if $USE_BUILD_CACHE && [ -n "$REUSEBUILD" ]; then
local REUSE_SIGNATURE=$({ echo "$ofed_version";
echo "$(find_linux_release ${linux})";
ofed_version=$(echo $ofed_version |
sed -re 's/-(20[0-9]{6,6}-[0-9]{4,4}|rc[0-9]*)$//')
local rpm=$(ls $TOPDIR/RPMS/*/kernel-ib-devel-${ofed_version}-${linuxrelease//-/_}.*.rpm)
- rpm2cpio -itv < $rpm | cpio -id
+ if ! rpm2cpio < $rpm | cpio -id; then
+ fatal 1 "could not unpack the kernel-ib-devel rpm."
+ fi
CONFIGURE_FLAGS="--with-o2ib=$(pwd)/usr/src/ofa_kernel ${CONFIGURE_FLAGS}"
popd >/dev/null
build_ofed "${LINUXOBJ:-$LINUX}" "$OFED_VERSION" ||
fatal 1 "error building OFED"
- if ! $PATCHLESS; then
- # only need RDAC for the server
- build_rdac "${LINUXOBJ:-$LINUX}" "$RDAC_VERSION" ||
- fatal 1 "error building RDAC"
- fi
-
- build_mptlinux "${LINUXOBJ:-$LINUX}" "$MPTLINUX_VERSION" ||
- fatal 1 "error building mptlinux"
-
# now build Lustre
if build_lustre "$LINUX" "$LINUXOBJ"; then
# the build worked. resolve any symlinked files (i.e. from reuse)
# in RPMS/$arch to real files so that that that huge mess of
# complication known as LTS can copy them yet somewhere else.
# is it any wonder this whole process is so damn so? anyone ever
- # heard of hardlinks? it this cool new thing that allows you save
+ # heard of hardlinks? it's this cool new thing that allows you save
# tons of time and space by creating... well you can go read about
# them if you have not heard about them yet.
# can i say how much the implemenation of all of this really impedes
# RPM reuse?
- pushd RPMS/$TARGET_ARCH
- for file in *; do
+ local dir
+ for dir in RPMS/*; do
+ pushd $dir
+ for file in $(ls); do
if [ -h $file ]; then
cp $file foo
mv foo $file
fi
done
- popd
+ popd
+ done
+ # also, for i?86, make sure all of the RPMs are in RPMS/$TARGET_ARCH
+ # as that's where LTS expects to find them
+ for dir in RPMS/*; do
+ if [ $dir = RPMS/$TARGET_ARCH ]; then
+ continue
+ fi
+ pushd $dir
+ local files=$(ls)
+ if [ -n "$files" ]; then
+ cp -al $files ../$TARGET_ARCH
+ fi
+ popd
+ done
else
return 1
fi
shift 2
;;
--lustre)
- LUSTRE=$2
+ if ! LUSTRE=$(canon_filepath "$2"); then
+ fatal 1 "Could not determine the canonical location of $2"
+ fi
shift 2
;;
--nodownload)
unpack_lustre
+# XXX - should we _always_ get the buildid from the META file? what are the
+# other (i.e. non-lustre-tarball use cases of lbuild)?
+BUILDID=$(sed -ne '/^BUILDID =/s/.*= *//p' lustre/META)
+
load_target
if [ -n "$OFED_VERSION" -a "$OFED_VERSION" != "inkernel" ]; then
unpack_ofed || fatal 1 "Error unpacking OFED tarball"
fi
-if [ -n "$MPTLINUX_VERSION" -a "$MPTLINUX_VERSION" != "inkernel" ]; then
- download_mptlinux
- unpack_mptlinux || fatal 1 "Error unpacking MPTLINUX distribution"
-fi
-
# make sure the RPM build environment is set up
create_rpmbuild_dirs
-if [ -n "$RDAC_VERSION" -a "$RDAC_VERSION" != "inkernel" ]; then
- download_rdac
- # we don't actually need to unpack this. just put it in the SOURCES dir
- #unpack_rdac || fatal 1 "Error unpacking RDAC tarball"
- cp "$KERNELTREE/rdac-LINUX-${RDAC_VERSION}-source.tar.gz" ${TOPDIR}/SOURCES/ ||
- fatal 1 "Error copying RDAC source tarball to RPM SOURCES dir"
-fi
-
# if an unpacked kernel source tree was given on the command line
# just build lustre with it (nothing distro kernel specific here)
if [ -n "$LINUX" ]; then
- build_mptlinux "${LINUXOBJ:-$LINUX}" "$MPTLINUX_VERSION" ||
- fatal 1 "error building mptlinux"
build_ofed "${LINUXOBJ:-$LINUX}" "$OFED_VERSION" ||
fatal 1 "error building OFED"
- if ! $PATCHLESS; then
- build_rdac "${LINUXOBJ:-$LINUX}" "$RDAC_VERSION" ||
- fatal 1 "error building RDAC"
- fi
build_lustre "$LINUX" "$LINUXOBJ"
else
if [ -f "${0%/*}/lbuild-$DISTRO" ]; then