Embedded license? (SDL contributers please read!)

Yup, it would be cool to general allow static linking.

fwiw, most people seem to think “wow, it’s way more convenient for me to
statically link SDL” until it doesn’t work on someone’s system, because
some system interface changed or they want to target something other
than X11/fbcon/whatever. Then it’s really nice to be able to swap the
library (and only the library) out.

Things that touch multimedia interfaces (SDL, OpenAL) seem to break
every six months to a year on Linux, so having that nicely isolated is a
HUGE help for me.

Frankly, I’m inclined to say generally allowing static linking on all
platforms is only going to cause problems that people don’t even know
are problems until it’s too late.

–ryan.

Hello !

Frankly, I’m inclined to say generally allowing static linking on all
platforms is only going to cause problems that people don’t even know are
problems until it’s too late.

Maybe you are right. Personally i hate all these license stuff,
more rights for Coders :slight_smile:

The solution LGPL + staticlinking for emb. plattforms
and for plattforms where is no dyn. linking available
should make everyone happy.

CU

In my understanding, you can already do this, so long as a dynamically-
linked version is also available. This is part of the main difference
between the LGPL and GPL. Am I misunderstanding this?

I don’t see any reason why you’d want to distrib a statically linked
version of it though, if you don’t have to. You can always just distrib
the shared lib (or dll) along with the executable in case it’s not on
the system. Am I missing something here too?On Thu, Oct 27, 2005 at 08:42:51PM +0200, Torsten Giebl wrote:

Hello !

That would completely change the whole idea. This would mean you’d be
back to proprietary games just releasing a single binary and if a new piece
of hardware isn’t supported by the statically linked version od SDL, you
are once-again screwed. I think (hope?) that Sam doesn’t want to see this
happen to SDL.

Okay, this would be more than Sam wanted, but it would
allow people to choose whether they want to distr. the
binary stat. or dynam. For me it is always good if the coder
has more rights than less.


Steaphan Greene
GPG public key: http://www.cs.binghamton.edu/~sgreene/gpg.key.txt
-------------- next part --------------
A non-text attachment was scrubbed…
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: http://lists.libsdl.org/pipermail/sdl-libsdl.org/attachments/20051027/eaa7b2ea/attachment.pgp

Some distribution methods make this impossible. Take BREW applications
for cellphones, for example. The only way to get the game is via
downloading it from your carrier. The only way for developers/publishers
to get it out there is by having the carrier approve it… this usually
involves expensive testing (up to $1000 per app per phone).

So, if I were to somehow be able to use SDL (or any other LGPL) code in
a BREW app, there’s no way that the end user could swap the LGPL’d library
in and out. Even if I released the object code to the app, for re-linking
statically, the end user would probably not be able to build their own
version of the app. And even if they DID, they’d have no way of getting
it on the phone to run.

THIS kind of situation is where an alternate license for embedded use makes
sense with SDL (and other LGPL libs).On Thu, Oct 27, 2005 at 05:31:01PM -0400, Steaphan Greene wrote:

I don’t see any reason why you’d want to distrib a statically linked
version of it though, if you don’t have to. You can always just distrib
the shared lib (or dll) along with the executable in case it’s not on
the system. Am I missing something here too?


-bill!
bill at newbreedsoftware.com
http://www.newbreedsoftware.com/

Yeah, I’d agree. That’s what my qualification of "if you don’t have to"
was about. The situation you mention is a situation where I’d consider
you have to distribute a statically linked version.On Thu, Oct 27, 2005 at 02:51:55PM -0700, Bill Kendrick wrote:

On Thu, Oct 27, 2005 at 05:31:01PM -0400, Steaphan Greene wrote:

I don’t see any reason why you’d want to distrib a statically linked
version of it though, if you don’t have to. You can always just distrib
the shared lib (or dll) along with the executable in case it’s not on
the system. Am I missing something here too?

Some distribution methods make this impossible. Take BREW applications
for cellphones, for example. The only way to get the game is via
downloading it from your carrier. The only way for developers/publishers
to get it out there is by having the carrier approve it… this usually
involves expensive testing (up to $1000 per app per phone).

