Licensing SDL

The SDL licensing terms are now available online at:
http://www.devolution.com/~slouken/SDL/license.html

Licensing the Simple DirectMedia Layer library----------------------------------------------

The Simple DirectMedia Layer library is currently available under the GNU
Lesser General Public License (LGPL) version 2 or newer. This license allows
you to link with the library in such a way that users can modify the library
and have your application use the new version.

The GNU LGPL license can be found online at:
http://www.gnu.org/copyleft/lgpl.html

To comply with this license, you must give prominent notice that you use the
Simple DirectMedia Layer library, and that it is included under the terms of
the LGPL license. You must include a copy of the LGPL license.
You must also do one of the following:

1. Include the source code for the version of SDL that you link with,
   as well as the full source or object code to your application so that
   the user can relink your application, 
   or
2. Include a written offer, valid for at least three years, to provide
   the materials listed in option 1, charging no more than the cost of
   providing this distribution, 
   or 
3. Make the materials listed in option 1 available from the same place
   that your application is available. 

The most common way to comply with the license is to dynamically link with
SDL, and then include the source code and appropriate notices with your
application.

See ya!
-Sam Lantinga (slouken at devolution.com)

Lead Programmer, Loki Entertainment Software

“Any sufficiently advanced bug is indistinguishable from a feature”
– Rich Kulawiec

So how does all this work? Can we get the Civ Call To Power and Heretic II
source then?

Adam.

no it means you can get dynamicly linked versions of them or the module files
to link with SDL yourself.

Adam Watkin wrote:> So how does all this work? Can we get the Civ Call To Power and Heretic II

source then?

Adam.

no it means you can get dynamicly linked versions of them or the module
files
to link with SDL yourself.

Ah righty, thought it’d have to be something like that.

Going to get pretty weird with the amount of compilers and platforms though.

Adam.

no it means you can get dynamicly linked versions of them or the module
files
to link with SDL yourself.

Ah righty, thought it’d have to be something like that.

Going to get pretty weird with the amount of compilers and platforms though.

Yep. We can’t guarantee that you’ll be able to link it, but we’ll make all
the pieces available. :slight_smile:

-Sam Lantinga				(slouken at devolution.com)

Lead Programmer, Loki Entertainment Software–
“Any sufficiently advanced bug is indistinguishable from a feature”
– Rich Kulawiec

no it means you can get dynamicly linked versions of them or the module
files
to link with SDL yourself.

Ah righty, thought it’d have to be something like that.

Going to get pretty weird with the amount of compilers and platforms though.

Remember you also don’t have to include them, just have a written commitment
to provide them to anyone who wants them, and that could mean providing a
website where they can be obtained.

I’m not a lawyer, so take my musings with the salt they deserve. :slight_smile:

-Sam Lantinga				(slouken at devolution.com)

Lead Programmer, Loki Entertainment Software–
“Any sufficiently advanced bug is indistinguishable from a feature”
– Rich Kulawiec

Adam Watkin wrote:

So how does all this work? Can we get the Civ Call To Power and Heretic II
source then?

Adam.

No. It just means that these people who use SDL in their games ought to
at least bundle a tarball of the SDL source on their CD, and in
addition, link into SDL dynamically. If their game is up for download,
they ought to have a tarball of SDL available on their site or any valid
mirror. Since SDL is such a small library, I don’t think that this will
be such a problem. I wonder why I remember Al Stevens (the C
programming columnist in DDJ) whining about this when he was preparing a
Book/CD for teaching C++ using GNU C++ some years back. Since the guy
has a CD to work with, the 11 megs even in today’s GCC tarballs isn’t
a lot…–

| Rafael R. Sevilla @Rafael_R_Sevilla |
| Instrumentation, Robotics, and Control Laboratory |

College of Engineering, University of the Philippines, Diliman

Am I missing something? I thought that if you dynamically linked to SDL
you were under NO obligation to supply the source of the app? The above
makes is clear (‘you must also do one of the following’) that you cannot
do this. Yet the following page states you can…

