Is it appropriate to include a GPLv3 library into a GPLv2 work?
(A work that is expressly *not* GPLv2+?)
If not, why?
(The "for any purpose" clause seems to cover this from both directions
-- and anyway they are both GPL licenses so this is definitely within
the spirit and intent of the GPL...?)
The specific case is LibreCAD (forked from GPLv2-only QCad CE) and
OpenDWG (a GNU project which is GPLv3-only). We have communicated with
the OpenDWG maintainer and he's said a few times that he would add a
"GPLv2 or later" clause so that we could include the code without any
confusion, but this has not yet happened for whatever reason. We have
not yet fully refactored the QCad code so it is still truly a fork and
not an independent work, so we cannot upgrade the license. The original
author from Ribbonsoft has written us to express his intent to block us
from upgrading the license for as long as possible (he is also now
trying to claim that the manual included with QCad CE is not open source
-- but this is a different issue).
My understanding of the precise limits of the GPL and LGPL is a little
fuzzy when it comes to the way routines are included in different GPL
versions. It may be that the rule itself is a bit fuzzy. We know that
the OpenDWG folks wouldn't have any objection, but we're also not
looking to have any outside party suddenly become adversarial and start
pointing fingers ("that's ridiculous!" won't stop someone from trying).
If someone has a resource that covers the ins and outs of mixing GPLv2,
2+ and 3 clauses I would be most appreciative. We're a bit confused about:
1- Including new source files (our own) as GPLv3 vs GPLv2+ within a
project that is, as a whole, considered GPLv2
2- Linking GPLv3 from old GPLv2 code (such as the OpenDWG situation)
3- The point when a project is considered to be completely reworked and
no longer the property of the original author (such as what happened
with parts of the SCO case a while back). What is the threshold?