iPhone SDK <-> SDL License

Okay, so my favorite media sdk is up and running with my iPhone SDK
Simulator now.

I’m almost done with a prototype for a game already, which i would like
to create for the iPhone using SDL and the official iPhone SDK.

What do i have to make sure (SDL License wise), to be able to eventually
distribute my iPhone Application on the App Store.

This is my assumptions:

  • I have to link to SDL as a shared object.
  • I have to let the user know that i’m using the SDL library.

Please help me cast some light over it, as i certainly don’t want to
break any license rules if my application eventually is going to the App
Store :slight_smile:

Kind regards
Mathias Hansen

What do i have to make sure (SDL License wise), to be able to
eventually distribute my iPhone Application on the App Store.

This is my assumptions:

  • I have to link to SDL as a shared object.
  • I have to let the user know that i’m using the SDL library.

Please help me cast some light over it, as i certainly don’t want to
break any license rules if my application eventually is going to the
App Store :slight_smile:

Hello Mathias,

The LGPL allows you to link to the libSDL library without releasing
any code. However, if you incorporate any source code (eg: copy/paste)
or modify any libSDL source code then those changes must be made
available under the LGPL.

Hope this helps,

Jeshua Lacock
Founder/Programmer
3DTOPO Incorporated
http://3DTOPO.com
Phone: 877.240.1364On Oct 14, 2008, at 4:10 PM, Mathias Hansen wrote:

What do i have to make sure (SDL License wise), to be able to eventually
distribute my iPhone Application on the App Store.

This is my assumptions:

  • I have to link to SDL as a shared object.
  • I have to let the user know that i’m using the SDL library.

These are the normal rules for linking under the LGPL.

Unfortunately, the Apple iPhone developer agreement specifically prevents
you from dynamic linking to frameworks and dynamically loading object code.
Thus, as far as I can tell, unless you release the source for your program
there is no way to comply with the LGPL.

However, I am currently in the process of forming a small company to handle
commercial SDL licensing. The license gives you the standard rights to use
the SDL library in your application. The cost covers a single product
across all supported platforms, with discount pricing for multiple products
available.

This license is only available for SDL 1.3 and newer, and all contributors
to the SDL 1.3 code must allow me to redistribute their changes under both
the LGPL and the alternative commercial license.

Please send me private e-mail if you’re interested in pricing and more
information.

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

Unfortunately, the Apple iPhone developer agreement specifically prevents
you from dynamic linking to frameworks and dynamically loading object code.
Thus, as far as I can tell, unless you release the source for your program
there is no way to comply with the LGPL.

What’s the rationale behind that? I’d think that on an embedded system with limited storage space, you’d want to promote dynamic linking in order to keep binary sizes as small as possible.>----- Original Message ----

From: Sam Lantinga
Subject: Re: [SDL] iPhone SDK <-> SDL License

I don’t know much (read: anything) about the iPhone platform, but on other
mobile platforms (BREW and J2ME), apps live in their own sandbox.
On BREW, there are ways, if I recall correctly, to provide services based
on unique class IDs, but not many outside of Qualcomm themselves did that.
(Pretty much ALL functionality was handled this way… if you want graphics
primitives… if you want sound… if you want video playback… you had to
request it via these class IDs.)

So in the end, it’s likely that any app that uses some lib. on the iPhone would
need its own copy that lib. sitting in its own sandbox anyway, therefore,
no dynamic hoo-haw.

shrug I’ll let someone more in-the-know correct my assumptions here. ;)On Wed, Oct 15, 2008 at 02:07:42PM -0700, Mason Wheeler wrote:

What’s the rationale behind that? I’d think that on an embedded system with limited storage space, you’d want to promote dynamic linking in order to keep binary sizes as small as possible.


-bill!
“Tux Paint” - free children’s drawing software for Windows / Mac OS X / Linux!
Download it today! http://www.tuxpaint.org/

So in the end, it’s likely that any app that uses some lib. on the
iPhone would
need its own copy that lib. sitting in its own sandbox anyway,
therefore,
no dynamic hoo-haw.

You are correct, the iPhone does run applications in a sand box.

I guess I don’t understand why a lib cannot be linked if it resides in
the applications sand box…

Cheers,

Jeshua Lacock
Founder/Programmer
3DTOPO Incorporated
http://3DTOPO.com
Phone: 877.240.1364On Oct 15, 2008, at 3:11 PM, Bill Kendrick wrote:

What’s the rationale behind that?

