Permit Lustre Client (only) modules DKMS RPM creation.
This patch is a follow on to the first set of patches for LU-1032
that only allowed for the creation of Lustre Server (zfs only)
modules DKMS RPM.
It also changes original behavior by allowing to dynamically
modify dkms.conf on-target. This particularly helps to change
configure and list of modules to be built/installed list, like
to configure with gss to build ptlrpc_gss.ko module when
krb5_devel is present instead to have it been a mandatory
required dependency.
Also implements feature of DKMS RPM creation from Makefile
(thanks to mjmac), now in 2 separate SRPM/RPM steps and for both
Client and Server versions.
Also use an auto-increment (Array[${#Array[@]}]=) operator in
dkms.conf modules declarations to help for future changes when
there will be a need to add/delete modules.
Change in lustre/utils Makefile has been required to allow
building of ptlrpc_gss module with --enable-gss and without the
need to specify --enable-utils which was causing an unexpected
zfs user-land dependency for DKMS Server build.
To satisfy lustre rpm requirement of a package providing
lustre-osd, provides has been added to DKMS Server RPM since
it does actually generate osd-zfs module.
Signed-off-by: Michael MacDonald <michael.macdonald@intel.com>
Signed-off-by: Bruno Faccini <bruno.faccini@intel.com>
Change-Id: I278d50307a17fe49a06392351890946b7dd3557a
Reviewed-on: http://review.whamcloud.com/12347
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
$(MKDIR_P) $(rpmbuilddir)/SPECS && \
$(MKDIR_P) $(rpmbuilddir)/SOURCES)
+if SERVER
+DKMS_PACKAGE=$(PACKAGE)
+DKMS_SERVER=--with servers
+else
+DKMS_PACKAGE=$(PACKAGE)-client
+DKMS_SERVER=--without servers
+endif
+
+# Only zfs Lustre DKMS Server is supported, so previous configure command
+# must use related parameters for success.
+dkms-srpm: $(PACKAGE)-dkms.spec dist Makefile
+ rpmbuilddir=`mktemp -t -d rpmbuild-@PACKAGE@-$$USER-XXXXXXXX`; \
+ $(MAKE) $(AM_MAKEFLAGS) \
+ rpmbuilddir="$$rpmbuilddir" rpm-local || exit 1; \
+ $(RPMBUILD) \
+ --define "_tmppath $$rpmbuilddir/TMP" \
+ --define "_topdir $$rpmbuilddir" \
+ --define "_sourcedir $(top_srcdir)" \
+ $(DKMS_SERVER) \
+ --bs $(PACKAGE)-dkms.spec || exit 1; \
+ cp $$rpmbuilddir/SRPMS/*.src.rpm $(top_srcdir) || exit 1; \
+ rm -rf $$rpmbuilddir
+
+dkms-rpm: dkms-srpm
+ rpmbuilddir=`mktemp -t -d rpmbuild-@PACKAGE@-$$USER-XXXXXXXX`; \
+ $(RPMBUILD) \
+ --define "_tmppath $$rpmbuilddir/TMP" \
+ --define "_topdir $$rpmbuilddir" \
+ @RPMBUILD_BINARY_ARGS@ \
+ --rebuild $(DKMS_PACKAGE)-dkms-*.src.rpm || exit 1; \
+ cp $$rpmbuilddir/RPMS/*/*.rpm $(top_srcdir) || exit 1; \
+ rm -rf $$rpmbuilddir
+
rpms: srpm
rpmbuilddir=`mktemp -t -d rpmbuild-@PACKAGE@-$$USER-XXXXXXXX`; \
$(MAKE) $(AM_MAKEFLAGS) \
[Rules:build/Rules.in]
AC_PACKAGE_TARNAME[.spec]
AC_PACKAGE_TARNAME[-dkms.spec]
+ lustre/scripts/dkms.mkconf
contrib/Makefile
contrib/lbuild/Makefile
contrib/scripts/Makefile
lustre-iokit/sgpdd-survey/Makefile
lustre-iokit/mds-survey/Makefile
lustre-iokit/ior-survey/Makefile
- lustre-iokit/stats-collect/Makefile
+ lustre-iokit/stats-collect/Makefile,
+ [chmod +x lustre/scripts/dkms.mkconf]
)
])
}
+# Only zfs Lustre DKMS Server is supported
build_lustre_dkms() {
[ -n "$MPSS_VERSION" ] && return 0
local ver=$(eval echo $(awk '/LUSTRE_VERSION_STRING/ {print $3}' lustre/include/lustre_ver.h))
echo "Building Lustre DKMS RPMs for: $BUILD_ARCHS..."
./configure --enable-dist || return 255
- $RPMBUILD --define="_topdir $TOPDIR" -bs lustre-dkms.spec || return 255
- $RPMBUILD --rebuild --define="_topdir $TOPDIR" $TOPDIR/SRPMS/lustre-dkms-$ver-*.src.rpm || return 255
+
+ if $PATCHLESS; then
+ $RPMBUILD --define="_topdir $TOPDIR" --without servers -bs lustre-dkms.spec || return 255
+ $RPMBUILD --rebuild --define="_topdir $TOPDIR" --without servers $TOPDIR/SRPMS/lustre-client-dkms-$ver-*.src.rpm || return 255
+ else
+ $RPMBUILD --define="_topdir $TOPDIR" -bs lustre-dkms.spec || return 255
+ $RPMBUILD --rebuild --define="_topdir $TOPDIR" $TOPDIR/SRPMS/lustre-dkms-$ver-*.src.rpm || return 255
+ fi
return 0
}
-%define module @PACKAGE@
+%bcond_without servers
+
+# Set the package name prefix
+%if %{with servers}
+ %define module @PACKAGE@
+%else
+ %define module @PACKAGE@-client
+%endif
+
%define buildid 1
-%define mkconf lustre/scripts/dkms.mkconf
Name: %{module}-dkms
Group: System Environment/Kernel
License: GPLv2+
URL: http://lustre.opensfs.org/
-Source0: %{module}-%{version}.tar.gz
+Source0: @PACKAGE@-%{version}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
# (ie, "BUILD_DEPENDS[#]=<pkg>"), and have latest DKMS fixes integrated
# for bugs that prevented our module to build/install.
Requires: dkms >= 2.2.0.3-28.git.7c3e7c5
+%if %{with servers}
+# Only zfs Lustre DKMS Server is supported
Requires: spl-dkms >= 0.6.1
Requires: zfs-dkms >= 0.6.1
+Requires: %{module}-osd-zfs-mount
+%endif
Requires: gcc, make, perl
-Requires: python-docutils
Requires: kernel-devel
-Requires: @PACKAGE@-osd-zfs-mount
-Provides: @PACKAGE@-kmod = %{version}
-Provides: @PACKAGE@-modules = %{version}
-Provides: @PACKAGE@-osd-zfs
-Conflicts: @PACKAGE@-modules
-Conflicts: @PACKAGE@-client-modules
-Conflicts: @PACKAGE@-osd-zfs
+Provides: %{module}-kmod = %{version}
+Provides: %{module}-modules = %{version}
+%if %{with servers}
+# Only zfs Lustre DKMS Server is supported
+Provides: %{module}-osd-zfs = %{version}
+Provides: %{module}-osd
+%endif
%description
This package contains the dkms Lustre kernel modules.
%prep
-%setup -q -n %{module}-%{version}
+%setup -q -n @PACKAGE@-%{version}
%build
-%{mkconf} -n %{module} -v %{version} -f dkms.conf
+cat << EOF > dkms.conf
+# Embryonic lustre-dkms dkms.conf to allow for on-target accurate and full
+# version re-create during first dkms add stage.
+PACKAGE_NAME=%{module}
+PACKAGE_VERSION=%{version}
+POST_ADD="lustre-dkms_post-add.sh \$module \$module_version \$kernelver \
+ \$kernel_source_dir \$arch \$source_tree \$dkms_tree"
+# at least one DEST_MODULE_LOCATION[] element, along with an install
+# path made of either "extra" or "updates" subdir, are required during
+# dkms.conf validity check of "dkms add" step.
+DEST_MODULE_LOCATION[${#DEST_MODULE_LOCATION[@]}]="/extra/lnet/"
+EOF
+
+cat << EOF > lustre-dkms_post-add.sh
+#!/bin/bash
+# \$1 : \$module
+# \$2 : \$module_version
+# \$3 : \$kernelver
+# \$4 : \$kernel_source_dir
+# \$5 : \$arch
+# \$6 : \$source_tree
+# \$7 : \$dkms_tree
+
+if [ \$1 = "lustre-client" ] ; then
+ SERVER="--disable-server"
+else
+ SPL_VERSION=\$(dkms status -m spl -k \$3/\$5 | awk -F', ' '{print \$2; exit 0}' | sed 's/: added\\\$//')
+ ZFS_VERSION=\$(dkms status -m zfs -k \$3/\$5 | awk -F', ' '{print \$2; exit 0}' | sed 's/: added\\\$//')
+
+ SERVER="--enable-server --disable-ldiskfs --with-linux=\$4 --with-linux-obj=\$4 \\
+ --with-spl=\$6/spl-\${SPL_VERSION} \\
+ --with-spl-obj=\$7/spl/\${SPL_VERSION}/\$3/\$5 \\
+ --with-zfs=\$6/zfs-\${ZFS_VERSION} \\
+ --with-zfs-obj=\$7/zfs/\${ZFS_VERSION}/\$3/\$5"
+fi
+
+rpm -qa | grep krb5-devel >/dev/null
+if [ \$? == 0 ] ; then
+ GSS="--enable-gss"
+else
+ GSS="--disable-gss"
+fi
+
+# run a configure pass to clean "--enable-dist" only effect and also to
+# ensure local/on-target environment to be taken into account
+./configure --enable-modules --disable-iokit --disable-snmp --disable-doc \\
+ --disable-utils --disable-tests --disable-maintainer-mode \\
+ \$GSS \$SERVER \\
+ --disable-manpages --disable-dlc
+# re-create dkms.conf based on this
+lustre/scripts/dkms.mkconf -n \$1 -v \$2 -f ./dkms.conf
+EOF
+
+chmod 755 lustre-dkms_post-add.sh
+
sed -i 's/BUILDID[[:print:]]*/BUILDID = %{buildid}/' META
sed -i 's/PRISTINE[[:print:]]*/PRISTINE = 1/' META
cp META ldiskfs/META
rm -rf $RPM_BUILD_ROOT
fi
mkdir -p $RPM_BUILD_ROOT/usr/src/
-cp -rfp ${RPM_BUILD_DIR}/%{module}-%{version} $RPM_BUILD_ROOT/usr/src/
+cp -rfp ${RPM_BUILD_DIR}/@PACKAGE@-%{version} $RPM_BUILD_ROOT/usr/src/
+%if %{without servers}
+# To have the directory reflect the DKMS RPM name!
+mv $RPM_BUILD_ROOT/usr/src/@PACKAGE@-%{version} $RPM_BUILD_ROOT/usr/src/%{module}-%{version}
+%endif
%clean
if [ "$RPM_BUILD_ROOT" != "/" ]; then
exit 0
%changelog
+* Wed Oct 7 2015 Bruno Faccini <bruno.faccini@intel.com>
+ - adapted for Lustre Client DKMS creation
+ - allow for on-target reconfig to prevent static deps requires
* Fri Apr 8 2013 Brian Behlendorf <behlendorf1@llnl.gov> - 2.3.63-1
- First DKMS packages.
+++ /dev/null
-#!/bin/sh
-
-PROG=$0
-
-pkgcfg=/etc/sysconfig/lustre
-
-while getopts "n:v:c:f:" opt; do
- case $opt in
- n) pkgname=$OPTARG ;;
- v) pkgver=$OPTARG ;;
- c) pkgcfg=$OPTARG ;;
- f) filename=$OPTARG ;;
- esac
-done
-
-if [ -z "${pkgname}" -o -z "${pkgver}" -o -z "${filename}" ]; then
- echo "Usage: $PROG -n <pkgname> -v <pkgver> -c <pkgcfg> -f <filename>"
- exit 1
-fi
-
-cat >${filename} <<EOF
-PACKAGE_NAME="${pkgname}"
-PACKAGE_VERSION="${pkgver}"
-PACKAGE_CONFIG="${pkgcfg}"
-SPL_VERSION=\$(dkms status -m spl | awk -F', ' '{print \$2; exit 0}' | sed 's/: added\$//')
-ZFS_VERSION=\$(dkms status -m zfs | awk -F', ' '{print \$2; exit 0}' | sed 's/: added\$//')
-PRE_BUILD="configure
- --prefix=/usr
- --with-linux=\${kernel_source_dir}
- --with-linux-obj=\${kernel_source_dir}
- --with-spl=\${source_tree}/spl-\${SPL_VERSION}
- --with-spl-obj=\${dkms_tree}/spl/\${SPL_VERSION}/\${kernelver}/\${arch}
- --with-zfs=\${source_tree}/zfs-\${ZFS_VERSION}
- --with-zfs-obj=\${dkms_tree}/zfs/\${ZFS_VERSION}/\${kernelver}/\${arch}
- --without-ldiskfs
- --without-lustre-iokit
- --disable-snmp
- --disable-doc
- --disable-utils
- --disable-tests
- --disable-maintainer-mode
- \$(
- [[ -r \${PACKAGE_CONFIG} ]] \\
- && source \${PACKAGE_CONFIG} \\
- && shopt -q -s extglob \\
- && \\
- {
- if [[ \${LUSTRE_DKMS_DISABLE_CDEBUG,,} == @(y|yes) ]]
- then
- echo --disable-libcfs-cdebug
- fi
- if [[ \${LUSTRE_DKMS_DISABLE_TRACE,,} == @(y|yes) ]]
- then
- echo --disable-libcfs-trace
- fi
- if [[ \${LUSTRE_DKMS_DISABLE_ASSERT,,} == @(y|yes) ]]
- then
- echo --disable-libcfs-assert
- fi
- }
- )
-"
-BUILD_DEPENDS[0]="zfs"
-AUTOINSTALL="yes"
-REMAKE_INITRD="no"
-MAKE[0]="make"
-# just have to set STRIP[0], it will become the new default.
-STRIP[0]="\$(
- [[ -r \${PACKAGE_CONFIG} ]] \\
- && source \${PACKAGE_CONFIG} \\
- && shopt -q -s extglob \\
- && [[ \${LUSTRE_DKMS_DISABLE_STRIP,,} == @(y|yes) ]] \\
- && echo -n no
-)"
-BUILT_MODULE_NAME[0]="lnet_selftest"
-BUILT_MODULE_LOCATION[0]="lnet/selftest/"
-DEST_MODULE_LOCATION[0]="/extra/lnet/"
-BUILT_MODULE_NAME[1]="lnet"
-BUILT_MODULE_LOCATION[1]="lnet/lnet/"
-DEST_MODULE_LOCATION[1]="/extra/lnet/"
-BUILT_MODULE_NAME[2]="ksocklnd"
-BUILT_MODULE_LOCATION[2]="lnet/klnds/socklnd/"
-DEST_MODULE_LOCATION[2]="/extra/lnet/"
-BUILT_MODULE_NAME[3]="ko2iblnd"
-BUILT_MODULE_LOCATION[3]="lnet/klnds/o2iblnd/"
-DEST_MODULE_LOCATION[3]="/extra/lnet/"
-BUILT_MODULE_NAME[4]="libcfs"
-BUILT_MODULE_LOCATION[4]="libcfs/libcfs/"
-DEST_MODULE_LOCATION[4]="/extra/lustre/"
-BUILT_MODULE_NAME[5]="ptlrpc"
-BUILT_MODULE_LOCATION[5]="lustre/ptlrpc/"
-DEST_MODULE_LOCATION[5]="/extra/lustre/"
-BUILT_MODULE_NAME[6]="lov"
-BUILT_MODULE_LOCATION[6]="lustre/lov/"
-DEST_MODULE_LOCATION[6]="/extra/lustre/"
-BUILT_MODULE_NAME[7]="osd_zfs"
-BUILT_MODULE_LOCATION[7]="lustre/osd-zfs/"
-DEST_MODULE_LOCATION[7]="/extra/lustre/"
-BUILT_MODULE_NAME[8]="fld"
-BUILT_MODULE_LOCATION[8]="lustre/fld/"
-DEST_MODULE_LOCATION[8]="/extra/lustre/"
-BUILT_MODULE_NAME[9]="obdecho"
-BUILT_MODULE_LOCATION[9]="lustre/obdecho/"
-DEST_MODULE_LOCATION[9]="/extra/lustre/"
-BUILT_MODULE_NAME[10]="mgs"
-BUILT_MODULE_LOCATION[10]="lustre/mgs/"
-DEST_MODULE_LOCATION[10]="/extra/lustre/"
-BUILT_MODULE_NAME[11]="osc"
-BUILT_MODULE_LOCATION[11]="lustre/osc/"
-DEST_MODULE_LOCATION[11]="/extra/lustre/"
-BUILT_MODULE_NAME[12]="lquota"
-BUILT_MODULE_LOCATION[12]="lustre/quota/"
-DEST_MODULE_LOCATION[12]="/extra/lustre/"
-BUILT_MODULE_NAME[13]="mgc"
-BUILT_MODULE_LOCATION[13]="lustre/mgc/"
-DEST_MODULE_LOCATION[13]="/extra/lustre/"
-BUILT_MODULE_NAME[14]="mdt"
-BUILT_MODULE_LOCATION[14]="lustre/mdt/"
-DEST_MODULE_LOCATION[14]="/extra/lustre/"
-BUILT_MODULE_NAME[15]="osp"
-BUILT_MODULE_LOCATION[15]="lustre/osp/"
-DEST_MODULE_LOCATION[15]="/extra/lustre/"
-BUILT_MODULE_NAME[16]="mdd"
-BUILT_MODULE_LOCATION[16]="lustre/mdd/"
-DEST_MODULE_LOCATION[16]="/extra/lustre/"
-BUILT_MODULE_NAME[17]="lustre"
-BUILT_MODULE_LOCATION[17]="lustre/llite/"
-DEST_MODULE_LOCATION[17]="/extra/lustre/"
-BUILT_MODULE_NAME[18]="llite_lloop"
-BUILT_MODULE_LOCATION[18]="lustre/llite/"
-DEST_MODULE_LOCATION[18]="/extra/lustre/"
-BUILT_MODULE_NAME[19]="fid"
-BUILT_MODULE_LOCATION[19]="lustre/fid/"
-DEST_MODULE_LOCATION[19]="/extra/lustre/"
-BUILT_MODULE_NAME[20]="mdc"
-BUILT_MODULE_LOCATION[20]="lustre/mdc/"
-DEST_MODULE_LOCATION[20]="/extra/lustre/"
-BUILT_MODULE_NAME[21]="obdclass"
-BUILT_MODULE_LOCATION[21]="lustre/obdclass/"
-DEST_MODULE_LOCATION[21]="/extra/lustre/"
-BUILT_MODULE_NAME[22]="llog_test"
-BUILT_MODULE_LOCATION[22]="lustre/obdclass/"
-DEST_MODULE_LOCATION[22]="/extra/lustre/"
-BUILT_MODULE_NAME[23]="lod"
-BUILT_MODULE_LOCATION[23]="lustre/lod/"
-DEST_MODULE_LOCATION[23]="/extra/lustre/"
-BUILT_MODULE_NAME[24]="lmv"
-BUILT_MODULE_LOCATION[24]="lustre/lmv/"
-DEST_MODULE_LOCATION[24]="/extra/lustre/"
-BUILT_MODULE_NAME[25]="ofd"
-BUILT_MODULE_LOCATION[25]="lustre/ofd/"
-DEST_MODULE_LOCATION[25]="/extra/lustre/"
-BUILT_MODULE_NAME[26]="ost"
-BUILT_MODULE_LOCATION[26]="lustre/ost/"
-DEST_MODULE_LOCATION[26]="/extra/lustre/"
-BUILT_MODULE_NAME[27]="lfsck"
-BUILT_MODULE_LOCATION[27]="lustre/lfsck/"
-DEST_MODULE_LOCATION[27]="/extra/lustre/"
-EOF
--- /dev/null
+#!/bin/sh
+
+PROG=$0
+
+pkgcfg=/etc/sysconfig/lustre
+
+while getopts "n:v:c:f:" opt; do
+ case $opt in
+ n) pkgname=$OPTARG ;;
+ v) pkgver=$OPTARG ;;
+ c) pkgcfg=$OPTARG ;;
+ f) filename=$OPTARG ;;
+ esac
+done
+
+if [ -z "${pkgname}" -o -z "${pkgver}" -o -z "${filename}" ]; then
+ echo "Usage: $PROG -n <pkgname> -v <pkgver> -c <pkgcfg> -f <filename>"
+ exit 1
+fi
+
+rpm -qa | grep krb5-devel >/dev/null
+if [ $? == 0 ] ; then
+ GSS="--enable-gss"
+else
+ GSS="--disable-gss"
+fi
+
+cat >${filename} <<EOF
+PACKAGE_NAME="${pkgname}"
+PACKAGE_VERSION="${pkgver}"
+PACKAGE_CONFIG="${pkgcfg}"
+EOF
+if [ $pkgname = "lustre" ] ; then
+ cat >>${filename} <<EOF
+SPL_VERSION=\$(dkms status -m spl -k \${kernelver}/\${arch} | awk -F', ' '{print \$2; exit 0}' | sed 's/: added\$//')
+ZFS_VERSION=\$(dkms status -m zfs -k \${kernelver}/\${arch} | awk -F', ' '{print \$2; exit 0}' | sed 's/: added\$//')
+EOF
+fi
+cat >>${filename} <<EOF
+# allow to re-evaluate krb5-devel presence during dkms re-adds and to re-create dkms.conf
+# accordingly!
+POST_ADD="lustre-dkms_post-add.sh \$module \$module_version \$kernelver \$kernel_source_dir \
+ \$arch \$source_tree \$dkms_tree"
+PRE_BUILD="configure
+ --prefix=/usr
+ --with-linux=\${kernel_source_dir}
+ --with-linux-obj=\${kernel_source_dir}
+ --enable-modules
+EOF
+if [ $pkgname = "lustre-client" ] ; then
+ cat >>${filename} <<EOF
+ --disable-server
+EOF
+else
+ cat >>${filename} <<EOF
+ --enable-server
+ --with-spl=\${source_tree}/spl-\${SPL_VERSION}
+ --with-spl-obj=\${dkms_tree}/spl/\${SPL_VERSION}/\${kernelver}/\${arch}
+ --with-zfs=\${source_tree}/zfs-\${ZFS_VERSION}
+ --with-zfs-obj=\${dkms_tree}/zfs/\${ZFS_VERSION}/\${kernelver}/\${arch}
+ --disable-ldiskfs
+EOF
+fi
+cat >>${filename} <<EOF
+ --disable-iokit
+ --disable-snmp
+ --disable-doc
+ --disable-utils
+ $GSS
+ --disable-tests
+ --disable-maintainer-mode
+ --disable-manpages
+ --disable-dlc
+ \$(
+ [[ -r \${PACKAGE_CONFIG} ]] \\
+ && source \${PACKAGE_CONFIG} \\
+ && shopt -q -s extglob \\
+ && \\
+ {
+ if [[ \${LUSTRE_DKMS_DISABLE_CDEBUG,,} == @(y|yes) ]]
+ then
+ echo --disable-libcfs-cdebug
+ fi
+ if [[ \${LUSTRE_DKMS_DISABLE_TRACE,,} == @(y|yes) ]]
+ then
+ echo --disable-libcfs-trace
+ fi
+ if [[ \${LUSTRE_DKMS_DISABLE_ASSERT,,} == @(y|yes) ]]
+ then
+ echo --disable-libcfs-assert
+ fi
+ }
+ )
+"
+EOF
+if [ $pkgname = "lustre" ] ; then
+ cat >>${filename} <<EOF
+BUILD_DEPENDS[0]="zfs"
+EOF
+fi
+cat >>${filename} <<EOF
+AUTOINSTALL="yes"
+REMAKE_INITRD="no"
+MAKE[0]="make"
+# just have to set STRIP[0], it will become the new default.
+STRIP[0]="\$(
+ [[ -r \${PACKAGE_CONFIG} ]] \\
+ && source \${PACKAGE_CONFIG} \\
+ && shopt -q -s extglob \\
+ && [[ \${LUSTRE_DKMS_DISABLE_STRIP,,} == @(y|yes) ]] \\
+ && echo -n no
+)"
+
+# Common modules for both Client & Server
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="lnet_selftest"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lnet/selftest/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lnet/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="lnet"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lnet/lnet/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lnet/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="ksocklnd"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lnet/klnds/socklnd/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lnet/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="ko2iblnd"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lnet/klnds/o2iblnd/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lnet/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="libcfs"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="libcfs/libcfs/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="ptlrpc"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/ptlrpc/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="lov"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/lov/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="fld"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/fld/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="obdecho"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/obdecho/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="osc"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/osc/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="mgc"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/mgc/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="llite_lloop"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/llite/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="fid"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/fid/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="mdc"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/mdc/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="obdclass"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/obdclass/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="lmv"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/lmv/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="lustre"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/llite/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
+EOF
+if [ $GSS = "--enable-gss" ] ; then
+ cat >>${filename} <<EOF
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="ptlrpc_gss"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/ptlrpc/gss/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
+EOF
+fi
+if [ $pkgname = "lustre" ] ; then
+ cat >>${filename} <<EOF
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="ofd"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/ofd/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="ost"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/ost/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="lfsck"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/lfsck/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="osd_zfs"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/osd-zfs/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="mgs"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/mgs/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="lquota"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/quota/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="mdt"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/mdt/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="osp"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/osp/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="mdd"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/mdd/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="llog_test"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/obdclass/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="lod"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/lod/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/@KMP_MODDIR@/lustre/"
+EOF
+fi
# Administration utilities Makefile
-if GSS
-SUBDIRS = gss
-endif
-
AM_CFLAGS := -fPIC -D_GNU_SOURCE \
-D_LARGEFILE64_SOURCE=1 -D_FILE_OFFSET_BITS=64 -DLUSTRE_UTILS=1
AM_LDFLAGS := -L$(top_builddir)/lnet/utils
endif
if UTILS
+
+if GSS
+SUBDIRS = gss
+endif
+
# mount only finds helpers in /sbin
rootsbin_PROGRAMS = mount.lustre
bin_SCRIPTS = llstat llobdstat plot-llstat