So, if I were to somehow be able to use SDL (or any other LGPL) code in
a BREW app, there’s no way that the end user could swap the LGPL’d library
in and out. Even if I released the object code to the app, for re-linking
statically, the end user would probably not be able to build their own
version of the app. And even if they DID, they’d have no way of getting
it on the phone to run.

THIS kind of situation is where an alternate license for embedded use makes
sense with SDL (and other LGPL libs).


Steaphan Greene
GPG public key: http://www.cs.binghamton.edu/~sgreene/gpg.key.txt
-------------- next part --------------
A non-text attachment was scrubbed…
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: http://lists.libsdl.org/pipermail/sdl-libsdl.org/attachments/20051027/04502960/attachment.pgp

So, if I were to somehow be able to use SDL (or any other LGPL) code in
a BREW app, there’s no way that the end user could swap the LGPL’d library
in and out. Even if I released the object code to the app, for re-linking
statically, the end user would probably not be able to build their own
version of the app. And even if they DID, they’d have no way of getting
it on the phone to run.

THIS kind of situation is where an alternate license for embedded use makes
sense with SDL (and other LGPL libs).

Perhaps I’m misunderstanding this, but why would a separate license be
needed?

IANAL, but I interpret the LGPL in the following manner:

  1. The LGPL allows static linking if the object files are made available
    to dynamically link. (Section 6 & 6a)

  2. The object files do not need to be shipped with the statically linked
    binary. (Section 6c, 6d & 6e)

  3. There is no requirement, as far as I can tell, to make it easy for
    the end user to replace the statically linked version with a dynamically
    linked version. (The closest thing that I could find to this is section
    6b.)

If I am not horribly misunderstanding any of these points, what is to
prevent one from using the LGPL on any cell phone or other embedded
system, as long as one provides a written offer to provide the source
code to end users over the web, email, snail mail or other means?

Why go to the complexity of dual-licensing SDL if statically compiled
embedded binaries can be used under the LGPL?

Just my $.02On Thu, 27 Oct 2005, Bill Kendrick wrote:


Any sufficiently advanced incompetence is indistinguishable from malice.
- Vernon Schryver

Steaphan Greene wrote:

Hello !

That would completely change the whole idea. This would mean you’d be
back to proprietary games just releasing a single binary and if a new piece
of hardware isn’t supported by the statically linked version od SDL, you
are once-again screwed. I think (hope?) that Sam doesn’t want to see this
happen to SDL.

Okay, this would be more than Sam wanted, but it would
allow people to choose whether they want to distr. the
binary stat. or dynam. For me it is always good if the coder
has more rights than less.

In my understanding, you can already do this, so long as a dynamically-
linked version is also available. This is part of the main difference
between the LGPL and GPL. Am I misunderstanding this?

I don’t see any reason why you’d want to distrib a statically linked
version of it though, if you don’t have to. You can always just distrib
the shared lib (or dll) along with the executable in case it’s not on
the system. Am I missing something here too?

The way I’ve deciphered the legalese:
GPL - Any use of the software covered by the GPL license must be
provided in source form, as well as any derivative work. This means
that if libfoo is GPL, and you make a program called BAR, then the
source code must be distributed with the binary and use a license that
is compatible (read: doesn’t conflict with any of the GPL licensing issues).

LGPL - Any use of the software covered by the LGPL license is not
required to be provided in source form, nor is a derivative work, as
long as the LGPL work is not included physically into the work using or
deriving from the LGPL work. Since statically linking includes the code
and symbols for the library, that would mean you must make the program
you made available in source form. In this instance, libfoo is LGPL and
if you link BAR statically you must provide the source code for both (in
some manner). However, if you link BAR dynamically to libfoo then you
may distribute BAR without any restrictions (unless of course you use a
different licensing scheme, etc) aside from the notable mention set
forth in the LGPL.

