Licensing Details



FWD is an open source project released under the Affero GPL 3.0 license with some additional terms that are specific to FWD.


This summary is just to give a quick idea of the implications of this license. For the full details, please read this entire page.

When a converted application is compiled or executed, it comprises a combined work with the FWD project itself. This means that any distribution of or network access to the converted code (in binary or source code forms) outside of the organization triggers the copyleft provisions of the AGPL. This means that in this case, the converted application must be released as open source under the same AGPL license, since it is a combined work.

Golden Code provides an alternate license which allows your converted application to be distributed externally or shared over the network with external users, on a closed source basis. This is the so called dual-license.

Internal-only usage (over the network or otherwise) does not trigger the copyleft provisions, so the converted code does not have to be released under the AGPL when exclusively used for internal users only.

If you are an organization (e.g. a software vendor) that wants to ship your converted application to an external organization (e.g. a customer or supplier), you must release your converted application code under the AGPL OR obtain a dual-license from Golden Code.

If you are an organization that wants to provide hosted access to a converted application for users outside of your organization, you must release your converted application code under the AGPL OR obtain a dual-license from Golden Code.

Who Owns the Converted Code?

The short answer: whomever owned the copyrights before the conversion will own the copyrights to the converted version.

What Legal Rights Must My Organization Have to Convert an Application?

Running the FWD conversion process on a Progress ABL application's source code entails making a derivative work of that Progress ABL application. If the application in question is owned by a 3rd party, the organization running conversion must be an agent or contractor of that 3rd party OR it must have a source license which provides unrestricted rights to create derivative works. If the organization is the originator of the source or otherwise owns the source of the application, then no further rights are required.

What is a Covered Work?

The Java converted code requires the FWD classes to be present for compilation and for all execution. This means that the converted Java code is statically linking to the AGPL FWD code. Static linking combines the two pieces of code into a larger covered work which is collectively subject to the AGPL.

The author of the GPL and AGPL licenses is the Free Software Foundation (FSF). The following details are excerpts of their guidance about the GPL and AGPL. The two are equivalent for all purposes except that the AGPL triggers the distribution reciprocity requirement when the combined work is accessed over the network by people outside of the organization. Any references to GPL below can be read as AGPL.

Linking creates a combined work.:

Linking a GPL covered work statically or dynamically with other modules is making a combined work based on the GPL covered work. Thus, the terms and conditions of the GNU General Public License cover the whole combination.

Adding a module to a AGPL program requires the module to be licensed using the AGPL

If I add a module to a GPL-covered program, do I have to use the GPL as the license for my module?

The GPL says that the whole combined program has to be released under the GPL. So your module has to be available for use under the GPL.

Any software that uses an AGPL library requires the linked code to be licensed using the AGPL.

If a library is released under the GPL (not the LGPL), does that mean that any software which uses it has to be under the GPL or a GPL-compatible license?

Yes, because the software as it is actually run includes the library.

You have a GPL'ed program that I'd like to link with my code to build a proprietary program. Does the fact that I link with your program mean I have to GPL my program?

Not exactly. It means you must release your program under a license compatible with the GPL (more precisely, compatible with one or more GPL versions accepted by all the rest of the code in the combination that you link). The combination itself is then available under those GPL versions.

What is the difference between an 'aggregate' and other kinds of 'modified versions'?

An “aggregate” consists of a number of separate programs, distributed together on the same CD-ROM or other media. The GPL permits you to create and distribute an aggregate, even when the licenses of the other software are non-free or GPL-incompatible. The only condition is that you cannot release the aggregate under a license that prohibits users from exercising rights that each program's individual license would grant them.

Where's the line between two separate programs, and one program with two parts? This is a legal question, which ultimately judges will decide. We believe that a proper criterion depends both on the mechanism of communication (exec, pipes, rpc, function calls within a shared address space, etc.) and the semantics of the communication (what kinds of information are interchanged).

