2.6-sles10)
CANONICAL_TARGET="sles10-2.6"
;;
+ 2.6-sles11)
+ CANONICAL_TARGET="sles11"
+ ;;
hp_pnnl-2.4)
CANONICAL_TARGET="hp-pnnl-2.4"
;;
}
+# XXX this needs to be re-written as a wrapper around find_rpm
+# or just gotten rid of. :-)
find_linux_rpm() {
local prefix="$1"
local delimiter=${2:-"-"}
# needs to completely refactored. It completely ingores that $BUILD_ARCHS may
# contain a list of arches for which rpmbuild commands (including the one for
# lustre itself)
-unpack_linux_rpm() {
+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
local delimiter=${2:-"-"}
[ -f "$kernelrpm" ] || return 255
- [ -d $TOPDIR/reused ] || mkdir $TOPDIR/reused
+ [ -d $TOPDIR/reused ] || mkdir $TOPDIR/reused || return 255
pushd $TOPDIR/reused || return 255
+ if ! rpm2cpio < "$kernelrpm" | cpio -id > /dev/null 2>&1; then
+ return 255
+ fi
+
+ # call a distro specific hook, if available
+ if type -p unpack_linux_devel_rpm-$DISTRO; then
+ unpack_linux_devel_rpm-$DISTRO "$kernelrpm"
+ fi
+
+ popd
+
+ find_linux_devel_paths $TOPDIR/reused
+
+ return 0
+
+}
+
+# XXX - this rhel/sles goop needs abstracting out into the
+# lbuild-{rhel5,sles10} method files
+find_linux_devel_paths() {
+ local path="$1"
+
local RC=0
- rpm2cpio < "$kernelrpm" | cpio -id > /dev/null 2>&1
- if [ ${PIPESTATUS[0]} -eq 0 ]; then
+ pushd $path
# RHEL-style and SLES-style rpms
- # XXX - this rhel/sles goop needs abstracting out into the
- # lbuild-{rhel5,sles10} method files
# XXX - until bug 19336 cleans this up, we need to extricate the
# ${lnxmin}- from the $lnxrel
local paths="kernels/${lnxmaj}${lnxmin}${delimiter}${lnxrel}-${TARGET_ARCH} linux-${lnxmaj}${lnxmin}${delimiter}${lnxrel##${lnxmin#.}-}"
RC=255
fi
fi
- else
- RC=255
- fi
popd
return $RC
}
--define "KVERSION ${LINUXRELEASE}" \
--define "$K_SRC ${LINUXOBJ:-${LINUX}}" \
--define "LIB_MOD_DIR /lib/modules/${LINUXRELEASE}/updates" \
- --define "configure_options --without-quilt --with-core-mod --with-user_mad-mod --with-user_access-mod --with-addr_trans-mod --with-srp-target-mod --with-core-mod --with-mthca-mod --with-mlx4-mod --with-cxgb3-mod --with-nes-mod --with-ipoib-mod --with-sdp-mod --with-srp-mod --without-srp-target-mod --with-rds-mod --with-iser-mod --with-qlgc_vnic-mod --with-madeye-mod $configure_options" ${TOPDIR}/OFED/SRPMS/ofa_kernel-*.src.rpm
+ --define "configure_options --without-quilt --with-core-mod --with-user_mad-mod --with-user_access-mod --with-addr_trans-mod --with-srp-target-mod --with-core-mod --with-mthca-mod --with-mlx4-mod --with-mlx4_en-mod --with-cxgb3-mod --with-nes-mod --with-ipoib-mod --with-sdp-mod --with-srp-mod --without-srp-target-mod --with-rds-mod --with-iser-mod --with-qlgc_vnic-mod --with-madeye-mod $configure_options" ${TOPDIR}/OFED/SRPMS/ofa_kernel-*.src.rpm
if [ ${PIPESTATUS[0]} != 0 ]; then
fatal 1 "Error building kernel-ib"
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
# get an md5sum of the kernel patch + config for reuse check
# XXX really, there needs to be a signature and a CONFIG_FILE per arch
# in BUILD_ARCHS
- local REUSE_SIGNATURE=$((echo $BUILD_GEN; cat $CONFIG_FILE $TARGET_FILE $FULL_PATCH) | md5sum | cut -d" " -f1)
+ local REUSE_SIGNATURE=$({ 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"
else
# nothing cached, build from scratch
if [ ! -r "$KERNELDIR/$KERNEL_SRPM" ]; then
- download_srpm "$CANONICAL_TARGET" "$KERNEL_SRPM"
+ download_srpm "$CANONICAL_TARGET" "$KERNEL_SRPM" >&2
fi
rpm -ivh $KERNELDIR/$KERNEL_SRPM --define "_topdir $TOPDIR" >&2 || {
# put the Lustre kernel patch into the RPM build tree
cp $FULL_PATCH $TOPDIR/SOURCES/linux-${lnxmaj}-lustre.patch
- prepare_and_build_srpm
+ prepare_and_build_srpm >&2
# store the resulting kernel RPM build tree for future use
if ! store_for_reuse "$TOPDIR/{SPECS,SOURCES,BUILD,SRPMS,RPMS}" \
# 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_rpm \
+ if ! lnxrel="$kernel_extra_version" unpack_linux_devel_rpm \
"$TOPDIR/RPMS/$arch/$kernel_devel_rpm" "-"; then
fatal 1 "Could not find the Linux tree in $TOPDIR/RPMS/$arch/$kernel_devel_rpm"
fi
if ! kernelrpm=$(find_linux_rpm "-$DEVEL_KERNEL_TYPE" ${EXTRA_VERSION_DELIMITER:-"-"}); then
fatal 1 "Could not find the kernel-$DEVEL_KERNEL_TYPE RPM in ${KERNELRPMSBASE}/${lnxmaj}/${DISTRO}"
fi
- if ! lnxrel="$lnxrel" unpack_linux_rpm "$kernelrpm" "-"; then
+ if ! lnxrel="$lnxrel" unpack_linux_devel_rpm "$kernelrpm" "-"; then
fatal 1 "Could not find the Linux tree in $kernelrpm"
fi
fi