tags:

views:

74

answers:

1

I would like to release a smallish piece of software under the GPLv3. It is written in C# for the .NET 3.5 SP1 framework. It also uses the MEF library, which is released under the MS-PL. The MS-PL is not GPL compatible. However, the MEF library is eventually going to be rolled into the .NET 4 release, and at that time, it becomes a system library and it won't matter anymore.

I would still like the release the code sooner rather than later, just to get some feedback and to get the code out there for early adopters (release early, release often). I understand that I can write an exception under section 7 of the GPLv3 that would allow recipients to link this code with this specific library.

What would this exception look like? Does it go in a separate file next to the LICENSE file in the project directory? Do I have to mention the exception in all the file headers too? I know of the ClassPath exception, but does anyone know of a case where an exception for a specific library was made, as an example?

A: 

I have found an example in the open source project Vidalia. You can see their LICENSE file to see how they allowed linking to OpenSSL:

=======
LICENSE
=======

This program is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License (GPL) as published by
the Free Software Foundation; either version 2 of the License, or (at
your option) any later version. The full text of versions 2 and 3 of
the GPL can be found respectively in the files LICENSE-GPLV2 and
LICENSE-GPLV3.

EXCEPTION: This distribution of Vidalia may be linked against OpenSSL
according to the terms of the section below entitled "OpenSSL Exception."

This program is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General
Public License for more details.

You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.


                       _OpenSSL Exception_

0. Definitions

"Vidalia" means Vidalia software licensed under version 2 or any later
version of the GNU General Public License (collectively, "GPL"), or a
work based on such software and licensed under the GPL.

"OpenSSL" means OpenSSL toolkit software distributed by the OpenSSL
Project and licensed under the OpenSSL Licenses, or a work based on such
software and licensed under the OpenSSL Licenses.

"OpenSSL Licenses" means the OpenSSL License and Original SSLeay License
under which the OpenSSL Project distributes the OpenSSL toolkit software,
as those licenses appear in the file LICENSE-OPENSSL.

1. Exception

You have permission to copy, modify, propagate, and distribute a work
formed by combining OpenSSL with Vidalia, or a work derivative of such a
combination, even if such copying, modification, propagation, or
distribution would otherwise violate the terms of the GPL. You must
comply with the GPL in all respects for all of the code used other than
OpenSSL.

You may include this OpenSSL Exception and its grant of permissions when
you distribute Vidalia.  Inclusion of this notice with such a
distribution constitutes a grant of such permission.  If you do not wish
to grant these permissions, remove this section entitled "OpenSSL
Exception" from your distribution.
Scott Whitlock

related questions