If the modules are included in the same executable file, they are definitely combined in one program. If modules are designed to run linked together in a shared address space, that almost surely means combining them into one program.

By contrast, pipes, sockets and command-line arguments are communication mechanisms normally used between two separate programs. So when they are used for communication, the modules normally are separate programs. But if the semantics of the communication are intimate enough, exchanging complex internal data structures, that too could be a basis to consider the two parts as combined into a larger program.

The following clarifications in regard to the Lesser GPL (LGPL) and Java are instructive:

It has always been the FSF's position that dynamically linking applications to libraries creates a single work derived from both the library code and the application code. The GPL requires that all derivative works be licensed as a whole under the terms of the GPL, an effect which can be described as “hereditary.” So, if an application links to a library licensed under the GPL, the application too must be licensed under the GPL.

The typical arrangement for Java is that each library an application uses is distributed as a separate JAR (Java Archive) file. Applications use Java's “import” functionality to access classes from these libraries. When the application is compiled, function signatures are checked against the library, creating a link. The application is then generally a derivative work of the library.

Inheritance creates derivative works in the same way as traditional linking

I'd like to incorporate GPL-covered software in my proprietary system. I have no permission to use that software except what the GPL gives me. Can I do this?

You cannot incorporate GPL-covered software in a proprietary system. The goal of the GPL is to grant everyone the freedom to copy, redistribute, understand, and modify a program. If you could incorporate GPL-covered software into a non-free system, it would have the effect of making the GPL-covered software non-free too.

A system incorporating a GPL-covered program is an extended version of that program. The GPL says that any extended version of the program must be released under the GPL if it is released at all. This is for two reasons: to make sure that users who get the software get the freedom they should have, and to encourage people to give back improvements that they make.

I'd like to incorporate GPL-covered software in my proprietary system. Can I do this by putting a 'wrapper' module, under a GPL-compatible lax permissive license (such as the X11 license) in between the GPL-covered part and the proprietary part?

No. The X11 license is compatible with the GPL, so you can add a module to the GPL-covered program and put it under the X11 license. But if you were to incorporate them both in a larger program, that whole would include the GPL-covered part, so it would have to be licensed as a whole under the GNU GPL.

The fact that proprietary module A communicates with GPL-covered module C only through X11-licensed module B is legally irrelevant; what matters is the fact that module C is included in the whole.

In an object-oriented language such as Java, if I use a class that is GPL'ed without modifying, and subclass it, in what way does the GPL affect the larger program?

Subclassing is creating a derivative work. Therefore, the terms of the GPL affect the whole program where you create a subclass of a GPL'ed class.


Users of the FWD open source project who wish to distribute their converted application or host it for network access by those outside their organization will not be able to use FWD's default, reciprocal (copyleft) AGPL license, without also releasing their application source code under the same license.

For those who wish keep their converted applications closed source, Golden Code Development offers a dual licensing model for the FWD technology. A source and distribution license is available for purchase at a reasonable cost, allowing you to keep your application code proprietary, while having full rights to modify and distribute the FWD source code and binaries.

FWD License Notice

Each source file in the FWD project must contain the following license notice:

