Frequently Asked Questions about Harbour : About Harbour : What is the Harbour exception?
Previous: Why was the GPL chosen as the licence for Harbour?
Next: So why don't you use the LGPL?

2.11. What is the Harbour exception?

There is one small wrinkle regarding the use of the GPL as the licence for Harbour. Harbour comes in a number of parts, these can best be described as the compiler (including pre-processor), the virtual machine and the run-time library. The GPL dictates that anyone distributing binary versions of GPLd code must make an offer of providing the source and that the code linked against the GPLd code must also fall under the GPL. Failure to do so is a breach of licence.

In Harbour terms this means different things depending on which portion of Harbour you are considering. The compiler itself can live under the GPL, it isn't part of the run-time and so poses no problem. This isn't true for the HVM and RTL because they get linked into your application and so would require that your code be distributed under a compatible licence. While the Harbour developers would like to see you develop free software they have decided to let you make this choice.

To solve this problem the developers have employed the "Harbour Exception". This idea comes from the GPL exception used by guile. In effect, the exception states that you must observe the GPL except when the code in question is being used as the HVM and RTL of an application compiled with Harbour.

The wording of the exception currently reads:

The exception is that, if you link the Harbour libraries with other files to produce an executable, this does not by itself cause the resulting executable to be covered by the GNU General Public License. Your use of that executable is in no way restricted on account of linking the Harbour library code into it.
This exception does not however invalidate any other reasons why the executable file might be covered by the GNU General Public License.
This exception applies only to the code released by the Harbour Project under the name Harbour. If you copy code from other Harbour Project or Free Software Foundation releases into a copy of Harbour, as the General Public License permits, the exception does not apply to the code that you add in this way. To avoid misleading anyone as to the status of such modified files, you must delete this exception notice from them.
If you write modifications of your own for Harbour, it is your choice whether to permit this exception to apply to your modifications. If you do not wish that, delete this exception notice.
Please note that the original wording of the exception was based on an earlier version of the guile exception. That version of the exception was less verbose and less clear. The wording of that version read:
The exception is that if you link the Harbour Runtime Library (HRL) and/or the Harbour Virtual Machine (HVM) with other files to produce an executable, this does not by itself cause the resulting executable to be covered by the GNU General Public License. Your use of that executable is in no way restricted on account of linking the RTL and/or HVM code into it.
The Harbour sources are being converted over to the new exception as each copyright holder makes the change. The intention is that every item of source that uses the Harbour exception will clearly use the more verbose version.


Frequently Asked Questions about Harbour : About Harbour : What is the Harbour exception?
Previous: Why was the GPL chosen as the licence for Harbour?
Next: So why don't you use the LGPL?