Simon Josefsson wrote: > > The complexity of distributing a library under one license and the > > corresponding tools under another license is very manageable. I do this > > for libiconv and gettext. You distribute both COPYINGv2 and COPYINGv3, and > > add a statement to the README, saying that the library is under GPLv2 and > > the tools are under GPLv3. > > Ok. I think that would solve all of the problems. > ... > by using a COPYINGv2+COPYINGv3, I believe I don't need any > gnulib modules under GPLv2.
Good. So let's handle only --lgpl at this point. > > Yes, GPLv3 (at least until Brett and Paul have finished discussing the issue > > that Brett has with it). > > Is there any point in patching files to say GPLv3 consistency until the > discussion has finished? Doing one thing at a time is often simpler. I'm applying this: 2007-10-28 Bruno Haible <[EMAIL PROTECTED]> * gnulib-tool: Allow specifying the LGPL version number through --lgpl=2 or --lgpl=3. (func_usage): Document --lgpl with argument. Handle --lgpl=... arguments. (func_import): Recognize also gl_LGPL calls with an argument. When --lgpl=2 is used and the module's license is just LGPL, report an error. Set sed_transform_lib_file according to the lgpl variable. In the generated files, use --lgpl or gl_LGPL invocations with argument, if necessary. * doc/gnulib-intro.texi (Copyright): Explain how to get modules under an LGPv2+ license. * doc/gnulib-tool.texi (Modified imports): Update explanation of gl_LGPL macro. *** doc/gnulib-intro.texi.orig 2007-10-28 23:23:25.000000000 +0100 --- doc/gnulib-intro.texi 2007-10-28 23:17:59.000000000 +0100 *************** *** 262,268 **** If you want to use some Gnulib modules under LGPL, you can do so by passing the option @samp{--lgpl} to @code{gnulib-tool}. This will replace the GPL header with an LGPL header while copying the source ! files to your package. Keep in mind that when you submit patches to files in Gnulib, you should license them under a compatible license. This means that sometimes the --- 262,270 ---- If you want to use some Gnulib modules under LGPL, you can do so by passing the option @samp{--lgpl} to @code{gnulib-tool}. This will replace the GPL header with an LGPL header while copying the source ! files to your package. Similarly, if you want some Gnulib modules ! under LGPLv2+ (Lesser GPL version 2.1 or newer), you can do so by ! passing the option @samp{--lgpl=2} to @code{gnulib-tool}. Keep in mind that when you submit patches to files in Gnulib, you should license them under a compatible license. This means that sometimes the *** doc/gnulib-tool.texi.orig 2007-10-28 23:23:25.000000000 +0100 --- doc/gnulib-tool.texi 2007-10-28 23:20:14.000000000 +0100 *************** *** 310,317 **** @samp{--lib} command line argument. @item gl_LGPL ! The presence of this macro corresponds to the @samp{--lgpl} command line ! argument. It takes no arguments. @item gl_LIBTOOL The presence of this macro corresponds to the @samp{--libtool} command line --- 310,319 ---- @samp{--lib} command line argument. @item gl_LGPL ! The presence of this macro without arguments corresponds to the @samp{--lgpl} ! command line argument. The presence of this macro with an argument (whose ! value must be 2 or 3) corresponds to the @[EMAIL PROTECTED] command line ! argument. @item gl_LIBTOOL The presence of this macro corresponds to the @samp{--libtool} command line *** gnulib-tool.orig 2007-10-28 23:23:25.000000000 +0100 --- gnulib-tool 2007-10-28 23:05:22.000000000 +0100 *************** *** 169,176 **** --avoid=MODULE Avoid including the given MODULE. Useful if you have code that provides equivalent functionality. This option can be repeated. ! --lgpl Abort if modules aren't available under the LGPL. Also modify license template from GPL to LGPL. --makefile-name=NAME Name of makefile in automake syntax in the source-base and tests-base directories (default \"Makefile.am\"). --- 169,178 ---- --avoid=MODULE Avoid including the given MODULE. Useful if you have code that provides equivalent functionality. This option can be repeated. ! --lgpl[=2|=3] Abort if modules aren't available under the LGPL. Also modify license template from GPL to LGPL. + The version number of the LGPL can be specified; + the default is currently LGPLv3. --makefile-name=NAME Name of makefile in automake syntax in the source-base and tests-base directories (default \"Makefile.am\"). *************** *** 594,600 **** # - auxdir from --aux-dir # - inctests true if --with-tests was given, blank otherwise # - avoidlist list of modules to avoid, from --avoid ! # - lgpl true if --lgpl was given, blank otherwise # - makefile_name from --makefile-name # - libtool true if --libtool was given, false if --no-libtool was # given, blank otherwise --- 596,602 ---- # - auxdir from --aux-dir # - inctests true if --with-tests was given, blank otherwise # - avoidlist list of modules to avoid, from --avoid ! # - lgpl yes or a number if --lgpl was given, blank otherwise # - makefile_name from --makefile-name # - libtool true if --libtool was given, false if --no-libtool was # given, blank otherwise *************** *** 774,780 **** func_append avoidlist " $arg" shift ;; --lgpl ) ! lgpl=true shift ;; --makefile-name ) shift --- 776,790 ---- func_append avoidlist " $arg" shift ;; --lgpl ) ! lgpl=yes ! shift ;; ! --lgpl=* ) ! arg=`echo "X$1" | sed -e 's/^X--lgpl=//'` ! case "$arg" in ! 2 | 3) ;; ! *) func_fatal_error "invalid LGPL version number for --lgpl" ;; ! esac ! lgpl=$arg shift ;; --makefile-name ) shift *************** *** 1990,1996 **** # - auxdir directory relative to destdir where to place build aux files # - inctests true if --with-tests was given, blank otherwise # - avoidlist list of modules to avoid, from --avoid ! # - lgpl true if library's license shall be LGPL, blank otherwise # - makefile_name from --makefile-name # - libtool true if --libtool was given, false if --no-libtool was # given, blank otherwise --- 2000,2007 ---- # - auxdir directory relative to destdir where to place build aux files # - inctests true if --with-tests was given, blank otherwise # - avoidlist list of modules to avoid, from --avoid ! # - lgpl yes or a number if library's license shall be LGPL, ! # blank otherwise # - makefile_name from --makefile-name # - libtool true if --libtool was given, false if --no-libtool was # given, blank otherwise *************** *** 2059,2066 **** /gl_LIB(/ { s,^.*gl_LIB([[ ]*\([^])]*\).*$,cached_libname="\1",p } /gl_LGPL/ { ! s,^.*$,cached_lgpl=true,p } /gl_MAKEFILE_NAME(/ { s,^.*gl_MAKEFILE_NAME([[ ]*\([^])]*\).*$,cached_makefile_name="\1",p --- 2070,2080 ---- /gl_LIB(/ { s,^.*gl_LIB([[ ]*\([^])]*\).*$,cached_libname="\1",p } + /gl_LGPL(/ { + s,^.*gl_LGPL([[ ]*\([^])]*\).*$,cached_lgpl="\1",p + } /gl_LGPL/ { ! s,^.*$,cached_lgpl=yes,p } /gl_MAKEFILE_NAME(/ { s,^.*gl_MAKEFILE_NAME([[ ]*\([^])]*\).*$,cached_makefile_name="\1",p *************** *** 2211,2219 **** for module in $modules; do license=`func_get_license $module` case $license in ! LGPL | LGPLv2+ | 'GPLed build tool') ;; 'public domain' | 'unlimited' | 'unmodifiable license text') ;; ! *) func_fatal_error "incompatible license on module $module: $license" ;; esac done fi --- 2225,2249 ---- for module in $modules; do license=`func_get_license $module` case $license in ! 'GPLed build tool') ;; 'public domain' | 'unlimited' | 'unmodifiable license text') ;; ! *) ! case "$lgpl" in ! yes | 3) ! case $license in ! LGPL | LGPLv2+) ;; ! *) func_fatal_error "incompatible license on module $module: $license" ;; ! esac ! ;; ! 2) ! case $license in ! LGPLv2+) ;; ! *) func_fatal_error "incompatible license on module $module: $license" ;; ! esac ! ;; ! *) func_fatal_error "invalid value lgpl=$lgpl" ;; ! esac ! ;; esac done fi *************** *** 2235,2244 **** if test -n "$do_copyrights"; then if test -n "$lgpl"; then # Update license. ! sed_transform_lib_file=$sed_transform_lib_file' ! s/GNU General/GNU Lesser General/g ! s/version 2\([ ,]\)/version 2.1\1/g ! ' fi fi --- 2265,2284 ---- if test -n "$do_copyrights"; then if test -n "$lgpl"; then # Update license. ! case "$lgpl" in ! yes | 3) ! sed_transform_lib_file=$sed_transform_lib_file' ! s/GNU General/GNU Lesser General/g ! ' ! ;; ! 2) ! sed_transform_lib_file=$sed_transform_lib_file' ! s/GNU General/GNU Lesser General/g ! s/version [23]\([ ,]\)/version 2.1\1/g ! ' ! ;; ! *) func_fatal_error "invalid value lgpl=$lgpl" ;; ! esac fi fi *************** *** 2473,2479 **** func_append actioncmd " --avoid=$module" done if test -n "$lgpl"; then ! func_append actioncmd " --lgpl" fi if test -n "$makefile_name"; then func_append actioncmd " --makefile-name=$makefile_name" --- 2513,2523 ---- func_append actioncmd " --avoid=$module" done if test -n "$lgpl"; then ! if test "$lgpl" = yes; then ! func_append actioncmd " --lgpl" ! else ! func_append actioncmd " --lgpl=$lgpl" ! fi fi if test -n "$makefile_name"; then func_append actioncmd " --makefile-name=$makefile_name" *************** *** 2695,2701 **** echo "gl_TESTS_BASE([$testsbase])" test -z "$inctests" || echo "gl_WITH_TESTS" echo "gl_LIB([$libname])" ! test -z "$lgpl" || echo "gl_LGPL" echo "gl_MAKEFILE_NAME([$makefile_name])" if test "$libtool" = true; then echo "gl_LIBTOOL" --- 2739,2751 ---- echo "gl_TESTS_BASE([$testsbase])" test -z "$inctests" || echo "gl_WITH_TESTS" echo "gl_LIB([$libname])" ! if test -n "$lgpl"; then ! if test "$lgpl" = yes; then ! echo "gl_LGPL" ! else ! echo "gl_LGPL([$lgpl])" ! fi ! fi echo "gl_MAKEFILE_NAME([$makefile_name])" if test "$libtool" = true; then echo "gl_LIBTOOL"