This is a severely dumbed down version of how the GPL and LGPL
licenses break down, and by no means should be used verbatim as a
definition of either. If you really need to know about what you can
or can’t do under those licenses, or using software that does, consult
an attorney. Seriously.
Mind you, there are other similar licenses. However, most of those
licenses either have certain caveats that aren’t obvious, or are lacking
in some serious way which can fail to protect your work.

Perhaps there are existing licenses which will work for what Sam wants
to do. Personally the zlib license has always appealed to me
personally…however…
The Apache Software License appears to be exactly what I would be going
for if I were in Sams shoes: http://www.opensource.org/licenses/apachepl.php
Basically: notable mention, no restrictions aside from not claiming you
made the library, or using the libraries name anywhere in the name of
your product.
Nice and liberal, while still maintaining that balance.

-Elden>On Thu, Oct 27, 2005 at 08:42:51PM +0200, Torsten Giebl wrote:



SDL mailing list
SDL at libsdl.org
http://www.libsdl.org/mailman/listinfo/sdl


No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.1.361 / Virus Database: 267.12.5/150 - Release Date: 10/27/2005

Steaphan Greene wrote:

Hello !

That would completely change the whole idea. This would mean you’d be
back to proprietary games just releasing a single binary and if a new
piece of hardware isn’t supported by the statically linked version od
SDL, you are once-again screwed. I think (hope?) that Sam doesn’t want
to see this happen to SDL.

Okay, this would be more than Sam wanted, but it would
allow people to choose whether they want to distr. the
binary stat. or dynam. For me it is always good if the coder
has more rights than less.

In my understanding, you can already do this, so long as a dynamically-
linked version is also available. This is part of the main difference
between the LGPL and GPL. Am I misunderstanding this?

I don’t see any reason why you’d want to distrib a statically linked
version of it though, if you don’t have to. You can always just distrib
the shared lib (or dll) along with the executable in case it’s not on
the system. Am I missing something here too?

The way I’ve deciphered the legalese:
GPL - Any use of the software covered by the GPL license must be
provided in source form, as well as any derivative work. This means
that if libfoo is GPL, and you make a program called BAR, then the
source code must be distributed with the binary and use a license that
is compatible (read: doesn’t conflict with any of the GPL licensing
issues).

LGPL - Any use of the software covered by the LGPL license is not
required to be provided in source form, nor is a derivative work, as
long as the LGPL work is not included physically into the work using or
deriving from the LGPL work. Since statically linking includes the code
and symbols for the library, that would mean you must make the program
you made available in source form. In this instance, libfoo is LGPL and
if you link BAR statically you must provide the source code for both (in
some manner). However, if you link BAR dynamically to libfoo then you
may distribute BAR without any restrictions (unless of course you use a
different licensing scheme, etc) aside from the notable mention set
forth in the LGPL.

This is a severely dumbed down version of how the GPL and LGPL
licenses break down, and by no means should be used verbatim as a
definition of either. If you really need to know about what you can
or can’t do under those licenses, or using software that does, consult
an attorney. Seriously.
Mind you, there are other similar licenses. However, most of those
licenses either have certain caveats that aren’t obvious, or are lacking
in some serious way which can fail to protect your work.

Perhaps there are existing licenses which will work for what Sam wants
to do. Personally the zlib license has always appealed to me
personally…however…
The Apache Software License appears to be exactly what I would be going
for if I were in Sams shoes:
http://www.opensource.org/licenses/apachepl.php Basically: notable mention,
no restrictions aside from not claiming you made the library, or using the
libraries name anywhere in the name of your product.
Nice and liberal, while still maintaining that balance.

-Elden

Merits aside, I guess Apache license is out of question because it is not
GPL-compatible. A lot of SDL-based games are GPL and I think it would be a
hassle to just ask them all to change their license.

By the way, what do you like about it? Doesn’t it have actually more
restrictions than the LGPL and even GPL?

Cheers,
RicardoEm Sexta 28 Outubro 2005 01:14, o Elden Armbrust escreveu:

On Thu, Oct 27, 2005 at 08:42:51PM +0200, Torsten Giebl wrote:


How come only your friends step on your new white sneakers?

P? Fri, 28 Oct 2005 02:14:02 +0200, skrev Elden Armbrust
:

