Bjarni Ingi Gislason wrote: > Module License File License File name > ================= ============== ===================================== > LGPLv2+ GPL lib/alignalloc.h > LGPLv2+ GPL lib/alignalloc.c > GPL LGPLv2+ lib/glob.c > GPL LGPLv2+ lib/glob_internal.h > GPL LGPLv2+ lib/glob_pattern_p.c > GPL LGPLv2+ lib/globfree.c > LGPLv2+ LGPLv3+ or GPLv2+ lib/uniwidth/width0.h > LGPLv2+ LGPLv3+ or GPLv2+ lib/uniwidth/width2.h
Thanks for the report. For the 'glob' module, there is no contradiction: some files of this module come from glibc and therefore share the LGPLv2+ file license. And the module depends on 'fstatat', which is GPL, therefore 'glob' must be GPL as well. 2023-02-07 Bruno Haible <br...@clisp.org> check-copyright: Don't fail because of the 'glob' module. Reported by Bjarni Ingi Gislason <bjarn...@simnet.is> in <https://lists.gnu.org/archive/html/bug-gnulib/2023-02/msg00057.html>. * check-copyright: Filter out the files from the 'glob' module. diff --git a/check-copyright b/check-copyright index ee173c2595..bfd42fe1f2 100755 --- a/check-copyright +++ b/check-copyright @@ -170,12 +170,20 @@ for file in $candidates; do fi done if test "$file_license" != "$weakest_license"; then - if test $error = 0; then - echo "Module License File License File name" - echo "================= ================= =====================================" + # The 'glob' module is a special case. It contains LGPLv2+ code (shared with + # glibc) but at the same time also has a dependency to a module under GPL + # (namely, 'fstatat'). This is not a mistake. + if test "$weakest_license" = GPL \ + && case "$file" in lib/glob*) true ;; *) false ;; esac; then + : + else + if test $error = 0; then + echo "Module License File License File name" + echo "================= ================= =====================================" + fi + printf '%-17s %-17s %s\n' "$weakest_license" "$file_license" "$file" + error=1 fi - printf '%-17s %-17s %s\n' "$weakest_license" "$file_license" "$file" - error=1 fi done exit $error