** This program is free software: you can redistribute it and/or modify
** it under the terms of the GNU Affero General Public License as
** published by the Free Software Foundation, either version 3 of the
** License, or (at your option) any later version.
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** GNU Affero General Public License for more details.
** You may find a copy of the GNU Affero GPL version 3 at the following
** location:
** Additional terms under GNU Affero GPL version 3 section 7:
**   Under Section 7 of the GNU Affero GPL version 3, the following additional
**   terms apply to the works covered under the License.  These additional terms
**   are non-permissive additional terms allowed under Section 7 of the GNU
**   Affero GPL version 3 and may not be removed by you.
**   0. Attribution Requirement.
**     You must preserve all legal notices or author attributions in the covered
**     work or Appropriate Legal Notices displayed by works containing the covered
**     work.  You may not remove from the covered work any author or developer
**     credit already included within the covered work.
**   1. No License To Use Trademarks.
**     This license does not grant any license or rights to use the trademarks
**     Golden Code, FWD, any Golden Code or FWD logo, or any other trademarks
**     of Golden Code Development Corporation. You are not authorized to use the
**     name Golden Code, FWD, or the names of any author or contributor, for
**     publicity purposes without written authorization.
**   2. No Misrepresentation of Affiliation.
**     You may not represent yourself as Golden Code Development Corporation or FWD.
**     You may not represent yourself for publicity purposes as associated with
**     Golden Code Development Corporation, FWD, or any author or contributor to
**     the covered work, without written authorization.
**   3. No Misrepresentation of Source or Origin.
**     You may not represent the covered work as solely your work.  All modified
**     versions of the covered work must be marked in a reasonable way to make it
**     clear that the modified work is not originating from Golden Code Development
**     Corporation or FWD.  All modified versions must contain the notices of
**     attribution required in this license.

AGPL 3.0 Full License Text

Spreadsheet Component

Starting in FWD v4.0.0 there is an included SPREADSHEET widget. This widget depends upon a 3rd party technology called Keikai. That technology is licensed for royalty free, unlimited distribution when included as part of FWD. It is subject to the following license (X.Y.Z is a placeholder for the correct version number):

Limited License

This binary distribution of Keikai X.Y.Z ("Distribution" or "DISTRIBUTION") is made available by Golden Code Development under a limited license from Potix Corporation.  An unmodified copy of this Distribution may be copied, distributed and used ONLY within AND as part of the FWD project.   This Distribution may not be copied, distributed or used by itself.  The Distribution may not be split up or otherwise used in its component parts.  There are no limits on the number of copies made, distributed or used as long as the Distribution is included within an installation of the FWD project.  No modifications may be made to this Distribution.  No direct usage may be made of any code in this Distribution.  The FWD project contains code which accesses this Distribution and no other access is allowed.  You may not reverse engineer, regress, decompile, decipher, disassemble, or otherwise attempt to derive the source code of this Distribution.  No tampering, modification or usage of any Keikai license keys is allowed, except as intended within an installation of FWD.  Any breach of these terms immediately terminates any and all rights provided herein.


This Limited License notice must be included in unmodified form in all copies of the Distribution.

In addition, there are some files inside FWD which directly access this Keikai technology. That code is mixed with AGPLv3 code and is licensed as follows:

This program accesses a product called Keikai, which is not licensed under the AGPLv3 or any compatible license agreement.  A limited license from Potix Corporation has been arranged for use of Keikai within this source file.  Any code in this file which accesses Keikai ("Keikai Access Code") is NOT licensed via the AGPLv3.  Such access to Keikai is made via zul or by calling a Keikai API.    Although the AGPLv3 covers portions of this source file and the whole combined work of the FWD project, as a special exception, the copyright holders of this source file provide a limited license to view, copy, distribute, build and execute the Keikai Access Code.   Keikai Access Code may not be modified in any way, nor used outside of this source file.  No new Keikai Access Code may be added to this file.  The Keikai Access Code may only be copied, distributed, built or executed within and as part of the larger combined work of the FWD project.  If these limitations are a problem, you may delete all Keikai Access Code from this file OR you can contact the copyright holders of this source file to arrange for a solution.  This notice may not be deleted from this source file unless all Keikai Access Code has been removed.

Files that are subject to this limitation have the above license text included. Contact Potix if you require a development license that lifts these limitations.

3rd Party Dependencies

The FWD project depends on many 3rd party technologies. Please see the Software Dependencies for details.

© 2004-2017 Golden Code Development Corporation. ALL RIGHTS RESERVED.

fsf_agplv3_logo_155x51.png (3.47 KB) Greg Shah, 12/01/2016 02:34 PM