LGPL - Any use of the software covered by the LGPL license is not
required to be provided in source form, nor is a derivative work, as
long as the LGPL work is not included physically into the work using or
deriving from the LGPL work. Since statically linking includes the code
and symbols for the library, that would mean you must make the program
you made available in source form. (…)

This is wrong. All you have to do is provide a way to relink your
application with a modified version of the LGPL-licensed library.
This can be achieved without providing source code, for example by
providing object files in stead.

Perhaps there are existing licenses which will work for what Sam wants
to do. Personally the zlib license has always appealed to me
personally…however…

I’m a big fan of the Zlib license myself, but it’s a big step from the
LGPL. It would mean that anyone would be able to modify SDL without
sharing their changes, for example.

The Apache Software License appears to be exactly what I would be going
for if I were in Sams shoes:

Bad idea. The Apache Software License is incompatible with the GPL.
(see http://www.gnu.org/licenses/license-list.html)

  • Gerry

Ricardo Cruz wrote:>Em Sexta 28 Outubro 2005 01:14, o Elden Armbrust escreveu:

Steaphan Greene wrote:

On Thu, Oct 27, 2005 at 08:42:51PM +0200, Torsten Giebl wrote:

Hello !

That would completely change the whole idea. This would mean you’d be
back to proprietary games just releasing a single binary and if a new
piece of hardware isn’t supported by the statically linked version od
SDL, you are once-again screwed. I think (hope?) that Sam doesn’t want
to see this happen to SDL.

Okay, this would be more than Sam wanted, but it would
allow people to choose whether they want to distr. the
binary stat. or dynam. For me it is always good if the coder
has more rights than less.

In my understanding, you can already do this, so long as a dynamically-
linked version is also available. This is part of the main difference
between the LGPL and GPL. Am I misunderstanding this?

I don’t see any reason why you’d want to distrib a statically linked
version of it though, if you don’t have to. You can always just distrib
the shared lib (or dll) along with the executable in case it’s not on
the system. Am I missing something here too?

The way I’ve deciphered the legalese:
GPL - Any use of the software covered by the GPL license must be
provided in source form, as well as any derivative work. This means
that if libfoo is GPL, and you make a program called BAR, then the
source code must be distributed with the binary and use a license that
is compatible (read: doesn’t conflict with any of the GPL licensing
issues).

LGPL - Any use of the software covered by the LGPL license is not
required to be provided in source form, nor is a derivative work, as
long as the LGPL work is not included physically into the work using or
deriving from the LGPL work. Since statically linking includes the code
and symbols for the library, that would mean you must make the program
you made available in source form. In this instance, libfoo is LGPL and
if you link BAR statically you must provide the source code for both (in
some manner). However, if you link BAR dynamically to libfoo then you
may distribute BAR without any restrictions (unless of course you use a
different licensing scheme, etc) aside from the notable mention set
forth in the LGPL.

This is a severely dumbed down version of how the GPL and LGPL
licenses break down, and by no means should be used verbatim as a
definition of either. If you really need to know about what you can
or can’t do under those licenses, or using software that does, consult
an attorney. Seriously.
Mind you, there are other similar licenses. However, most of those
licenses either have certain caveats that aren’t obvious, or are lacking
in some serious way which can fail to protect your work.

Perhaps there are existing licenses which will work for what Sam wants
to do. Personally the zlib license has always appealed to me
personally…however…
The Apache Software License appears to be exactly what I would be going
for if I were in Sams shoes:
http://www.opensource.org/licenses/apachepl.php Basically: notable mention,
no restrictions aside from not claiming you made the library, or using the
libraries name anywhere in the name of your product.
Nice and liberal, while still maintaining that balance.

-Elden

Merits aside, I guess Apache license is out of question because it is not
GPL-compatible. A lot of SDL-based games are GPL and I think it would be a
hassle to just ask them all to change their license.

By the way, what do you like about it? Doesn’t it have actually more
restrictions than the LGPL and even GPL?

Cheers,
Ricardo

Maybe I should have been more clear. I like the zlib license because it
gives almost complete control to the developer. You can open source it,
you can closed source, whatever you want. Now, for the Apache license:
in terms of number of restrictions, yes there are more restrictions as
far as I know. As for the severity of those restrictions, however, that
is where the true difference lies. I’ll copy the two licenses below
(abridged, of course), followed by a good reason for my feelings on it.
(Work was easy today, so I’m in the mood for a little conversation.

Apache license:

  1. Redistributions of source code must retain the above copyright
    notice, this list of conditions and the following disclaimer. {Self
    explanatory}

  2. Redistributions in binary form must reproduce the above copyright
    notice, this list of conditions and the following disclaimer in the
    documentation and/or other materials provided with the distribution.
    [Again, self explanatory]

  3. The end-user documentation included with the redistribution, if any,
    must include the following acknowledgment:

    “This product includes software developed by […].”

Alternately, this acknowledgment may appear in the software itself, […]
{This is actually one of the points that makes this license ideal for
the embedded version, in my mind.}

  1. The names […] must not be used to endorse or promote products
    derived […]
    {Standard jargon for a good number of licenses}

  2. Products derived from this software may not be called “Apache”, nor
    may “Apache” appear in their name, without prior written permission
    […] {This is beneficial, as someone might make a very bad game about
    something raunchy, controversial, etc. and stick SDL to it for some free
    press ™}

Of course, all references to Apache would be changed, as it would be a
modified Apache license when used with SDL.

Now, the (current) LGPL license:

  TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

1. You may copy and distribute verbatim copies of the Library’s
complete source code as you receive it,[…] and distribute a copy of
this License along with the Library.[…] {You can copy it. Duh.}

2. You may modify your copy or copies of the Library or any portion of
it, thus forming a work based on the Library, […] meet all of these
conditions:

a) The modified work must itself be a software library.

b) You must cause the files modified to carry prominent notices
stating that you changed the files and the date of any change.

