Whamcloud - gitweb
LU-12526 pcc: Auto attach for PCC during IO
[fs/lustre-release.git] / lustre / scripts / dkms.mkconf
index 6b419a1..2cd7cb5 100755 (executable)
@@ -2,68 +2,44 @@
 
 PROG=$0
 
-pkgcfg=/etc/sysconfig/lustre
+kmoddir=extra
 
-while getopts "n:v:c:f:" opt; do
+while getopts "n:v:f:k:" opt; do
        case $opt in
                n) pkgname=$OPTARG ;;
                v) pkgver=$OPTARG  ;;
-               c) pkgcfg=$OPTARG ;;
                f) filename=$OPTARG ;;
+               k) kmoddir=$OPTARG ;;
        esac
 done
 
 if [ -z "${pkgname}" -o -z "${pkgver}" -o -z "${filename}" ]; then
-       echo "Usage: $PROG -n <pkgname> -v <pkgver> -c <pkgcfg> -f <filename>"
+       echo "Usage: $PROG -n <pkgname> -v <pkgver> [-k <kmoddir> ] -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}')
-ZFS_VERSION=\$(dkms status -m zfs | awk -F', ' '{print \$2; exit 0}')
-PRE_BUILD="configure
-  --prefix=/usr
-  --with-linux=\${kernel_source_dir}
-  --with-linux-obj=\${kernel_source_dir}
-  --with-spl=\${dkms_tree}/spl/\${SPL_VERSION}/build
-  --with-spl-obj=\${dkms_tree}/spl/\${SPL_VERSION}/\${kernelver}/\${arch}
-  --with-zfs=\${dkms_tree}/zfs/\${ZFS_VERSION}/build
-  --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
-    }
-  )
-"
+PACKAGE_CONFIG="/etc/sysconfig/lustre"
+# re-evaluate/create dkms.conf on-target based on local build-time products/dependencies
+# (like krb5-devel presence) and also upon configure results/errors before dkms builds
+PRE_BUILD="lustre-dkms_pre-build.sh \$module \$module_version \$kernelver \$kernel_source_dir \
+        \$arch \$source_tree \$dkms_tree"
+# to ensure all just built Lustre kernel modules will be saved for further install
+POST_BUILD="lustre-dkms_post-build.sh \$module \$module_version \$kernelver \$kernel_source_dir \
+        \$arch \$source_tree \$dkms_tree"
+EOF
+if [ $pkgname = "lustre-zfs" -o $pkgname = "lustre-all" ] ; 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} \\
@@ -71,119 +47,114 @@ STRIP[0]="\$(
   && [[ \${LUSTRE_DKMS_DISABLE_STRIP,,} == @(y|yes) ]] \\
   && echo -n no
 )"
