After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 463248 - Goffice contains GPL version2 only files
Goffice contains GPL version2 only files
Status: RESOLVED FIXED
Product: libgoffice
Classification: Other
Component: General
unspecified
Other All
: Normal normal
: ---
Assigned To: Jody Goldberg
Jody Goldberg
Depends on:
Blocks: 463247 614865
 
 
Reported: 2007-08-03 20:32 UTC by Hans de Goede
Modified: 2012-03-28 00:25 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Hans de Goede 2007-08-03 20:32:06 UTC
HI,

First let me start by introducing myself, I'm a linux enthousiast / developer and a Fedora contributer. I maintain the goffice package for Fedora.

Currently we are doing a licensing audit of all our packages (what a pain) because of the coming of GPL version 3. GPL version 3 causes problems, because a GPL program may only use (L)GPL libs under the same version of the GPL as the program itself. So once the C-library becomes GPL version 3 (if it will ever) all GPL v2 or higher programs automatically become GPL3 too and GPL version 2 only programs can not be distributed.

This brings me to the reason for writing this mail, I've checked goffice-0.2.2 and several files contain copyright headers without the "or (at your option) any later version" language.

I hope that this can be remedied, as this could be a problem in the future.
Comment 1 Morten Welinder 2008-03-16 16:34:05 UTC
The current state of affairs is as listed below.  Anyone who owns (== wrote
all the code) of these files, please change to gpl v2+.  Sample
language to use is in ./goffice/gtk/go-rotation-sel.c

