Discussion:
license question
Peter Gavin
2013-04-11 10:04:26 UTC
Permalink
Hello,

Since I'm not sure where else to ask this question, I'll ask it here:

I'm working on a project that uses the m4sugar.m4 file included with
autoconf to generate files using m4. I'd like to license my project using
a BSD-style 2-clause license, rather than GPLv3 (with the exception of the
m4sugar.m4 file, which will be distributed under the terms of the GPLv3 as
required). I several questions regarding this:

1. Can I license my source files with the BSD license even though they call
macros from m4sugar? (I can't think of a reason this isn't a "yes",
personally.)

2. Must any generated files (as produced by running m4 on my files which
m4_include m4sugar.m4) be distributed under GPL3? (I'm assuming the
Autoconf exception as documented at
http://www.gnu.org/licenses/autoconf-exception-3.0.html applies, since
m4sugar is part of Autoconf, so this would be a "no".)

3. My project generates source code. Can binaries compiled from this
source code be distributed under the terms of the BSD license? (Since I'm
assuming the Autoconf exception applies, I'm also assuming this is a "yes".)

4. Will distributions of either only the generated source code or only
binaries compiled from that source code require distribution of the
m4sugar.m4 file? (I'm assuming this is a "no".)

Are my assumptions correct? If I distribute a tarball that includes the
GPL3 licensed m4sugar.m4, my BSD-licensed sources, and some source files
generated using all of these, the GPL3 would only apply to m4sugar.m4 and
nothing else in the tarball, is that correct? I'm not personally planning
on distributing binaries at the moment, but if I or someone else were to
distribute them in the future, is it correct to assume that only my BSD
license would apply?

If it matters, I haven't modified m4sugar.m4 at all. I've just copied it
into my source tree. If I did happen to modify it, I do understand that the
modified file would still be GPL3.

Thanks,
-Pete
Bob Friesenhahn
2013-04-11 14:39:12 UTC
Permalink
Post by Peter Gavin
Hello,
I'm working on a project that uses the m4sugar.m4 file included with
autoconf to generate files using m4. I'd like to license my project using
a BSD-style 2-clause license, rather than GPLv3 (with the exception of the
m4sugar.m4 file, which will be distributed under the terms of the GPLv3 as
1. Can I license my source files with the BSD license even though they call
macros from m4sugar? (I can't think of a reason this isn't a "yes",
personally.)
Yes, you may apply any license to your source files as long as the
license is compatible with GPLv3 (e.g. provides for distribution of
source code). As long as you are depending on the GPLv3 file, the
whole work needs to be distributable/distributed as per GPLv3 (e.g.
provide source files) but your own files may use a different license.
If you later remove the GPLv3 component, then the remainder would fall
under your own license.

Whether a binary built from these files is encumbered by GPLv3 would
depend on your point #2.
Post by Peter Gavin
2. Must any generated files (as produced by running m4 on my files which
m4_include m4sugar.m4) be distributed under GPL3? (I'm assuming the
Autoconf exception as documented at
http://www.gnu.org/licenses/autoconf-exception-3.0.html applies, since
m4sugar is part of Autoconf, so this would be a "no".)
This might be correct but not because of the Autoconf configure script
exception since you are not using Autoconf to prepare a configure
script (Autoconf's typical output). Instead, you are taking advantage
of a file delivered with Autoconf. The output from these macros does
not constitute 'typical output of Autoconf' since the normal output of
Autoconf is well defined (e.g. a configure script).

The reason why it may be ok to use the output under your own terms is
because copyrighted content of m4sugar is not copied to the output.
A quick inspection of m4sugar shows that it provides only algorithms
and does not copy parts of itself to its output. That is the reason
why I assume that it is ok to use the output under your own terms.
Post by Peter Gavin
3. My project generates source code. Can binaries compiled from this
source code be distributed under the terms of the BSD license? (Since I'm
assuming the Autoconf exception applies, I'm also assuming this is a "yes".)
This would depend on #2.
Post by Peter Gavin
4. Will distributions of either only the generated source code or only
binaries compiled from that source code require distribution of the
m4sugar.m4 file? (I'm assuming this is a "no".)
This also depends on #2.
Post by Peter Gavin
Are my assumptions correct? If I distribute a tarball that includes the
GPL3 licensed m4sugar.m4, my BSD-licensed sources, and some source files
generated using all of these, the GPL3 would only apply to m4sugar.m4 and
nothing else in the tarball, is that correct? I'm not personally planning
on distributing binaries at the moment, but if I or someone else were to
distribute them in the future, is it correct to assume that only my BSD
license would apply?
The BSD licence may apply to your own files but GPLv3 terms also apply
to the whole combined work as long as you depend on a GPLv3 file.

I am not a lawyer.

Bob
--
Bob Friesenhahn
***@simple.dallas.tx.us, http://www.simplesystems.org/users/bfriesen/
GraphicsMagick Maintainer, http://www.GraphicsMagick.org/
Peter Gavin
2013-04-11 18:56:19 UTC
Permalink
On Thu, Apr 11, 2013 at 10:39 AM, Bob Friesenhahn <
Post by Bob Friesenhahn
Post by Peter Gavin
2. Must any generated files (as produced by running m4 on my files which
m4_include m4sugar.m4) be distributed under GPL3? (I'm assuming the
Autoconf exception as documented at
http://www.gnu.org/licenses/**autoconf-exception-3.0.html<http://www.gnu.org/licenses/autoconf-exception-3.0.html>applies, since
m4sugar is part of Autoconf, so this would be a "no".)
This might be correct but not because of the Autoconf configure script
exception since you are not using Autoconf to prepare a configure script
(Autoconf's typical output). Instead, you are taking advantage of a file
delivered with Autoconf. The output from these macros does not constitute
'typical output of Autoconf' since the normal output of Autoconf is well
defined (e.g. a configure script).
Ok, that makes sense.
Post by Bob Friesenhahn
The reason why it may be ok to use the output under your own terms is
because copyrighted content of m4sugar is not copied to the output. A quick
inspection of m4sugar shows that it provides only algorithms and does not
copy parts of itself to its output. That is the reason why I assume that
it is ok to use the output under your own terms.
And indeed, if you run m4 on m4sugar.m4 and no other files, the output will
be empty. m4sugar is the very first thing my project processes with m4,
and I'm not doing anything funny with it that would cause it to copy parts
of itself to the output. The only thing I'm doing with m4sugar is calling
the macros it defines.

I am not a lawyer.


Even still, thanks for your comments.

-Pete

Loading...