[jcifs] Re: Fw: SQL Server 6.5 and named pipes
eric.glass at gmail.com
Fri Jul 16 23:42:11 GMT 2004
> > We would very much appreciate your permission to incorporate the JCIFS
> > library with our driver.
> I don't think you need my permission. But I'm not an expert in the LGPL.
> > While I am fairly confident that we can
> > distribute
> > our driver under the LGPL license as of our 0.9 release (since one of our
> > users re-wrote the driver), there is a possability we may need to
> > distribute
> > it under the BSD or Open Source License.
This is covered under terms 5 and 6 of the LGPL:
5. A program that contains no derivative of any portion of the
Library, but is designed to work with the Library by being compiled or
linked with it, is called a "work that uses the Library". Such a work,
in isolation, is not a derivative work of the Library, and therefore
falls outside the scope of this License.
However, linking a "work that uses the Library" with the Library
creates an executable that is a derivative of the Library (because it
contains portions of the Library), rather than a "work that uses the
library". The executable is therefore covered by this License. Section
6 states terms for distribution of such executables.
It was determined through correspondence between the Apache folks and
the licensing guys at the FSF that Java import statement-style linking
does fall under Section 6:
This ultimately ended with Apache determining that LGPL code could not
be used (their conclusion being that it would require their
application to be LGPL licensed); I personally believe this to be an
incorrect interpretation of Section 6, which states you must do one of
the following with your code:
a) Accompany the work with the complete corresponding machine-readable
source code for the Library including whatever changes were used in
the work (which must be distributed under Sections 1 and 2 above);
and, if the work is an executable linked with the Library, with the
complete machine-readable "work that uses the Library", as object code
and/or source code, so that the user can modify the Library and then
relink to produce a modified executable containing the modified
Library. (It is understood that the user who changes the contents of
definitions files in the Library will not necessarily be able to
recompile the application to use the modified definitions.)
b) Use a suitable shared library mechanism for linking with the
Library. A suitable mechanism is one that (1) uses at run time a copy
of the library already present on the user's computer system, rather
than copying library functions into the executable, and (2) will
operate properly with a modified version of the library, if the user
installs one, as long as the modified version is interface-compatible
with the version that the work was made with.
c) Accompany the work with a written offer, valid for at least three
years, to give the same user the materials specified in Subsection 6a,
above, for a charge no more than the cost of performing this
d) If distribution of the work is made by offering access to copy from
a designated place, offer equivalent access to copy the above
specified materials from the same place.
e) Verify that the user has already received a copy of these materials
or that you have already sent this user a copy.
Item b) would (I believe) apply to Java code (as a jar file already
present on the system can be used, and a modified version of the
library can be swapped in). Alternatively, the jCIFS source can be
provided for download at the same location the application is
distributed (under item d). Or, you could just provide a statement
that the source for jCIFS will be provided upon request (under item
Section 6 *does* explicitly state that your application itself can be
distributed under terms of your choice, so the Apache statement that
any code thus distributed would need to be LGPL'd is almost certainly
In any case, I believe jTDS is already licensed under the LGPL (at
least the sourceforge project indicates this), so there wouldn't be
any "viral licensing" issues; only possible implications on
distribution terms for the jCIFS library itself (i.e. you may need to
provide access to the jCIFS source, or provide a statement that jCIFS
source will be supplied upon request). And even that is under a very
conservative interpretation of the terms.
More information about the jcifs