IANAL
I mean: do we have to publish our changes as a mere commented plain text
within SDL ? Knowing that’s the case for most
targets/devices SDL has been ported onto (eg: PS2, IPOD, Nintendo DS…) Is
it enough ?
Yes. Do this.
In case we have to publish our changes as uncommented plain text within SDL,
Please do not uncomment your source code!
do we have to provide our proprietorship (for
some, confidential) APIs in the form of header files <.h> to other
recipients… ?
I do not understand your use of the term “proprietorship” (or, I do,
and I do not understand why you are invoking this use
Here is a relevant excerpt from the tail end of Section 6 of the LGPL version 2:
“For an executable, the required form of the ‘work that uses the
Library’ must include any data and utility programs needed for
reproducing the executable from it. However, as a special exception,
the source code distributed need not include anything that is normally
distributed (in either source or binary form) with the major
components (compiler, kernel, and so on) of the operating system on
which the executable runs, unless that component itself accompanies
the executable.”
“It may happen that this requirement contradicts the license
restrictions of other proprietary libraries that do not normally
accompany the operating system. Such a contradiction means you cannot
use both them and the Library together in an executable that you
distribute.”
Interpretation:
If those header files you mention are required to compile your
modified SDL library, and they are not “normally distributed with the
major components of the operating system on which the executable
runs,” then you must make them available.
This protects the open source community from such a situation as this:
-
I upgrade an LGPL library with new functionality
-
The modified/upgraded library requires proprietary components to be compiled
-
The public will henceforth be unable to compile or modify the
modified/upgraded library
In short-hand: it is required that the public actually be able to use
your copy of SDL just as they are able to use our own copy of SDL. You
mustn’t deny us “any data and utility programs needed for reproducing
the executable from it” unless it can be reasonably assumed that we
should be responsible for furnishing those parts (as per the language
in Section 6.)
Since what is contained in header files is usually trivial, usually
containing simple macros and function prototypes, you should seek to
either:
A) Reimplement the header files independently of any licensing conflicts.
B) Seek a new license for the use and distribution of those header
files from their copyright holders.
In many cases it may turn out that the header files you intended to
use provide much more content than what you actually need for your
planned SDL upgrades. This fact may make it easier to go through A or
B above.
Are we supposed to furnish compilation tool
set, Makefiles, etc to recipients ? To allow recipients to compile our SDL
porting ? Are we supposed to furnish the libraries
our system is made of ?
Everything I said about your system’s header files applies to if you
require a special compiler. If your source code is standard and will
compile on standards-compliant compilers, or any other available
compiler, then you are not required to make a compiler available.
Include your Makefiles etc. as good measure.
(Note that when working with SDL you probably should not directly
modify your “Makefile” files, rather you should modify other
components of the build toolchain, such as “Makefile.in”.)
“work based on the library”:??? would mean our porting
SDL_downto_our_graphic_stack. Am I correct ?
Your upgrade/modification to SDL is the work based on SDL, yes.
Applications you distribute using SDL (either your modification of
it or any other LGPL-licensed copy of it) are the “work that uses the
library.”
whereas “work that uses the library”? would account for our
system/middleware. Am I still correct ?
If your system/middleware links to SDL, yes.
What is more intuitive, however, is that it is your game or
application that is being linked against SDL.
Reminder :? “If you link a program with the library, you must provide
complete object files to the recipients so that they can
relink them with the library, after making changes to the library and
recompiling it. And you must show them these terms so
they know their rights”.??? Refering to this official statement from
http://webkit.org/coding/lgpl-license.html it seems that we
have to deliver our complete system; plus generation/link mecanisms to help
recipients link. Do I well understand ?
Please see the end of Section 6, which I also excerpted earlier in this email.
Note that this text applies to “work that uses the Library,” not your
modified/upgraded SDL library. The entire source code of your
modified/upgraded SDL library is required to be “made available” as
per the language of the LGPL.
If your code is standard and does not require a special compiler, you
are not required to furnish these “data and utility programs needed
for reproducing the executable.”
That clause seems to be very permissive (no matter what corporate
confidentiality policy might be based on). Unless such a
purpose only applies in case of static link. In other words, in case of
dynamic link, involving DLL for WIN32 or .SO for I386) we
don’t have to publish our whole system-representative set of object files.
Could you confirm my assumption ?
Note once again this this text applies to “work that uses the Library.”
Is there a reason you do not prefer to make your object files available?
Thanks in advance for your further precious advice.
Thanks for asking! Now may I ask you a question?
What platform are you working with!?
What kind of application might you be working on!? :DOn Mon, Apr 6, 2009 at 5:55 AM, Jean-Pierre GOULE wrote:
–
http://codebad.com/