./goffice/app/error-info.c: No stated license
./goffice/app/file.c: No stated license
./goffice/app/go-cmd-context.c: No stated license
./goffice/app/go-doc.c: GPL v2 only
./goffice/app/go-doc-control.c: GPL v2 only
./goffice/app/go-object.c: GPL v2 only
./goffice/app/go-plugin.c: No stated license
./goffice/app/go-plugin-loader.c: No stated license
./goffice/app/go-plugin-loader-module.c: No stated license
./goffice/app/go-plugin-service.c: No stated license
./goffice/app/go-service.c: No stated license
./goffice/app/io-context.c: No stated license
./goffice/component/go-component.c: GPL v2 only
./goffice/component/go-component-factory.c: GPL v2 only
./goffice/cut-n-paste/foocanvas/foo-canvas-marshal.c: No stated license
./goffice/data/go-data.c: GPL v2 only
./goffice/data/go-data-simple.c: GPL v2 only
./goffice/goffice.c: GPL v2 only
./goffice/graph/gog-axis.c: GPL v2 only
./goffice/graph/gog-axis-line.c: GPL v2 only
./goffice/graph/gog-chart.c: GPL v2 only
./goffice/graph/gog-chart-map.c: GPL v2 only
./goffice/graph/gog-child-button.c: GPL v2 only
./goffice/graph/gog-control-foocanvas.c: GPL v2 only
./goffice/graph/gog-data-allocator.c: GPL v2 only
./goffice/graph/gog-data-set.c: GPL v2 only
./goffice/graph/gog-error-bar.c: GPL v2 only
./goffice/graph/gog-graph.c: GPL v2 only
./goffice/graph/gog-grid.c: GPL v2 only
./goffice/graph/gog-grid-line.c: GPL v2 only
./goffice/graph/gog-label.c: GPL v2 only
./goffice/graph/gog-legend.c: GPL v2 only
./goffice/graph/gog-object.c: GPL v2 only
./goffice/graph/gog-object-xml.c: GPL v2 only
./goffice/graph/gog-outlined-object.c: GPL v2 only
./goffice/graph/gog-plot.c: GPL v2 only
./goffice/graph/gog-plot-engine.c: GPL v2 only
./goffice/graph/gog-reg-curve.c: GPL v2 only
./goffice/graph/gog-renderer.c: GPL v2 only
./goffice/graph/gog-series.c: GPL v2 only
./goffice/graph/gog-smoothed-curve.c: GPL v2 only
./goffice/graph/gog-style.c: GPL v2 only
./goffice/graph/gog-styled-object.c: GPL v2 only
./goffice/graph/gog-theme.c: GPL v2 only
./goffice/graph/gog-trend-line.c: GPL v2 only
./goffice/graph/gog-view.c: GPL v2 only
./goffice/gtk/go-action-combo-color.c: GPL v2 only
./goffice/gtk/go-action-combo-pixmaps.c: GPL v2 only
./goffice/gtk/go-action-combo-stack.c: GPL v2 only
./goffice/gtk/go-action-combo-text.c: GPL v2 only
./goffice/gtk/go-color-group.c: LGPL v2 only
./goffice/gtk/go-color-palette.c: LGPL v2 only
./goffice/gtk/go-color-selector.c: LGPL v2 only
./goffice/gtk/go-combo-box.c: LGPL v2 only
./goffice/gtk/go-combo-color.c: LGPL v2 only
./goffice/gtk/go-combo-pixmaps.c: LGPL v2 only
./goffice/gtk/go-combo-text.c: No stated license
./goffice/gtk/go-dock-item-grip.c: No stated license
./goffice/gtk/goffice-gtk.c: GPL v2 only
./goffice/gtk/go-font-sel.c: No stated license
./goffice/gtk/go-gradient-selector.c: GPL v2 only
./goffice/gtk/go-line-selector.c: GPL v2 only
./goffice/gtk/go-marker-selector.c: GPL v2 only
./goffice/gtk/go-palette.c: GPL v2 only
./goffice/gtk/go-pattern-selector.c: GPL v2 only
./goffice/gtk/go-pixbuf.c: GPL v2 only
./goffice/gtk/go-selector.c: GPL v2 only
./goffice/math/go-complex.c: No stated license
./goffice/math/go-cspline.c: GPL v2 only
./goffice/math/go-fft.c: No stated license
./goffice/math/go-math.c: No stated license
./goffice/math/go-rangefunc.c: No stated license
./goffice/math/go-regression.c: No stated license
./goffice/ms-compat/god-drawing-ms.c: LGPL v2 only
./goffice/ms-compat/go-ms-parser.c: LGPL v2 only
./goffice/utils/datetime.c: No stated license
./goffice/utils/formats.c: No stated license
./goffice/utils/go-cairo.c: GPL v2 only
./goffice/utils/go-file.c: GPL v2 only
./goffice/utils/go-font.c: GPL v2 only
./goffice/utils/go-format.c: GPL v2 only
./goffice/utils/go-geometry.c: GPL v2 only
./goffice/utils/go-glib-extras.c: No stated license
./goffice/utils/go-gradient.c: GPL v2 only
./goffice/utils/go-image.c: GPL v2 only
./goffice/utils/go-libxml-extras.c: No stated license
./goffice/utils/go-line.c: GPL v2 only
./goffice/utils/go-locale.c: GPL v2 only
./goffice/utils/go-marker.c: GPL v2 only
./goffice/utils/go-marshalers.c: No stated license
./goffice/utils/go-pango-extras.c: No stated license
./goffice/utils/go-path.c: GPL v2 only
./goffice/utils/go-pattern.c: GPL v2 only
./goffice/utils/go-undo.c: No stated license
./goffice/utils/regutf8.c: No stated license
./plugins/plot_barcol/gog-1.5d.c: GPL v2 only
./plugins/plot_barcol/gog-barcol.c: GPL v2 only
./plugins/plot_barcol/gog-barcol-prefs.c: GPL v2 only
./plugins/plot_barcol/gog-dropbar.c: GPL v2 only
./plugins/plot_barcol/gog-line.c: GPL v2 only
./plugins/plot_barcol/gog-minmax.c: GPL v2 only
./plugins/plot_boxes/gog-boxplot.c: GPL v2 only
./plugins/plot_boxes/gog-histogram.c: GPL v2 only
./plugins/plot_pie/gog-pie.c: GPL v2 only
./plugins/plot_pie/gog-pie-prefs.c: GPL v2 only
./plugins/plot_radar/gog-radar.c: GPL v2 only
./plugins/plot_surface/gog-contour-prefs.c: GPL v2 only
./plugins/plot_surface/gog-surface.c: GPL v2 only
./plugins/plot_surface/xl-surface.c: GPL v2 only
./plugins/plot_xy/gog-bubble-prefs.c: GPL v2 only
./plugins/plot_xy/gog-xy.c: GPL v2 only
./plugins/reg_linear/gog-exp-reg.c: GPL v2 only
./plugins/reg_linear/gog-lin-reg.c: GPL v2 only
./plugins/reg_linear/gog-log-reg.c: GPL v2 only
./plugins/reg_linear/gog-polynom-reg.c: GPL v2 only
./plugins/reg_linear/gog-power-reg.c: GPL v2 only
./plugins/reg_logfit/gog-logfit.c: GPL v2 only
./plugins/smoothing/gog-exp-smooth.c: GPL v2 only
./plugins/smoothing/gog-moving-avg.c: GPL v2 only
./plugins/smoothing/plugin.c: GPL v2 only
Comment 2 Morten Welinder 2008-04-05 17:40:02 UTC
For the record, we have blanket permissions from