It’s not a technical limitation; the iPhone has dynamic libraries and
frameworks like Mac OS X, and apps can link to the system libs as
such…you just can’t supply your own.

Why? I don’t know.

–ryan.

“”"

  • Or, the object files for the app are available
    (user relinks with newer SDL.
    """

So maybe you can use LGPL stuff if you make your apps object files available.

I think that satisfies all the silly requirements.On Thu, Oct 16, 2008 at 8:35 AM, Ryan C. Gordon wrote:

What’s the rationale behind that?

It’s not a technical limitation; the iPhone has dynamic libraries and
frameworks like Mac OS X, and apps can link to the system libs as such…you
just can’t supply your own.

Why? I don’t know.

–ryan.


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

As long as you are dynamically linking you’re done. The LGP does not have an
advertising clause, you dont have to tell your users that you are using SDL.On Wed, Oct 15, 2008 at 12:10 AM, Mathias Hansen wrote:

Okay, so my favorite media sdk is up and running with my iPhone SDK
Simulator now.

I’m almost done with a prototype for a game already, which i would like to
create for the iPhone using SDL and the official iPhone SDK.

What do i have to make sure (SDL License wise), to be able to eventually
distribute my iPhone Application on the App Store.

This is my assumptions:

  • I have to link to SDL as a shared object.
  • I have to let the user know that i’m using the SDL library.

Please help me cast some light over it, as i certainly don’t want to break
any license rules if my application eventually is going to the App Store :slight_smile:

Kind regards
Mathias Hansen


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

It’s not a technical limitation; the iPhone has dynamic libraries and
frameworks like Mac OS X, and apps can link to the system libs as such…you
just can’t supply your own.

You actually can provide your own .dylibs within the app bundle, too. It
requires a bit of tweaking though, but seems to work. Don’t know/remember
what the SDK license says about this, though…

// MartinOn Wed, 15 Oct 2008, Ryan C. Gordon wrote:

You actually can provide your own .dylibs within the app bundle, too. It
requires a bit of tweaking though, but seems to work. Don’t know/remember
what the SDK license says about this, though…

It says don’t. :slight_smile:

-Sam Lantinga, Lead Software Engineer, Blizzard Entertainment

You actually can provide your own .dylibs within the app bundle,
too. It
requires a bit of tweaking though, but seems to work. Don’t know/
remember
what the SDK license says about this, though…

It says don’t. :slight_smile:

I wonder if this might have been changed or if I am missing something,
because I just went over the iPhone SDK Agreement version 608 Final,
and I did not see language prohibiting dynamic libraries.

Can you point me in the right direction?

Thanks,

Jeshua Lacock
Founder/Programmer
3DTOPO Incorporated
http://3DTOPO.com
Phone: 877.240.1364On Oct 16, 2008, at 6:06 AM, Sam Lantinga wrote:

Hello there,

I have researched for a couple of hours now.

About an official confirmation, wether it is legal to run applications
on the devices using a shared library aka. dynamic linked library.

The “iPhone SDK Agreement” is the legal document, which describes the
rules.

The only thing i could find, closing to this matter, is the following part:--------------------------------------------------------------------------
3.3 Program Requirements for Applications
Any Application developed using this SDK must comply with these
criteria and requirements, as they may be modified by Apple form time to
time:

APIs and Functionality:
3.3.1 Applications may only use Published APIs in the manner prescribed
by Apple and must not use or call any unpublished or private APIs

I translate this part to: That it isn’t legally possible to acces API’s
already residing on the iPhone, which is not published by Apple already
(e.g. by dissambling, etc.)


3.3.2 An Application may not itself install or launch other executable
code by any means, including without limitation through the use of a
plugin-in architecture, calling other frameworks, other APIs or
otherwise. No interpreted code may be downloaded and used in an
Application except for code that is interpreted and run by Apple’s
Published APIs and built-in interpreter(s)

I translate this part to: That it isn’t legally possible to make an
application which intepreter(s) scripting languages, or alike … or
launch other executable code by any means …

This doesn’t specifically say anything about shared libraries.

I called the Apple Developer Connection center, and the Apple worker
told me that if the iPhone SDK Agreement, didn’t clearly state that
dynamic linking was against the terms, then he would say it wasn’t.

I suppose that this it the part, which Sam is translating to… making
dynamic linking of the SDL library a no-go?

What do you think?

Kind regards
Mathias Hansen

Sam Lantinga skrev:

What do i have to make sure (SDL License wise), to be able to eventually
distribute my iPhone Application on the App Store.

This is my assumptions:

  • I have to link to SDL as a shared object.
  • I have to let the user know that i’m using the SDL library.

These are the normal rules for linking under the LGPL.

Unfortunately, the Apple iPhone developer agreement specifically prevents
you from dynamic linking to frameworks and dynamically loading object code.
Thus, as far as I can tell, unless you release the source for your program
there is no way to comply with the LGPL.

However, I am currently in the process of forming a small company to handle
commercial SDL licensing. The license gives you the standard rights to use
the SDL library in your application. The cost covers a single product
across all supported platforms, with discount pricing for multiple products
available.

This license is only available for SDL 1.3 and newer, and all contributors
to the SDL 1.3 code must allow me to redistribute their changes under both
the LGPL and the alternative commercial license.

Please send me private e-mail if you’re interested in pricing and more
information.

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

Hello there,

I have researched for a couple of hours now.

About an official confirmation, wether it is legal to run applications on
the devices using a shared library aka. dynamic linked library.

The “iPhone SDK Agreement” is the legal document, which describes the
rules.

The only thing i could find, closing to this matter, is the following part:

While… I’m not sure if the SDK is no longer under NDA or not, it’s
available from wikileaks. Perhaps this might answer a lot of people’s
questions.

https://secure.wikileaks.org/wiki/Apple_iPhone_SDK_Agreement

-WillOn Fri, Oct 17, 2008 at 9:17 AM, Mathias Hansen wrote:

The Apple engineers are adamant that dynamic linking is covered by
3.3.2. (“Framework” is an OS X term for a dynamic library accompanied
by its headers.) They have stated so in the new iPhone Developer
Forums at http://devforums.apple.com/ (see in the Getting Started
forum when it comes back up – it’s down as I write).

For example, the only templates available for iPhone projects in Xcode
are “application” and “static library”, just to underline the point.

  • ?On Fri, Oct 17, 2008 at 3:17 PM, Mathias Hansen wrote:

Hello there,

I have researched for a couple of hours now.

Hello there,

I have researched for a couple of hours now.

About an official confirmation, wether it is legal to run applications
on the devices using a shared library aka. dynamic linked library.

It is not legal to run applications that load shared libraries or frameworks.
The SDL projects for iPhone do not build a framework, they build a static
library.

In order to distribute an application linking with SDL as a static library
you must either provide your source or object files so that someone can
relink your application with a modified version of SDL (satisfying the LGPL)
or you must contact me for commercial licensing of SDL 1.3.

Note that this option is not available for most commercial consoles, so if
you use SDL or another emulator or library that uses SDL on those consoles
you will need to contact me for commercial licensing.

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

In order to distribute an application linking with SDL as a static library
you must either provide your source or object files so that someone can
relink your application with a modified version of SDL (satisfying the LGPL)
or you must contact me for commercial licensing of SDL 1.3.

Note that this option is not available for most commercial consoles, so if
you use SDL or another emulator or library that uses SDL on those consoles
you will need to contact me for commercial licensing.

Why not just dual-license it with some less restrictive open-source license on platforms in which LGPL compliance is impossible or too difficult to be practical?>----- Original Message ----

From: Sam Lantinga
Subject: Re: [SDL] iPhone SDK <-> SDL License

Hello, i’m not sure it is the right place to ask the question but is
there a project to port SDL_MIXER on iPhone ?

Hello,

There is currently no port of SDL_Mixer for iPhone. It could probably
be done – it’s just all the dependencies need to be built for iPhone
too.

Also I’m not sure how great the performance would be versus Apple’s
audio libraries.

  • HolmesOn Oct 28, 2008, at 10:17 AM, emmanuel de roux wrote:

Hello, i’m not sure it is the right place to ask the question but is
there a project to port SDL_MIXER on iPhone ?


SDL mailing list
SDL at lists.libsdl.org
http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org

Would that be truly necessary? The point of porting a framework library is to provide the same functionality with the same interface on a different platform, not necessarily to do it in the same way. If the iPhone already has working audio libraries, why not just implement SDL_Mixer on top of them instead of whatever it’s implemented on top of on other platforms?>----- Original Message ----

From: Holmes Futrell
Subject: Re: [SDL] iPhone SDK <-> SDL Mixer

There is currently no port of SDL_Mixer for iPhone. It could probably
be done – it’s just all the dependencies need to be built for iPhone
too.

Also I’m not sure how great the performance would be versus Apple’s
audio libraries.