http://www.devolution.com/~slouken/SDL/faq/FAQ-General.html

Are those 3 points in addition to the LGPL? Or is an option missing?
Or is it covered by option 1, wherein you don’t need to supply source or
.o files for my app if SDL is a dynamic library because no recompilation
(of the app) is necessary to use newer SDL?

Basically I want to create a commercial app without having to supply the
app source to the consumer, can I do this with SDL under this license?

(and before any opensource advocates jump on me for writing commercial
apps, friend, I gotta eat. When I’ve enough money to eat then I’ll
create open source apps :slight_smile:

I just want to be perfectly clear that I can create a commercial app
without having to disclose my source.

ttfn,
JohnOn Sun, Feb 20, 2000 at 12:38:15PM -0800, Sam Lantinga wrote:

Licensing the Simple DirectMedia Layer library

You must also do one of the following:

1. Include the source code for the version of SDL that you link with,
   as well as the full source or object code to your application so that
   the user can relink your application, 
   or
2. Include a written offer, valid for at least three years, to provide
   the materials listed in option 1, charging no more than the cost of
   providing this distribution, 
   or 
3. Make the materials listed in option 1 available from the same place
   that your application is available. 

The most common way to comply with the license is to dynamically link with
SDL, and then include the source code and appropriate notices with your
application.

Sam Lantinga wrote:

To comply with this license, you must give prominent notice that you use the
Simple DirectMedia Layer library, and that it is included under the terms of
the LGPL license. You must include a copy of the LGPL license.
You must also do one of the following:

1. Include the source code for the version of SDL that you link with,
   as well as the full source or object code to your application so that
   the user can relink your application,
   or
2. Include a written offer, valid for at least three years, to provide
   the materials listed in option 1, charging no more than the cost of
   providing this distribution,
   or
3. Make the materials listed in option 1 available from the same place
   that your application is available.

Maybe I’m wrong, but AFAIK you only have to do this if you distribute the library in
binary form. If you write an application (commercial or GPL) that links dynamically
to SDL and you require the user to get SDL from another source then you dont have to
provide the source for SDL. This is the common case for most OpenSource software, as
package systems like rpm and deb separate the libraries from the programs and source
tars with configure usually dont include the libraries.

bye…

Am I missing something? I thought that if you dynamically linked to SDL
you were under NO obligation to supply the source of the app? The above
makes is clear (‘you must also do one of the following’) that you cannot
do this. Yet the following page states you can…

You have to provide the source code to the LGPL application as well as the
dynamically linked proprietary application object code so that they may
modify the LGPL application and still use it with your application. It is
important to note that the LGPL also allows any end user to
reverse-engineer your binary application/object code.–
Brian

Yes,
If you distribute the library at all, it is your responsibility to provide
the source code to it, whether you are dynamically or statically linking
to it. You must provide their own path to it, providing a link to someone
else who is distributing it does not meet the terms of the license.

If you are not shipping the LGPL library at all, you don’t have to worry
about it except that it’s a pain to the end-user.–
Brian

Maybe I’m wrong, but AFAIK you only have to do this if you distribute the library in
binary form. If you write an application (commercial or GPL) that links dynamically
to SDL and you require the user to get SDL from another source then you dont have to
provide the source for SDL. This is the common case for most OpenSource software, as
package systems like rpm and deb separate the libraries from the programs and source
tars with configure usually dont include the libraries.

Yes,
If you distribute the library at all, it is your responsibility to provide
the source code to it, whether you are dynamically or statically linking
to it. You must provide their own path to it, providing a link to someone
else who is distributing it does not meet the terms of the license.

Note that providing written commitment to provide the source code to it
also fulfills the LGPL.

I’m going to ask Scott today what that means exactly.

-Sam Lantinga				(slouken at devolution.com)

Lead Programmer, Loki Entertainment Software–
“Any sufficiently advanced bug is indistinguishable from a feature”
– Rich Kulawiec

The most common way to comply with the license is to dynamically link with
SDL, and then include the source code and appropriate notices with your
application.

Am I missing something? I thought that if you dynamically linked to SDL
you were under NO obligation to supply the source of the app? The above
makes is clear (‘you must also do one of the following’) that you cannot
do this.

Sorry, “source code to SDL”

Basically I want to create a commercial app without having to supply the
app source to the consumer, can I do this with SDL under this license?

Absolutely.

I just want to be perfectly clear that I can create a commercial app
without having to disclose my source.

Yes.
-Sam Lantinga (slouken at devolution.com)

Lead Programmer, Loki Entertainment Software–
“Any sufficiently advanced bug is indistinguishable from a feature”
– Rich Kulawiec

Maybe I’m wrong, but AFAIK you only have to do this if you distribute the library in
binary form. If you write an application (commercial or GPL) that links dynamically
to SDL and you require the user to get SDL from another source then you dont have to
provide the source for SDL. This is the common case for most OpenSource software, as
package systems like rpm and deb separate the libraries from the programs and source
tars with configure usually dont include the libraries.

That’s correct.

-Sam Lantinga				(slouken at devolution.com)

Lead Programmer, Loki Entertainment Software–
“Any sufficiently advanced bug is indistinguishable from a feature”
– Rich Kulawiec

Thanks, Sam, but just to get it totally clear, would this be ok…

  1. I supply the binary for my app dynamically linked to SDL
  2. I supply the dynamic SDL (unmodified) library
  3. I supply full details on how to get SDL (link to main SDL website)
  4. Full advertising of SDL usage (in docs and on credit screen)

As 2) is unmodified from the core SDL code is 3) sufficient?