Morten Welinder  <terra@gnome.org>
Jean Brefort  <jean.brefort@normalesup.org>
Comment 3 J.H.M. Dassen (Ray) 2008-04-05 20:42:28 UTC
I hereby permit relicensing my contributions to libgsf, goffice and gnumeric
from GPL v2 only to GPL v2 or newer and from LGPL v2 only to LGPL v2 or
newer.

J.H.M. Dassen (Ray) <jdassen@debian.org>
Comment 4 Jody Goldberg 2008-04-06 01:50:04 UTC
+1 jody@gnome.org
Comment 5 Emmanuel Pacaud 2008-04-06 09:05:41 UTC
I hereby permit relicensing my contributions to goffice and gnumeric
from GPL v2 only to GPL v2 or newer and from LGPL v2 only to LGPL v2 or
newer.

Emmanuel Pacaud <emmanuel.pacaud@lapp.in2p3.fr>
Comment 6 Morten Welinder 2008-04-06 16:51:13 UTC
We have blanket permission from Ivan Wong too.
Comment 7 Jon Kåre Hellan 2008-04-06 21:05:37 UTC
I hereby permit relicensing my contributions to libgsf, goffice and gnumeric
from GPL v2 only to GPL v2 or newer and from LGPL v2 only to LGPL v2 or
newer.

Jon Kåre Hellan <hellan@acm.org>
Comment 8 Ivan Wong 2008-04-07 07:42:43 UTC
I hereby permit relicensing my contributions to libgsf, goffice and gnumeric
from GPL v2 only to GPL v2 or newer and from LGPL v2 only to LGPL v2 or
newer.
Comment 9 Eduardo Lima (Etrunko) 2008-04-10 15:18:14 UTC
I hereby permit relicensing my contributions to libgsf, goffice and gnumeric
from GPL v2 only to GPL v2 or newer and from LGPL v2 only to LGPL v2 or
newer.

Eduardo Lima <eduardo.lima@indt.org.br>
Comment 10 Miguel de Icaza 2008-04-10 15:34:57 UTC
    Ximian made a conscious decision at its foundation that any work
that went into our contributions would be GPL version 2 only (this was
influenced at the time by discussions on the Linux kernel forums at the
time).   Which would cover the work did on Gnumeric that Jody did while
employed at Ximian, and this would cover my code before I stopped
working on it.

    It is possible to contact the Novell lawyers to figure whether this
could be done, but having gone through a relicensing myself (GPL to X11)
I know that this will be a long process, but of course, we also need to
understand why this change is necessary.
Comment 11 Morten Welinder 2008-04-10 16:02:57 UTC
Miguel: I was specifically asking for code marked with a copyright for you
personally.  There is very little Ximian code left and the little there is
has been (functionally) included in gtk+ since.  We can replace that with
fairly thin wrappers.

The basic problem is that distributions are voicing concerns that when some
library -- glibc or glib/gtk+ -- goes lgpl3, then they might not be
able to distribute a gpl2-only program.  (I do not actually see the problem
as long as we _can_ run dynamically linked against a gpl2 version on the
library whether or not the general user choses to _do_ so.  In that
situation we are not a derived product of the gpl3 library at distribution
time.)

Miguel: it would make sense for Novell to look into this in Evolution context.
If gtk+ goes gpl3, will Novell stop distributing Evolution?  (There is at
least one non-Novell copyright holder for Evolution code.)
Comment 12 Miguel de Icaza 2008-04-10 17:28:14 UTC
Morten,

Derivative work (the result of heavy refactoring) continues to be derivative work, regardless if its bears any resemblance to the original code, unless it was written from scratch with no orgranic growth.   If thats how that code was written, then that would address that issue, if its an evolution of the software, then it would continue to be covered by the original copyright holder's license.

Any code after October 1999 was owned by Ximian.

As for any code before October 1999, I still do not understand the reason for the "or later" clause.   

I still do not understand the first scenario presented, do you have information about this incompatibility of LGPLv3 with GPLv2 software?   This seems odd, and I find it surprising.

Additionally, this is the first time that I heard that Gtk+ is going to LGPLv3, is that a reality, or is this merely an hypothetical scenario?

The "or later" is problematic, going to "GPL v2 or GPL v3" is easier to get approval for than a blanket statement for "or later".
Comment 13 Morten Welinder 2008-04-10 18:35:25 UTC
"continues to be derivative work, regardless if its bears any resemblance to the original code"