c) You must cause the whole of the work to be licensed at no charge
to all third parties under the terms of this License.

d) If a facility in the modified Library [...]
{Not pertinent in this instance.}

3. You may opt to apply the terms of the ordinary GNU General Public
License instead of this License […] Do not make any other change in
these notices.

Once this change is made in a given copy, it is irreversible for that
copy, […]

4. You may copy and distribute the Library (or a portion or derivative
of it, under Section 2) in object code or executable form under the
terms of Sections 1 and 2 above provided that you accompany it with the
complete corresponding machine-readable source code, which must be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange. {Here is where the problems
begin. How do you supply machine readable source code which may well
contain source code licensed under a closed, and possibly covered by a
non-disclosure agreement, which isn’t unheard of on embedded systems}

If distribution of object code is made by offering access to copy from a
designated place, then offering equivalent access to copy the source
code from the same place satisfies the requirement to distribute the
source code, even though third parties are not compelled to copy the
source along with the object code. {This clears up the above paragraph a
bit, basically allowing you to offer it from the same place as the
binary, though not requiring it be bundled with it.}

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. {And here is where we really
get into trouble.}

When a “work that uses the Library” uses material from a header file
that is part of the Library, the object code for the work may be a
derivative work of the Library even though the source code is not.
Whether this is true is especially significant if the work can be linked
without the Library, or if the work is itself a library. The threshold
for this to be true is not precisely defined by law.

If such an object file uses only numerical parameters, data structure
layouts and accessors, and small macros and small inline functions (ten
lines or less in length), then the use of the object file is
unrestricted, regardless of whether it is legally a derivative work.
(Executables containing this object code plus portions of the Library
will still fall under Section 6.)

Otherwise, if the work is a derivative of the Library, you may
distribute the object code for the work under the terms of Section 6.
Any executables containing that work also fall under Section 6, whether
or not they are linked directly with the Library itself.

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.) {Here it is, the dreaded paragraph
that keeps many companies away from the L/GPL licenses.  If you use
the library and link statically you have to provide your executables
code.  Period.)

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.
{This is the exception built-in for shared linking.}

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.
{This is nice, but when building for an embedded device, shared
linking isn't always guaranteed}

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.
{Same as above applies.}

e) Verify that the user has already received a copy of these
materials or that you have already sent this user a copy. {Moot.}

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.

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. {Again,
this applies specifically to the embedded device market in this case.}

