SDL and embedded device LGPL issue

Hi,

We are Dreamcast fan and we want to create a commercial games for dreamcast to
revive this device.

Some lib are interresting to help us do so. We especially focused on SDL graphical library (easy to use and powerfull) but we are vary annoyed by some license issues.

In fact, on the Dreamcast there is no OS, so we must use static linking to use such library. In this way, producing a commercial game code seems to be impossible for dreamcast and embedded device in general : as the .bin executable file (produce by compilation) automatically contain the sdl library and will be under LGPL license (like the SDL itself).

This fact oblige us to edit and give source code (or object file) of all the project (like says LGPL).

This situation kills the project and abandon any use of SDL :it’s very sad.

Are they any legal terms helping us using SDL to provide commercial games on dreamcast (or embedded device in general) without giving the commercial source code and by the way increase SDL use ?-------------------------------------------------------------
NetCourrier, votre bureau virtuel sur Internet : Mail, Agenda, Clubs, Toolbar…
Web/Wap : www.netcourrier.com
T?l?phone/Fax : 08 92 69 00 21 (0,34 ? TTC/min)
Minitel: 3615 NETCOURRIER (0,16 ? TTC/min)

youplala at netcourrier.com wrote:

This fact oblige us to edit and give source code (or object file) of
all the project (like says LGPL).

whats the problem for you to provide object files, avoiding your
"customers" being locked into the SDL version you desided to give him?

This situation kills the project and abandon any use of SDL :it’s
very sad.

Are they any legal terms helping us using SDL to provide commercial
games on dreamcast (or embedded device in general) without giving the
commercial source code and by the way increase SDL use ?

there is no free lunch.

best regards …
clemens

youplala at netcourrier.com wrote:

This fact oblige us to edit and give source code
(or object file) of all the project (like says LGPL).
^^^^^^^^^^^^^^^^

Are they any legal terms helping us using SDL to provide
commercial games on dreamcast (or embedded device in general)
without giving the commercial source code and by the way increase SDL use?
^^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^

Yes. “Give” the object file [*]. Duh! :^)

[*] So people can re-link if they need/want to, as per the LGPL section 6a.
It’s really all pretty cleanly stated in the LGPL, and has been discussed
around here numerous times. Check the mailing list archives.–
-bill! Tux Paint 2006 wall calendar,
bill at newbreedsoftware.com CDROM, bumper sticker & apparel
http://www.newbreedsoftware.com/ http://www.cafepress.com/newbreedsw

Here’s my stance on this.

SDL’s use of the LGPL is twofold:

  1. Allow end users to use custom versions of the library, to support bug
    fixes and improved hardware support and other enhancements.
  2. Allow any improvements made to the library for one project to benefit the
    community as a whole.

The redistribution of SDL applications falls under section 6 of the LGPL
(quoted below.) If you read it, you’ll notice that you can either link
with the library as a shared object, or provide object or source code for
your application along with any non-standard utilities required to relink
your application. You’ll also notice that you have to provide these upon
request, but do not have to distribute them with your application.

In embedded environments, I interpret this to mean that you must provide
all of the pieces necessary for someone to relink your application with
a custom version of the SDL library, assuming they have a standard development
kit for the platform. This includes any custom tools required by the build
process, and source or object code to both your application and the SDL
library.

You’ll notice that there really isn’t any special distinction between
embedded and non-embedded environments. In both cases, if you link with
a shared object you’re fine. If you link with a static object you must
provide any custom tools and machine readable object or source code needed
for someone who has a standard development environment to link with a
custom version of the library.--------------
6. As an exception to the Sections above, you may also combine or link a “work that uses the Library” with the Library to produce a work containing portions of the Library, and distribute that work under terms of your choice, provided that the terms permit modification of the work for the customer’s own use and reverse engineering for debugging such modifications.

You must give prominent notice with each copy of the work that the Library is used in it and that the Library and its use are covered by this License. You must supply a copy of this License. If the work during execution displays copyright notices, you must include the copyright notice for the Library among them, as well as a reference directing the user to the copy of this License. Also, you must do one of these things:

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 distribution.
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.

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 materials to be 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.

-Sam Lantinga, Senior Software Engineer, Blizzard Entertainment

FYI, SDL is now under the LGPL 2.1, and I’ve updated the license page:
http://www.libsdl.org/license.php

See ya!
-Sam Lantinga, Senior Software Engineer, Blizzard Entertainment