Not in the US.  The broadest view of what is a derivative work is the
abstraction-filtration-comparison test.  If, at the end, it does not compare
to the work things were copied from, it is not a derivative work.
http://www.linux.com/articles/113252


Hans de Goede: could you please present the case for the need of gplv2+?
Comment 14 Andreas J. Guelzow 2008-04-10 18:44:45 UTC
    I hereby permit relicensing my contributions to libgsf, goffice and gnumeric
    from GPL v2 only to GPL v2 or newer and from LGPL v2 only to LGPL v2 or
    newer.

    Andreas J. Guelzow <aguelzow@pyrshep.ca>

    (earlier contributions may have been identified witht eh e-mail address
    <aguelzow@taliesin.ca>)

Comment 15 Morten Welinder 2008-04-10 19:16:04 UTC
Miguel: re gtk+, there has been a request to go gpl3+:

    http://mail.gnome.org/archives/gtk-devel-list/2008-March/msg00055.html

It seems it will not happen until (the hypothetical) gtk+ 3, if at all.
Comment 16 Miguel de Icaza 2008-04-10 21:22:48 UTC
That document that you linked states that:

"Therefore, one is left to ask, just what is a "derivative work?" The answer to that question depends on which court is being asked.

The analysis below sets forth the differing definitions of derivative work by U.S. Circuit Court.[ii] The broadest and most established definition of derivative work for software is the abstraction, filtration, and comparison test ("the AFC test") as created and developed by the Second Circuit. Some Circuits, including the Ninth Circuit and the First Circuit, have either adopted narrower versions of the AFC test or have expressly rejected the AFC test in favor of a narrower standard. Further, several other Circuits have yet to adopt any definition of derivative work for software. "

That does not sound like a 100% clear statement, and the rest of the document is far from giving a black and white answer.
Comment 17 Hans de Goede 2008-04-11 07:02:41 UTC
(In reply to comment #13)
> Hans de Goede: could you please present the case for the need of gplv2+?
> 

Okay,

A GPL licensed application may only be distributed under the conditions of the GPL, now the GPL states that all components must also be distributed under the GPL. Components here also means any libraries the application links to. This is a necessary requirement because otherwise someone could embrace and extend an GPL application and still distribute it legally simply by putting most of the interesting new stuff in a library.

Now this means that all libraries a GPL application use must be licensed under a GPL compatible license. Nothing new sofar, right?

However the LGPL is not GPL compatible! Yes that one warrants repeating: the LGPL is not GPL compatible! Because that one does allow the embrace and extend through putting stuff in another lib which GPL explicitly forbids. This incompatibility is fixed in the LGPL by the following text:

---

  3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License to a given copy of the Library.  To do
this, you must alter all the notices that refer to this License, so   
that they refer to the ordinary GNU General Public License, version 2,
instead of to this License.  (If a newer version than version 2 of the
ordinary GNU General Public License has appeared, then you can specify
that version instead if you wish.)  Do not make any other change in
these notices.

---

So any LGPL version 2 lib may also be distributed under the GPL version 2 or later, fixing the GPL, LGPL compatibility. In effect any LGPL version 2 library is dual licensed as "LGPL version 2" or "GPL version 2 or later"

Now this is where things become problematic with [L]GPL version 3, any LGPL version 3 licensed lib is effectively dual licensed as "LGPL version 3" or "GPL version 3 or later". And GPL version 3 is not compatible with GPL version 2, so a GPL version 2 application / lib using [L]GPL version 3 licensed libraries, is effectively (technically) not distributable.

Hence my request to fix the GPL version 2 only licensed files in goffice / gnumeric, because if any library they depend upon ever decides to move to [L]GPLv3, gnumeric/goffice would have to keep using the old version or it would become undistributable.
Comment 18 Jon Kåre Hellan 2008-04-11 07:09:47 UTC
I'm afraid I don't understand.

Did you run that by your lawyer? If so, may be he could help you phrase it in a way I would be able to understand.

If you didn't run it by your lawyer, may be you should.
Comment 19 Hans de Goede 2008-04-11 07:19:31 UTC
(In reply to comment #18)
> I'm afraid I don't understand.
> 
> Did you run that by your lawyer? If so, may be he could help you phrase it in a
> way I would be able to understand.
> 

Try reading it again, slowly, this is the best I can do to explain it.

> If you didn't run it by your lawyer, may be you should.
> 

Yes I did, this is RedHat's and the FSF's lawyers interpretation. esp see the GPL compatibility matrix here:
http://fedoraproject.org/wiki/Licensing#head-699ce10b1f5d466cd4c3d61301c3651f0c2ca219
and here for the original:
http://www.fsf.org/licensing/licenses/gpl-faq.html#v2v3Compatibility
Comment 20 Jean Bréfort 2008-04-11 07:40:05 UTC
That' also how I now understand things. I asked the fsf for clarification and their answer is quite clear:
a GPL-v2 only program can't use a (L)GPL-v3 library
a GPL-v2+ program can use either a GPL-v2 or a (L)GPL-v3 libray, but not both

seems also that a GPL-v3 program can use both L(GPL)-v3 libraires and LGPL-v2.1+ libraries (because the last can be interpreted as GPL-v2 or later), but I did not ask about that point.
Comment 21 Dominic Lachowicz 2008-04-11 16:01:53 UTC
I hereby permit relicensing my contributions to libgsf, goffice and gnumeric
from GPL v2 only to GPL v2 or newer and from LGPL v2 only to LGPL v2 or
newer.

Dominic Lachowicz <domlachowicz@gmail.com>
Comment 22 Jean Bréfort 2008-12-12 08:07:48 UTC
Well, if GLP-v2+ is not possible, would LGPL-v2, or v3 (as was the case for Evolution) be possible (for the whole goffice/gnumeric sources)?
Comment 23 Andreas J. Guelzow 2008-12-12 08:30:36 UTC
I don't think LGPL-v2 or v3 would be appropriate (or desirable) for gnumeric. 
Comment 24 Jean Bréfort 2008-12-12 10:00:56 UTC
I don't really like the idea either, but it's better than GPL-v2 only for the future.
Comment 25 Marc Maurer 2009-03-03 16:36:42 UTC
Re comment 17: we run into this usecase: right now AbiWord includes some GOffice GPLv2 code. AbiWord itself is GPLv2+, but this inclusion makes it GPLv2-only as well.

Now the math plugin we ship depends on gtkmathview, which recently changed it's license to LGPLv3+.

The LGPLv3+ license is incompatible with a GPLv2-only license, see http://www.fsf.org/licensing/licenses/gpl-faq.html#AllCompatibility.

Because of the GOffice license, we have 2 options now:

1) Rewrite all goffice code we need
2) Drop Equation support.