[Snip.]
{What follows is unrelated to the topic at hand.}

Assume the following:
Joe Shmoe makes a game, “Foobar the blogmeister.” for the Sony PSP.
(Assuming that…) The Sony PSP cannot link to shared libraries, and
therefore must be linked statically.
The PSP SDK contains software which restricts the free distribution of
the code contained. (Read: You can’t give away the SDK or any part thereof.)
Now Joe wants to use SDL to handle all the menial work and get his game
working quickly.
Picture a large flashing “NO!” sign. That’s exactly the answer he’d get
from a lawyer when asked if he could use SDL.
SDL, according to the LGPL, requires that the source code to a work
which links statically must be available to the public.
However, Sonys PSP SDK almost certainly will not allow the source code
of their work to be given away.
Likewise, the game itself might be the next Quake/Half-Life/Unreal which
Joe wants to keep hidden from prying eyes which might steal his work.
Even without looking at company specific terms, the UMD used by the PSP
is unreadable (as far as I know) on anything but a PSP. This means that
Joe must offer his source code via mail, the internet, or some other means.
There are a myriad of reasons not to use the LGPL/GPL license on an
embedded platform, but very few that would warrant using it.

Don’t get me wrong, the LGPL/GPL licenses are great, but not
particularly conducive for use on an embedded platform.
Remember that while many of us might not have a problem with open
sourcing our software, most companies are firmly against it still.
Feel free to comment, take this to another conversation, do as you wish.
Consider my comments LGPL’ed. :wink:

-Elden Armbrust

Gerry JJ wrote:

P? Fri, 28 Oct 2005 02:14:02 +0200, skrev Elden Armbrust
<@Elden_Armbrust>:

LGPL - Any use of the software covered by the LGPL license is not
required to be provided in source form, nor is a derivative work, as
long as the LGPL work is not included physically into the work using
or deriving from the LGPL work. Since statically linking includes
the code and symbols for the library, that would mean you must make
the program you made available in source form. (…)

This is wrong. All you have to do is provide a way to relink your
application with a modified version of the LGPL-licensed library.
This can be achieved without providing source code, for example by
providing object files in stead.

Not wrong. Quote: “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”

Notice the and/or. It means object code AND source code, or just source
code. Feel free to read the whole section, in full, at section 6a in
the LGPL license.

Perhaps there are existing licenses which will work for what Sam
wants to do. Personally the zlib license has always appealed to me
personally…however…

I’m a big fan of the Zlib license myself, but it’s a big step from the
LGPL. It would mean that anyone would be able to modify SDL without
sharing their changes, for example.

The Apache Software License appears to be exactly what I would be
going for if I were in Sams shoes:

