diff --git a/META b/META index 2b06b650cd..90ea64efa1 100644 --- a/META +++ b/META @@ -4,3 +4,5 @@ Branch: 1.0 Version: 0.4.7 Release: 1 Release-Tags: relext +License: CDDL +Author: Sun Microsystems/Oracle, Lawrence Livermore National Laboratory diff --git a/config/kernel.m4 b/config/kernel.m4 index ae1b5e5321..9f5dd6894a 100644 --- a/config/kernel.m4 +++ b/config/kernel.m4 @@ -4,6 +4,7 @@ dnl # AC_DEFUN([ZFS_AC_CONFIG_KERNEL], [ ZFS_AC_KERNEL ZFS_AC_SPL + ZFS_AC_KERNEL_CONFIG ZFS_AC_KERNEL_BDEV_BLOCK_DEVICE_OPERATIONS ZFS_AC_KERNEL_TYPE_FMODE_T ZFS_AC_KERNEL_OPEN_BDEV_EXCLUSIVE @@ -238,6 +239,30 @@ AC_DEFUN([ZFS_AC_SPL], [ ZFS_AC_SPL_MODULE_SYMVERS ]) +dnl # +dnl # There are certain kernel build options which when enabled are +dnl # completely incompatible with non GPL kernel modules. It is best +dnl # to detect these at configure time and fail with a clear error +dnl # rather than build everything and fail during linking. +dnl # +dnl # CONFIG_DEBUG_LOCK_ALLOC - Maps mutex_lock() to mutex_lock_nested() +dnl # +AC_DEFUN([ZFS_AC_KERNEL_CONFIG], [ + + if test "$ZFS_META_LICENSE" = CDDL; then + ZFS_LINUX_CONFIG([DEBUG_LOCK_ALLOC], + AC_MSG_ERROR([ + *** Kernel built with CONFIG_DEBUG_LOCK_ALLOC which is + *** incompatible with the CDDL license. You must rebuild + *** your kernel without this option.]), []) + fi + + if test "$ZFS_META_LICENSE" = GPL; then + AC_DEFINE([HAVE_GPL_ONLY_SYMBOLS], [1], + [Define to 1 if licensed under the GPL]) + fi +]) + dnl # dnl # ZFS_LINUX_CONFTEST dnl # diff --git a/config/zfs-build.m4 b/config/zfs-build.m4 index d2ba2977fa..a10fd2e1ef 100644 --- a/config/zfs-build.m4 +++ b/config/zfs-build.m4 @@ -1,13 +1,9 @@ AC_DEFUN([ZFS_AC_LICENSE], [ - AC_MSG_CHECKING([zfs license]) - LICENSE=`grep MODULE_LICENSE module/zfs/zfs_ioctl.c | cut -f2 -d'"'` - AC_MSG_RESULT([$LICENSE]) - if test "$LICENSE" = GPL; then - AC_DEFINE([HAVE_GPL_ONLY_SYMBOLS], [1], - [Define to 1 if module is licensed under the GPL]) - fi + AC_MSG_CHECKING([zfs author]) + AC_MSG_RESULT([$ZFS_META_AUTHOR]) - AC_SUBST(LICENSE) + AC_MSG_CHECKING([zfs license]) + AC_MSG_RESULT([$ZFS_META_LICENSE]) ]) AC_DEFUN([ZFS_AC_DEBUG], [ diff --git a/config/zfs-meta.m4 b/config/zfs-meta.m4 index 393ced0dbe..8b3689af71 100644 --- a/config/zfs-meta.m4 +++ b/config/zfs-meta.m4 @@ -48,6 +48,14 @@ AC_DEFUN([ZFS_AC_META], [ AC_SUBST([ZFS_META_RELEASE]) fi + ZFS_META_LICENSE=_ZFS_AC_META_GETVAL([LICENSE]); + if test -n "$ZFS_META_LICENSE"; then + AC_DEFINE_UNQUOTED([ZFS_META_LICENSE], ["$ZFS_META_LICENSE"], + [Define the project license.] + ) + AC_SUBST([ZFS_META_LICENSE]) + fi + if test -n "$ZFS_META_NAME" -a -n "$ZFS_META_VERSION"; then ZFS_META_ALIAS="$ZFS_META_NAME-$ZFS_META_VERSION" test -n "$ZFS_META_RELEASE" &&