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