Bad idea. The Apache Software License is incompatible with the GPL.
(see http://www.gnu.org/licenses/license-list.html)

Considering that Sam holds the copyright on SDL (as far as I know) then
he has the right to release it under any terms he wishes, even if that
means that use on embedded systems utilizes a different, incompatible,
license altogether. The very ideas he proposed in his first mail to the
list concerning this would technically violate the LGPL license, as I
stated above concerning static linking.> - Gerry


SDL mailing list
SDL at libsdl.org
http://www.libsdl.org/mailman/listinfo/sdl

P? Fri, 28 Oct 2005 04:23:25 +0200, skrev Elden Armbrust
:

Gerry JJ wrote:

P? Fri, 28 Oct 2005 02:14:02 +0200, skrev Elden Armbrust
:

LGPL - Any use of the software covered by the LGPL license is not
required to be provided in source form, nor is a derivative work, as
long as the LGPL work is not included physically into the work using
or deriving from the LGPL work. Since statically linking includes
the code and symbols for the library, that would mean you must make
the program you made available in source form. (…)

This is wrong. All you have to do is provide a way to relink your
application with a modified version of the LGPL-licensed library.
This can be achieved without providing source code, for example by
providing object files in stead.

Not wrong. Quote: “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”

Well, IANAL, but you’re still wrong. You must provide source code for
the library, but not the application (or “work that uses the Library”).

Notice the and/or. It means object code AND source code, or just source
code. Feel free to read the whole section, in full, at section 6a in
the LGPL license.

Exactly, notice the and/or. And/or is an “inclusive or”, in contrast
to an exclusive or, meaning “either, or, or both”. In other words, you
can either provide source code for the “work that uses the Library”,
or provide object code for it, or both. Note how this makes only
providing object code for “work that uses the Library” an option.

  • Gerry

“Torsten Giebl” wrote:

Okay, this would be more than Sam wanted, but it would
allow people to choose whether they want to distr. the
binary stat. or dynam. For me it is always good if the coder
has more rights than less.

the (L)GPL is ALL about protecting the user, nothing more nothing less.

“Torsten Giebl” wrote:

Frankly, I’m inclined to say generally allowing static linking on
all platforms is only going to cause problems that people don’t even
know are problems until it’s too late.

Maybe you are right. Personally i hate all these license stuff,
more rights for Coders :slight_smile:

without wanting to sound rude or something, but frankly you clearly
lack a deeper understanding of the (L)GPL. by releasing software under
the (L)GPL nobody gave up his rights, ever. it grants other peoples a
certain set of rights to deal with this software, that nobody can take
away, even a “coder”.

best regards …
clemens

Elden Armbrust wrote:

LGPL - Any use of the software covered by the LGPL license is not
required to be provided in source form, nor is a derivative work,
as > long as the LGPL work is not included physically into the work
using > or deriving from the LGPL work. Since statically linking
includes > the code and symbols for the library, that would mean you
must make > the program you made available in source form. (…)

This is wrong. All you have to do is provide a way to relink your
application with a modified version of the LGPL-licensed library.
This can be achieved without providing source code, for example by
providing object files in stead.

Not wrong. Quote: “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”

Notice the and/or. It means object code AND source code, or just
source code. Feel free to read the whole section, in full, at section
6a in the LGPL license.

please read the (L)GPL FAQ on gnu.org. you are misguiding people and
your wrong claims will show up in the archives, what will make it even
worse.

clemens

“Gerry JJ” wrote:

Notice the and/or. It means object code AND source code, or just
source code. Feel free to read the whole section, in full, at
section 6a in the LGPL license.

Exactly, notice the and/or. And/or is an “inclusive or”, in contrast
to an exclusive or, meaning “either, or, or both”. In other words,
you can either provide source code for the “work that uses the
Library”,or provide object code for it, or both. Note how this
makes only providing object code for “work that uses the Library” an
option.

100% correct.

Elden Armbrust wrote:

[…]

Joe Shmoe makes a game, “Foobar the blogmeister.” for the Sony PSP.
(Assuming that…) The Sony PSP cannot link to shared libraries, and
therefore must be linked statically.
The PSP SDK contains software which restricts the free distribution of
the code contained. (Read: You can’t give away the SDK or any part
thereof.) Now Joe wants to use SDL to handle all the menial work and
get his game working quickly.
Picture a large flashing “NO!” sign. That’s exactly the answer he’d
get from a lawyer when asked if he could use SDL.
SDL, according to the LGPL, requires that the source code to a work
which links statically must be available to the public.

repeating a false claim over and over again, does not make it correct.
but thats not the point here …

[…]

Don’t get me wrong, the LGPL/GPL licenses are great, but not
particularly conducive for use on an embedded platform.
Remember that while many of us might not have a problem with open
sourcing our software, most companies are firmly against it still.

why is the GPL a good license? because it supports the free software
and not the proprietary. so the LGPL is lesser good? yes, because even
proprietary software can make use of LGPLed code, not just free.

if people want to use free libs the should just accept that they have to
comply to the license. at the end we want to have more free software not
more proprietary, at least i do.

best regards …
clemens

Not wrong. Quote: “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”

Notice the and/or. It means object code AND source code, or just
source code. Feel free to read the whole section, in full, at section
6a in the LGPL license.

please read the (L)GPL FAQ on gnu.org. you are misguiding people and
your wrong claims will show up in the archives, what will make it even
worse.

Perhaps this page discussing how the LGPL works with Java would clarify
the issue:

http://www.gnu.org/licenses/lgpl-java.html

Unfortunately, I can only find a GPL FAQ on gnu.org, which only mentions
the LGPL a few times. A nice LGPL faq would clarify a few things.On Fri, 28 Oct 2005, Clemens Kirchgatterer wrote:


Any sufficiently advanced incompetence is indistinguishable from malice.
- Vernon Schryver

Clemens Kirchgatterer wrote:

Elden Armbrust <@Elden_Armbrust> wrote:

LGPL - Any use of the software covered by the LGPL license is not
required to be provided in source form, nor is a derivative work,

as > long as the LGPL work is not included physically into the work
using > or deriving from the LGPL work. Since statically linking
includes > the code and symbols for the library, that would mean you
must make > the program you made available in source form. (…)

This is wrong. All you have to do is provide a way to relink your
application with a modified version of the LGPL-licensed library.
This can be achieved without providing source code, for example by
providing object files in stead.

Not wrong. Quote: “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”

Notice the and/or. It means object code AND source code, or just
source code. Feel free to read the whole section, in full, at section
6a in the LGPL license.

please read the (L)GPL FAQ on gnu.org. you are misguiding people and
your wrong claims will show up in the archives, what will make it even
worse.

clemens

Flooding the archives with the same response won’t help either,
especially in the same thread. The reason I failed to respond until now
was 1) I work and don’t have the time to read every email the moment it
comes in, and 2) I’ve emailed the folks at gnu.org to get clarification
of this from an authoritative source. And/or has been used various ways
throughout history, either inclusively or exclusively.
According to the American Heritage Dictionary, Gerry is quite right.
However, that is the inclusive use of the statement. (Any use of
"and/or" is technically grammatically incorrect, inclusive, exclusive,
or otherwise…but I digress.) I will happily admit my mistake, if in
fact I am mistaken.

