Yoann Vandoorselaere wrote:
> > Yes, I agree. Do you have time to add such a test to gnulib-tool's
> > func_create_testdir?
>
> Patch attached (note: I'm not very good at shell programming).
Thanks, I fixed the obvious mistake in it (it overwrote the $modules
variable), turned the fatal error into a warning, and added comments:
2006-11-15 Yoann Vandoorselaere <[EMAIL PROTECTED]>
Bruno Haible <[EMAIL PROTECTED]>
* gnulib-tool (func_create_testdir): Add license consistency check.
*** gnulib-tool 14 Nov 2006 09:37:20 -0000 1.196
--- gnulib-tool 15 Nov 2006 20:08:38 -0000
***************
*** 2247,2252 ****
--- 2247,2276 ----
fi
modules=`for m in $modules; do echo $m; done | LC_ALL=C sort -u`
+ # Check that the license of every module is consistent with the license of
+ # its dependencies.
+ saved_modules="$modules"
+ for requested_module in $saved_modules; do
+ requested_license=`func_get_license "$requested_module"`
+ if test "$requested_license" != GPL; then
+ # Here we use func_modules_transitive_closure, not just
+ # func_get_dependencies, so that we also detect weird situations like
+ # an LGPL module which depends on a GPLed build tool module which
depends
+ # on a GPL module.
+ modules="$requested_module"
+ func_modules_transitive_closure
+ for module in $modules; do
+ license=`func_get_license "$module"`
+ case $license in
+ LGPL | 'GPLed build tool') ;;
+ 'public domain' | 'unlimited' | 'unmodifiable license text') ;;
+ *) echo "warning: module $requested_module depends on a module with
an incompatible license: $module" 1>&2 ;;
+ esac
+ done
+ fi
+ done
+ modules="$saved_modules"
+
# Subdirectory names.
sourcebase=gllib
m4base=glm4