ttfn,
JohnOn Mon, Feb 21, 2000 at 06:35:07AM -0800, Sam Lantinga wrote:

Am I missing something? I thought that if you dynamically linked to SDL
you were under NO obligation to supply the source of the app? The above
makes is clear (‘you must also do one of the following’) that you cannot
do this.

Sorry, “source code to SDL”

Basically I want to create a commercial app without having to supply the
app source to the consumer, can I do this with SDL under this license?

Absolutely.

I just want to be perfectly clear that I can create a commercial app
without having to disclose my source.

Yes.
-Sam Lantinga (slouken at devolution.com)

Thanks, Sam, but just to get it totally clear, would this be ok…

  1. I supply the binary for my app dynamically linked to SDL
  2. I supply the dynamic SDL (unmodified) library
  3. I supply full details on how to get SDL (link to main SDL website)
  4. Full advertising of SDL usage (in docs and on credit screen)

As 2) is unmodified from the core SDL code is 3) sufficient?

No. The LGPL specifically says “YOU” not any other website, must provide
them with access to SDL sources. Like Sam said, you can also provide them
with written notice that you will email them the source to the version you
use if they request it.

This is probably done because sometimes people continue to improve
libraries… and not provide back versions of them. Like the SDL website
removes links to previous versions of SDL when new ones come out.
Sometimes new libraries break compatibility with older ones, though we
know this will never happen with SDL :slight_smile:

The point is, the LGPL makes it your responsibility to provide the source
to the LGPL application you are distributing.

All you have to do is include the sourcecode to SDL on the CD you
distribute the application with.–
Brian

No. The LGPL specifically says “YOU” not any other website, must provide
them with access to SDL sources. Like Sam said, you can also provide them
with written notice that you will email them the source to the version you
use if they request it.

This is probably done because sometimes people continue to improve
libraries… and not provide back versions of them. Like the SDL website
removes links to previous versions of SDL when new ones come out.
Sometimes new libraries break compatibility with older ones, though we
know this will never happen with SDL :slight_smile:

Ahem. :slight_smile:

The point is, the LGPL makes it your responsibility to provide the source
to the LGPL application you are distributing.

