Whamcloud - gitweb
LU-1032 build: DKMS RPM for Lustre Client modules 47/12347/22
authorBruno Faccini <bruno.faccini@intel.com>
Mon, 20 Oct 2014 14:00:01 +0000 (16:00 +0200)
committerOleg Drokin <oleg.drokin@intel.com>
Thu, 29 Oct 2015 05:52:33 +0000 (05:52 +0000)
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>
autoMakefile.am
config/lustre-build.m4
contrib/lbuild/lbuild
lustre-dkms.spec.in
lustre/scripts/dkms.mkconf [deleted file]
lustre/scripts/dkms.mkconf.in [new file with mode: 0644]
lustre/utils/Makefile.am

index 689bee7..effac1e 100644 (file)
@@ -119,6 +119,39 @@ rpm-local:
        $(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) \
index 4957050..11ca27a 100644 (file)
@@ -449,6 +449,7 @@ AC_DEFUN([LB_CONFIG_FILES], [
                [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
@@ -460,7 +461,8 @@ AC_DEFUN([LB_CONFIG_FILES], [
                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]
        )
 ])
 
index 07494c5..09a634c 100755 (executable)
@@ -1020,13 +1020,20 @@ build_lustre() {
 
 }
 
+# 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
 }
 
index 1197438..788b74a 100644 (file)
@@ -1,6 +1,13 @@
-%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
 
@@ -11,7 +18,7 @@ Summary:        Kernel module(s) (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
 
@@ -19,27 +26,84 @@ 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
@@ -49,7 +113,11 @@ if [ "$RPM_BUILD_ROOT" != "/" ]; then
     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
@@ -79,5 +147,8 @@ dkms remove -m %{module} -v %{version} --all --rpm_safe_upgrade
 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.
diff --git a/lustre/scripts/dkms.mkconf b/lustre/scripts/dkms.mkconf
deleted file mode 100755 (executable)
index 8b3e2a4..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-#!/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
diff --git a/lustre/scripts/dkms.mkconf.in b/lustre/scripts/dkms.mkconf.in
new file mode 100644 (file)
index 0000000..c0de823
--- /dev/null
@@ -0,0 +1,210 @@
+#!/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
index 82ffcab..b8afa14 100644 (file)
@@ -1,9 +1,5 @@
 # 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
@@ -20,6 +16,11 @@ EXTRA_PROGRAMS = wirecheck
 endif
 
 if UTILS
+
+if GSS
+SUBDIRS = gss
+endif
+
 # mount only finds helpers in /sbin
 rootsbin_PROGRAMS = mount.lustre
 bin_SCRIPTS   = llstat llobdstat plot-llstat