From 62032954383dc6d1200890f07f56bb0ad85451be Mon Sep 17 00:00:00 2001 From: Brian Behlendorf Date: Mon, 29 Sep 2014 16:01:22 -0400 Subject: [PATCH] Make license compatibility checks consistent Apply the license specified in the META file to ensure the compatibility checks are all performed consistently. Signed-off-by: Brian Behlendorf --- META | 2 ++ config/spl-build.m4 | 23 ++++++++++++++++++----- config/spl-meta.m4 | 8 ++++++++ include/sys/mutex.h | 19 ------------------- module/spl/spl-generic.c | 4 ++-- module/splat/splat-ctl.c | 4 ++-- 6 files changed, 32 insertions(+), 28 deletions(-) diff --git a/META b/META index 117c3e3..13d0d02 100644 --- a/META +++ b/META @@ -4,3 +4,5 @@ Branch: 1.0 Version: 0.6.3 Release: 1 Release-Tags: relext +License: GPL +Author: OpenZFS on Linux diff --git a/config/spl-build.m4 b/config/spl-build.m4 index 4b821e9..f9287e2 100644 --- a/config/spl-build.m4 +++ b/config/spl-build.m4 @@ -426,11 +426,11 @@ AC_DEFUN([SPL_AC_PACKAGE], [ ]) AC_DEFUN([SPL_AC_LICENSE], [ + AC_MSG_CHECKING([spl author]) + AC_MSG_RESULT([$SPL_META_AUTHOR]) + AC_MSG_CHECKING([spl license]) - LICENSE=GPL - AC_MSG_RESULT([$LICENSE]) - KERNELCPPFLAGS="${KERNELCPPFLAGS} -DHAVE_GPL_ONLY_SYMBOLS" - AC_SUBST(LICENSE) + AC_MSG_RESULT([$SPL_META_LICENSE]) ]) AC_DEFUN([SPL_AC_CONFIG], [ @@ -737,7 +737,8 @@ AC_DEFUN([SPL_CHECK_HEADER], ]) dnl # -dnl # Basic toolchain sanity check. +dnl # Basic toolchain sanity check. Verify that kernel modules can +dnl # be built and which symbols can be used. dnl # AC_DEFUN([SPL_AC_TEST_MODULE], [AC_MSG_CHECKING([whether modules can be built]) @@ -753,6 +754,18 @@ AC_DEFUN([SPL_AC_TEST_MODULE], *** Please run 'make scripts' inside the kernel source tree.]) fi ]) + + AC_RUN_IFELSE([ + AC_LANG_PROGRAM([ + #include "$LINUX/include/linux/license.h" + ], [ + return !license_is_gpl_compatible("$SPL_META_LICENSE"); + ]) + ], [ + AC_DEFINE([SPL_IS_GPL_COMPATIBLE], [1], + [Define to 1 if GPL-only symbols can be used]) + ], [ + ]) ]) dnl # diff --git a/config/spl-meta.m4 b/config/spl-meta.m4 index e98cc2e..0561fbb 100644 --- a/config/spl-meta.m4 +++ b/config/spl-meta.m4 @@ -76,6 +76,14 @@ AC_DEFUN([SPL_AC_META], [ AC_SUBST([RELEASE]) fi + SPL_META_LICENSE=_SPL_AC_META_GETVAL([License]); + if test -n "$SPL_META_LICENSE"; then + AC_DEFINE_UNQUOTED([SPL_META_LICENSE], ["$SPL_META_LICENSE"], + [Define the project license.] + ) + AC_SUBST([SPL_META_LICENSE]) + fi + if test -n "$SPL_META_NAME" -a -n "$SPL_META_VERSION"; then SPL_META_ALIAS="$SPL_META_NAME-$SPL_META_VERSION" test -n "$SPL_META_RELEASE" && diff --git a/include/sys/mutex.h b/include/sys/mutex.h index ec3cfd5..cc63a6b 100644 --- a/include/sys/mutex.h +++ b/include/sys/mutex.h @@ -85,12 +85,6 @@ mutex_owner(kmutex_t *mp) }) #define mutex_exit(mp) mutex_unlock(&(mp)->m) -#ifdef HAVE_GPL_ONLY_SYMBOLS -# define mutex_enter_nested(mp, sc) mutex_lock_nested(&(mp)->m, sc) -#else -# define mutex_enter_nested(mp, sc) mutex_enter(mp) -#endif /* HAVE_GPL_ONLY_SYMBOLS */ - #else /* HAVE_MUTEX_OWNER */ typedef struct { @@ -197,19 +191,6 @@ spl_mutex_clear_owner(kmutex_t *mp) mutex_unlock(MUTEX(mp)); \ }) -#ifdef HAVE_GPL_ONLY_SYMBOLS -# define mutex_enter_nested(mp, sc) \ -({ \ - mutex_lock_nested(MUTEX(mp), sc); \ - spl_mutex_set_owner(mp); \ -}) -#else -# define mutex_enter_nested(mp, sc) \ -({ \ - mutex_enter(mp); \ -}) -#endif - #endif /* HAVE_MUTEX_OWNER */ int spl_mutex_init(void); diff --git a/module/spl/spl-generic.c b/module/spl/spl-generic.c index 194cd7d..039ee73 100644 --- a/module/spl/spl-generic.c +++ b/module/spl/spl-generic.c @@ -740,7 +740,7 @@ EXPORT_SYMBOL(spl_cleanup); module_init(spl_init); module_exit(spl_fini); -MODULE_AUTHOR("Lawrence Livermore National Labs"); MODULE_DESCRIPTION("Solaris Porting Layer"); -MODULE_LICENSE("GPL"); +MODULE_AUTHOR(SPL_META_AUTHOR); +MODULE_LICENSE(SPL_META_LICENSE); MODULE_VERSION(SPL_META_VERSION "-" SPL_META_RELEASE); diff --git a/module/splat/splat-ctl.c b/module/splat/splat-ctl.c index 6bbe0ab..c4337a9 100644 --- a/module/splat/splat-ctl.c +++ b/module/splat/splat-ctl.c @@ -718,7 +718,7 @@ splat_fini(void) spl_module_init(splat_init); spl_module_exit(splat_fini); -MODULE_AUTHOR("Lawrence Livermore National Labs"); MODULE_DESCRIPTION("Solaris Porting LAyer Tests"); -MODULE_LICENSE("GPL"); +MODULE_AUTHOR(SPL_META_AUTHOR); +MODULE_LICENSE(SPL_META_LICENSE); MODULE_VERSION(SPL_META_VERSION "-" SPL_META_RELEASE); -- 2.39.2