Not fun :)
Comment 26 Andreas J. Guelzow 2009-03-03 17:17:35 UTC
Marc, of course you could also say that because of the gtkmathview license you have those two non-fun options. 

While I am in favour of changing the gnumeric/goffice licence to GPL version 2 and newer, one does have to realize that when a project chose to use a certain version of goffice they should have checked whether the license that came along was acceptable to them.
Comment 27 Morten Welinder 2009-03-03 17:32:18 UTC
Don't forget

3) Take it up with the gtkmathview people.  they might be able to reserve
course.
Comment 28 Marc Maurer 2009-03-03 19:27:16 UTC
You are of course absolutely correct Andreas, it should never have been added in the first place. Our mistake, and it's up to us to fix that.

And regarding option 3: Luca (GtkMathView's maintainer) was not unwilling to relicense again, but things move *very* slowly on that front.
Comment 29 Jean Bréfort 2010-04-09 14:24:45 UTC
Things did not change and now there is more and more code released under (L)GPL-v3. I just realized that it is now impossible to use GSL in goffice or gnumeric. If the "or later" statement is problematic, would "GPL-v2 or v3" or just "GPL-v3" acceptable for the whole goffice/gnumeric tree? This would work at least until the FSF release a new version of the GPL license.

Who should be contacted at Novell to make things advance?
Comment 30 Hal Ashburner 2011-03-14 07:22:15 UTC
I hereby permit relicensing my contributions to gnumeric
from GPL v2 only to GPL v2 or newer and from LGPL v2 only to LGPL v2 or
newer. Or indeed whatever the current gnumeric team ask for.
Hal Ashburner <hal@ashburner.info> <hal_ashburner@yahoo.co.uk>
Comment 31 Jean Bréfort 2012-02-29 11:44:39 UTC
For Novell/Suse permission, see https://bugzilla.gnome.org/show_bug.cgi?id=670727#c7
Comment 32 Morten Welinder 2012-03-14 12:57:36 UTC
We have gplv2/gplv3 permission also from Micheel Devine and
Valek "Frob" Filippov.
Comment 33 Morten Welinder 2012-03-28 00:25:09 UTC
This problem has been fixed in the development version. The fix will be available in the next major software release. Thank you for your bug report.