-Elden

Notice the and/or. It means object code AND source code, or just
source code. Feel free to read the whole section, in full, at section
6a in the LGPL license.

please read the (L)GPL FAQ on gnu.org. you are misguiding people and
your wrong claims will show up in the archives, what will make it even
worse.

clemens

Flooding the archives with the same response won’t help either,
especially in the same thread. The reason I failed to respond until now
was 1) I work and don’t have the time to read every email the moment it
comes in, and 2) I’ve emailed the folks at gnu.org to get clarification
of this from an authoritative source. And/or has been used various ways
throughout history, either inclusively or exclusively.
According to the American Heritage Dictionary, Gerry is quite right.
However, that is the inclusive use of the statement. (Any use of
"and/or" is technically grammatically incorrect, inclusive, exclusive,
or otherwise…but I digress.) I will happily admit my mistake, if in
fact I am mistaken.

Your mistaken get over it… the LGPL doesn’t require the library
using application to give up its source, otherwise it would be the
exact same as the GPL and then would have no reason for existing,

As for what SDL should do I think the LGPL with an exception for
embedded static linking, i.e. only applies in closed systems where a)
no dynamic linking is available. I personally think that if a system
has dynamic linking, the app developer should dynamically link SDL,
even if it is an embedded system that in theory is not changeable… in
this way you don’t block someone from doing something you’ve never
thought of with SDL to use an application in a different environment…

I’m involved in embedded gaming machines for casino/club markets, and
we cannot allow the user who receives the machine to make any changes
(government regulated market), I still link SDL dynamically, but I
know that no user who ever gets my application will be able to change
the SDL library or load it anywhere as the whole system is on RO media
and has a number of protections check in place to only allow the RO
media to be used, and the software is built around custom hardware. In
this case I probably cannot truly comply with the LGPL perfectly, as
shipping the object code is of no practical value to the user as there
is no way the application can run on any hardware but the regulated
machine. (granted all customers will still get a worthless CD of stuff
just to comply :slight_smile:

Dave.