Re: Adding modified autoconf macro to a QPLed tree
<posted & mailed>
Siggy Brentrup wrote:
> [Please Cc me on replies since I'm not subscribed to d-legal]
> I'm adopting the spamprobe package which is under the QPL (Qt public
> license). The package has a broken configure.in script that results
> in linking against libdb3.so even when libdb4.2-dev is installed. The
> previous maintainer solved this by build-depending on libdb3-dev,
> while I prefer to fix configure.in.
> IMHO the proper solution is to modify autoconf's AC_SEARCH_LIBS macro
> and put the result into acinclude.m4 in the source tree. Since
> autoconf macros are GPLed with a special exception for generated
> output, this holds for my modified version too.
> vvvvv special exception from /usr/share/autoconf/autoconf/libs.m4 vvvvv
> # As a special exception, the Free Software Foundation gives unlimited
> # permission to copy, distribute and modify the configure scripts that
> # are the output of Autoconf. You need not follow the terms of the GNU
> # General Public License when using or distributing such scripts, even
> # though portions of the text of Autoconf appear in them. The GNU
> # General Public License (GPL) does govern all other use of the material
> # that constitutes the Autoconf program.
> # Certain portions of the Autoconf source text are designed to be copied
> # (in certain cases, depending on the input) into the output of
> # Autoconf. We call these the "data" portions. The rest of the Autoconf
> # source text consists of comments plus executable code that decides which
> # of the data portions to output in any given case. We call these
> # comments and executable code the "non-data" portions. Autoconf never
> # copies any of the non-data portions into its output.
> # This special exception to the GPL applies to versions of Autoconf
> # released by the Free Software Foundation. When you make and
> # distribute a modified version of Autoconf, you may extend this special
> # exception to the GPL to apply to your modified version as well, *unless*
> # your modified version has the potential to copy into its output some
> # of the text that was the non-data portion of the version that you
> # started
> # with. (In other words, unless your change moves or copies text from
> # the non-data portions to the data portions.) If your modification has
> # such potential, you must delete any notice of this special exception
> # to the GPL from your modified version.
> ^^^^^ special exception from /usr/share/autoconf/autoconf/libs.m4 ^^^^^
> Now my question is: are there any legal problems in offering upstream
> the modified macro for inclusion in his source tree, which is QPLed?
This is how it has to work. Your derivative version of the AC_SEARCH_LIBS
macro must be licensed under the GPL. It can (and should) include the
special exception. It should probably go in its own file if it's the only
GPLed macro in the source tree -- you can use sinclude(my_file) in
acinclude.m4 to use it.
It cannot be QPLed, but it should not affect the rest of the source tree.
The upstream author will probably have to note that that one file is not
The generated configure script then can be under whatever license (such as
the QPL), because of the special exception.
I *think* this is sufficient, but perhaps the rest of debian-legal should
chime in. :-/
> . Siggy
However, from my autoconf experience ;-) you really shouldn't have to make a
modified version of AC_SEARCH_LIBS if you write the configure.in correctly
-- there should be another way to do that...