Previous: License Notices, Up: Legal Matters


4.6 External Libraries

When maintaining an FSF-copyrighted GNU package, you may occasionally want to use a general-purpose free software module which offers a useful functionality, as a “library” facility (though the module is not always packaged technically as a library).

In a case like this, it would be unreasonable to ask the author of that module to assign the copyright to the FSF. After all, person did not write it specifically as a contribution to your package, so it would be impertinent to ask per, out of the blue, “Please give the FSF your copyright.”

So the thing to do in this case is to make your program use the module, but not consider it a part of your program. There are two reasonable methods of doing this:

  1. Assume the module is already installed on the system, and use it when linking your program. This is only reasonable if the module really has the form of a library.
  2. Include the module in your package, putting the source in a separate subdirectory whose README file says, “This is not part of the GNU FOO program, but is used with GNU FOO.” Then set up your makefiles to build this module and link it into the executable.

    For this method, it is not necessary to treat the module as a library and make a ‘.a’ file from it. You can link with the ‘.o’ files directly in the usual manner.

Both of these methods create an irregularity, and our lawyers have told us to minimize the amount of such irregularity. So consider using these methods only for general-purpose modules that were written for other programs and released separately for general use. For anything that was written as a contribution to your package, please get papers signed.