-STRIP[1]="\${STRIP[0]}"
-STRIP[2]="\${STRIP[0]}"
-STRIP[3]="\${STRIP[0]}"
-STRIP[4]="\${STRIP[0]}"
-STRIP[5]="\${STRIP[0]}"
-STRIP[6]="\${STRIP[0]}"
-STRIP[7]="\${STRIP[0]}"
-STRIP[8]="\${STRIP[0]}"
-STRIP[9]="\${STRIP[0]}"
-STRIP[10]="\${STRIP[0]}"
-STRIP[11]="\${STRIP[0]}"
-STRIP[12]="\${STRIP[0]}"
-STRIP[13]="\${STRIP[0]}"
-STRIP[14]="\${STRIP[0]}"
-STRIP[15]="\${STRIP[0]}"
-STRIP[16]="\${STRIP[0]}"
-STRIP[17]="\${STRIP[0]}"
-STRIP[18]="\${STRIP[0]}"
-STRIP[19]="\${STRIP[0]}"
-STRIP[20]="\${STRIP[0]}"
-STRIP[21]="\${STRIP[0]}"
-STRIP[22]="\${STRIP[0]}"
-STRIP[23]="\${STRIP[0]}"
-STRIP[24]="\${STRIP[0]}"
-STRIP[25]="\${STRIP[0]}"
-STRIP[26]="\${STRIP[0]}"
-STRIP[27]="\${STRIP[0]}"
-STRIP[28]="\${STRIP[0]}"
-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]="nodemap"
-BUILT_MODULE_LOCATION[6]="lustre/nodemap/"
-DEST_MODULE_LOCATION[6]="/extra/lustre/"
-BUILT_MODULE_NAME[7]="lov"
-BUILT_MODULE_LOCATION[7]="lustre/lov/"
-DEST_MODULE_LOCATION[7]="/extra/lustre/"
-BUILT_MODULE_NAME[8]="osd_zfs"
-BUILT_MODULE_LOCATION[8]="lustre/osd-zfs/"
-DEST_MODULE_LOCATION[8]="/extra/lustre/"
-BUILT_MODULE_NAME[9]="fld"
-BUILT_MODULE_LOCATION[9]="lustre/fld/"
-DEST_MODULE_LOCATION[9]="/extra/lustre/"
-BUILT_MODULE_NAME[10]="obdecho"
-BUILT_MODULE_LOCATION[10]="lustre/obdecho/"
-DEST_MODULE_LOCATION[10]="/extra/lustre/"
-BUILT_MODULE_NAME[11]="mgs"
-BUILT_MODULE_LOCATION[11]="lustre/mgs/"
-DEST_MODULE_LOCATION[11]="/extra/lustre/"
-BUILT_MODULE_NAME[12]="osc"
-BUILT_MODULE_LOCATION[12]="lustre/osc/"
-DEST_MODULE_LOCATION[12]="/extra/lustre/"
-BUILT_MODULE_NAME[13]="lquota"
-BUILT_MODULE_LOCATION[13]="lustre/quota/"
-DEST_MODULE_LOCATION[13]="/extra/lustre/"
-BUILT_MODULE_NAME[14]="mgc"
-BUILT_MODULE_LOCATION[14]="lustre/mgc/"
-DEST_MODULE_LOCATION[14]="/extra/lustre/"
-BUILT_MODULE_NAME[15]="mdt"
-BUILT_MODULE_LOCATION[15]="lustre/mdt/"
-DEST_MODULE_LOCATION[15]="/extra/lustre/"
-BUILT_MODULE_NAME[16]="osp"
-BUILT_MODULE_LOCATION[16]="lustre/osp/"
-DEST_MODULE_LOCATION[16]="/extra/lustre/"
-BUILT_MODULE_NAME[17]="mdd"
-BUILT_MODULE_LOCATION[17]="lustre/mdd/"
-DEST_MODULE_LOCATION[17]="/extra/lustre/"
-BUILT_MODULE_NAME[18]="lustre"
-BUILT_MODULE_LOCATION[18]="lustre/llite/"
-DEST_MODULE_LOCATION[18]="/extra/lustre/"
-BUILT_MODULE_NAME[19]="llite_lloop"
-BUILT_MODULE_LOCATION[19]="lustre/llite/"
-DEST_MODULE_LOCATION[19]="/extra/lustre/"
-BUILT_MODULE_NAME[20]="fid"
-BUILT_MODULE_LOCATION[20]="lustre/fid/"
-DEST_MODULE_LOCATION[20]="/extra/lustre/"
-BUILT_MODULE_NAME[21]="mdc"
-BUILT_MODULE_LOCATION[21]="lustre/mdc/"
-DEST_MODULE_LOCATION[21]="/extra/lustre/"
-BUILT_MODULE_NAME[22]="obdclass"
-BUILT_MODULE_LOCATION[22]="lustre/obdclass/"
-DEST_MODULE_LOCATION[22]="/extra/lustre/"
-BUILT_MODULE_NAME[23]="llog_test"
-BUILT_MODULE_LOCATION[23]="lustre/obdclass/"
-DEST_MODULE_LOCATION[23]="/extra/lustre/"
-BUILT_MODULE_NAME[24]="lod"
-BUILT_MODULE_LOCATION[24]="lustre/lod/"
-DEST_MODULE_LOCATION[24]="/extra/lustre/"
-BUILT_MODULE_NAME[25]="lmv"
-BUILT_MODULE_LOCATION[25]="lustre/lmv/"
-DEST_MODULE_LOCATION[25]="/extra/lustre/"
-BUILT_MODULE_NAME[26]="ofd"
-BUILT_MODULE_LOCATION[26]="lustre/ofd/"
-DEST_MODULE_LOCATION[26]="/extra/lustre/"
-BUILT_MODULE_NAME[27]="ost"
-BUILT_MODULE_LOCATION[27]="lustre/ost/"
-DEST_MODULE_LOCATION[27]="/extra/lustre/"
-BUILT_MODULE_NAME[28]="lfsck"
-BUILT_MODULE_LOCATION[28]="lustre/lfsck/"
-DEST_MODULE_LOCATION[28]="/extra/lustre/"
+
+# 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[@]}]="/${kmoddir}/lnet/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="lnet"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lnet/lnet/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lnet/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="ksocklnd"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lnet/klnds/socklnd/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lnet/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="ko2iblnd"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lnet/klnds/o2iblnd/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lnet/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="libcfs"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="libcfs/libcfs/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="ptlrpc"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/ptlrpc/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="lov"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/lov/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="fld"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/fld/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="obdecho"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/obdecho/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="osc"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/osc/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="mgc"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/mgc/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="fid"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/fid/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="mdc"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/mdc/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="obdclass"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/obdclass/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="lmv"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/lmv/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="lustre"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/llite/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lustre/"
+if \$( rpm -qa | grep -q krb5-devel ) ; then
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="ptlrpc_gss"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/ptlrpc/gss/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lustre/"
+fi
+EOF
+if [ $pkgname != "lustre-client" ] ; then
+       cat >>${filename} <<EOF
+# Server Modules
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="ofd"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/ofd/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="ost"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/ost/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="lfsck"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/lfsck/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="mgs"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/mgs/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="lquota"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/quota/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="mdt"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/mdt/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="osp"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/osp/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="mdd"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/mdd/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="llog_test"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/obdclass/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lustre/"
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="lod"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/lod/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lustre/"
 EOF
+fi
+if [ $pkgname = "lustre-zfs" -o $pkgname = "lustre-all" ] ; then
+       cat >>${filename} <<EOF
+# Module for ZFS backing
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="osd_zfs"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/osd-zfs/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lustre/"
+EOF
+fi
+if [ $pkgname = "lustre-ldiskfs" -o $pkgname = "lustre-all" ] ; then
+       cat >>${filename} <<EOF
+# Module for ldiskfs backing
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="osd_ldiskfs"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lustre/osd-ldiskfs/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lustre/"
+# ldiskfs module
+BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="ldiskfs"
+BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="ldiskfs/"
+DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lustre/"
+EOF
+fi