That’s correct. It also helps people to see what has changed between your
version and the latest version to see if new bugs were introduced or find
out if a bug in the version you shipped with has been fixed.

Besides, it’s always a nice gesture to include source code to your
application. If you can’t provide the source for some reason, then
including source for the supporting libraries makes it fun for people
to browse and say “Wow, so that’s how they did it”. :slight_smile:

That’s how I learned programming, BTW.

See ya!
-Sam Lantinga (slouken at devolution.com)

Lead Programmer, Loki Entertainment Software–
“Any sufficiently advanced bug is indistinguishable from a feature”
– Rich Kulawiec

John Marshall wrote:

Thanks, Sam, but just to get it totally clear, would this be ok…

  1. I supply the binary for my app dynamically linked to SDL
  2. I supply the dynamic SDL (unmodified) library
  3. I supply full details on how to get SDL (link to main SDL website)
  4. Full advertising of SDL usage (in docs and on credit screen)

As 2) is unmodified from the core SDL code is 3) sufficient?

No. If you are distributing your program any way other than by network,
you must supply the source for SDL yourself on whatever media it is
you are using, e.g. any CD-ROM distribution of your program must include
the SDL source tarball you used to build your program with. It’s not
enough to provide a link to the SDL site in this case. Don’t think
that’ll be a problem, SDL being under 1 meg in size and all. But if you
just distribute your program as a download, a link to the main SDL
website is sufficient to satisfy LGPL. I’m not a lawyer, but this is my
understanding of the LGPL legalese.–

| Rafael R. Sevilla @Rafael_R_Sevilla |
| Instrumentation, Robotics, and Control Laboratory |

College of Engineering, University of the Philippines, Diliman

I’ve been watching this for a while and I’m finally going to wade in.

Ahem. :slight_smile:

There have been times where I’d be sorely tempted to break some backwards
compatibility in SDL to add some new cool features, but I haven’t… :slight_smile:

Besides, it’s always a nice gesture to include source code to your
application. If you can’t provide the source for some reason, then
including source for the supporting libraries makes it fun for people
to browse and say “Wow, so that’s how they did it”. :slight_smile:

That’s how I learned programming, BTW.

So did I. I spent a VERY educational five hours last evening hacking the
sources to AfterShock, a free Q3A engine clone thing. I might just add SDL
support to it. It’d certainly be easy enough, just creating a “uisdl.c” file.
I digress. The point of open source software for me is to let other people
learn. I don’t care about people improving it; I’m quite happy to do that. More
often than not, improvements tend to be in another coding style which drives me
bonkers! (I came home one evening to discover that a fellow programmer had
converted my entire 3D client to C++. Now I’m starting again :-)) My learning
experiences as far as graphics concerned came with Bas van Gaalen’s GFXFX.
Anybody remember those? I massacred those sources for six months at the age of
eleven until I figured out more or less how they worked. The first tiling
engine came later. 286 instructions, slow, it sucked, but boy was I proud. It
had triple parallax scrolling and ran at about 8 FPS on my 486dx/33 which is
not a bad acheivement for Borland Pascal 7.

As for including SDL on the web page of the project in question/CD/whatever, I
do it automatically as a matter of courtesy. It’s nice for the users to be able
to find what they’re looking for quickly, instead of having to dig around the
bloody country.

On a side note, anybody feel like putting together some precompiled libraries
and building instructions for SDL_Image and SDLMixer under MSVC 6? I’m finding
it to be a pain in the ass. MSDev sucks in 640x480, you have too many damn
windows.

See ya!
-Sam Lantinga (slouken at devolution.com)

Chee

No. If you are distributing your program any way other than by network,
you must supply the source for SDL yourself on whatever media it is
you are using, e.g. any CD-ROM distribution of your program must include
the SDL source tarball you used to build your program with. It’s not

This is the best way to do it, but it doesn’t have to be on that CD-ROM.
You can provide it to them in another form, but it has to come from you.
Not someone elses webpage.–
Brian