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 <behlendorf1@llnl.gov>
This commit is contained in:
Brian Behlendorf 2014-09-29 16:01:22 -04:00
parent de2a22fcb3
commit 6203295438
6 changed files with 32 additions and 28 deletions

2
META
View File

@ -4,3 +4,5 @@ Branch: 1.0
Version: 0.6.3 Version: 0.6.3
Release: 1 Release: 1
Release-Tags: relext Release-Tags: relext
License: GPL
Author: OpenZFS on Linux

View File

@ -426,11 +426,11 @@ AC_DEFUN([SPL_AC_PACKAGE], [
]) ])
AC_DEFUN([SPL_AC_LICENSE], [ AC_DEFUN([SPL_AC_LICENSE], [
AC_MSG_CHECKING([spl author])
AC_MSG_RESULT([$SPL_META_AUTHOR])
AC_MSG_CHECKING([spl license]) AC_MSG_CHECKING([spl license])
LICENSE=GPL AC_MSG_RESULT([$SPL_META_LICENSE])
AC_MSG_RESULT([$LICENSE])
KERNELCPPFLAGS="${KERNELCPPFLAGS} -DHAVE_GPL_ONLY_SYMBOLS"
AC_SUBST(LICENSE)
]) ])
AC_DEFUN([SPL_AC_CONFIG], [ AC_DEFUN([SPL_AC_CONFIG], [
@ -737,7 +737,8 @@ AC_DEFUN([SPL_CHECK_HEADER],
]) ])
dnl # 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 # dnl #
AC_DEFUN([SPL_AC_TEST_MODULE], AC_DEFUN([SPL_AC_TEST_MODULE],
[AC_MSG_CHECKING([whether modules can be built]) [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.]) *** Please run 'make scripts' inside the kernel source tree.])
fi 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 # dnl #

View File

@ -76,6 +76,14 @@ AC_DEFUN([SPL_AC_META], [
AC_SUBST([RELEASE]) AC_SUBST([RELEASE])
fi 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 if test -n "$SPL_META_NAME" -a -n "$SPL_META_VERSION"; then
SPL_META_ALIAS="$SPL_META_NAME-$SPL_META_VERSION" SPL_META_ALIAS="$SPL_META_NAME-$SPL_META_VERSION"
test -n "$SPL_META_RELEASE" && test -n "$SPL_META_RELEASE" &&

View File

@ -85,12 +85,6 @@ mutex_owner(kmutex_t *mp)
}) })
#define mutex_exit(mp) mutex_unlock(&(mp)->m) #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 */ #else /* HAVE_MUTEX_OWNER */
typedef struct { typedef struct {
@ -197,19 +191,6 @@ spl_mutex_clear_owner(kmutex_t *mp)
mutex_unlock(MUTEX(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 */ #endif /* HAVE_MUTEX_OWNER */
int spl_mutex_init(void); int spl_mutex_init(void);

View File

@ -740,7 +740,7 @@ EXPORT_SYMBOL(spl_cleanup);
module_init(spl_init); module_init(spl_init);
module_exit(spl_fini); module_exit(spl_fini);
MODULE_AUTHOR("Lawrence Livermore National Labs");
MODULE_DESCRIPTION("Solaris Porting Layer"); 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); MODULE_VERSION(SPL_META_VERSION "-" SPL_META_RELEASE);

View File

@ -718,7 +718,7 @@ splat_fini(void)
spl_module_init(splat_init); spl_module_init(splat_init);
spl_module_exit(splat_fini); spl_module_exit(splat_fini);
MODULE_AUTHOR("Lawrence Livermore National Labs");
MODULE_DESCRIPTION("Solaris Porting LAyer Tests"); 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); MODULE_VERSION(SPL_META_VERSION "-" SPL_META_RELEASE);