LGPL responsibilities and restrictions

So I have made a change to the SDL source code to add a feature I
thought was pretty important and that I now use in my software. I
made sure the change would not affect previous code. Since SDL is
LGPL, I have announced that I have made such a change and have
provided a link to the source code in that announcement.

Unfortunately, it does not seem like something that will make it in
SDL. So, presuming I still want all the source code updates to the
SDL library, what should I do? Announce a fork and maintain it at
sourceforge so that it always looks like I’ve just applied my changes
to the latest SDL code??–

Olivier A. Dagenais - Software Architect and Developer

Forking is never good. I don’t know what changes you made, but can
you make those changes in another library. Or can you work
with Sam to get your modifications into SDL. I have worked with many
different Opensource/Free products and forking can be very bad. It
tends to confuse everybody.
Thus spake Olivier Dagenais (olivier.dagenais at canada.com):> So I have made a change to the SDL source code to add a feature I

thought was pretty important and that I now use in my software. I
made sure the change would not affect previous code. Since SDL is
LGPL, I have announced that I have made such a change and have
provided a link to the source code in that announcement.

Unfortunately, it does not seem like something that will make it in
SDL. So, presuming I still want all the source code updates to the
SDL library, what should I do? Announce a fork and maintain it at
sourceforge so that it always looks like I’ve just applied my changes
to the latest SDL code??


Todd V. Rovito
@Todd_V_Rovito
Carpe Aptenodytes! ================ “Seize the Penguins!”

I like SDL. I want to keep using SDL. I also think it is missing a
feature that was present in OpenPTC: the ability to specify video
[and audio] parameters in an external config file.

Unfortunately, nobody responded to my announcement, so I don’t know if
Sam (or any other SDL developer) likes or dislikes it.

(ps: here is you chance to try again:
http://groups.yahoo.com/group/opendemogroup/message/27 and
http://groups.yahoo.com/group/opendemogroup/message/29 )–

Olivier A. Dagenais - Software Architect and Developer

“Todd V . Rovito” wrote in message
news:20010719054215.A875 at stargt.com

Forking is never good. I don’t know what changes you made, but can
you make those changes in another library. Or can you work
with Sam to get your modifications into SDL. I have worked with
many
different Opensource/Free products and forking can be very bad. It
tends to confuse everybody.
Thus spake Olivier Dagenais (olivier.dagenais at canada.com):

So I have made a change to the SDL source code to add a feature I
thought was pretty important and that I now use in my software. I
made sure the change would not affect previous code. Since SDL is
LGPL, I have announced that I have made such a change and have
provided a link to the source code in that announcement.

Unfortunately, it does not seem like something that will make it
in

SDL. So, presuming I still want all the source code updates to
the

SDL library, what should I do? Announce a fork and maintain it at
sourceforge so that it always looks like I’ve just applied my
changes

to the latest SDL code??


Todd V. Rovito
rovitotv at stargt.com
Carpe Aptenodytes! ================ “Seize the Penguins!”

Why couldn’t this be a library – or, more properly, a simple function –
that you call to grep over a config file before you initialize SDL?!? I
mean, I suppose you could “fork” as you say, but you’re not really adding
any functionality that isn’t easily obtainable now. I’m not sure why
someone would use your forked version when, in the matter of a few
minutes, they could write their own solution in such a way that doesn’t
mess with SDL.

Maybe I’m not properly understanding the functionality you’re intending to
add here, though I looked over the diffs you made. In case I’m completely
missing the point, can you make it more explicit?> I like SDL. I want to keep using SDL. I also think it is missing a

feature that was present in OpenPTC: the ability to specify video
[and audio] parameters in an external config file.

Unfortunately, nobody responded to my announcement, so I don’t know if
Sam (or any other SDL developer) likes or dislikes it.

(ps: here is you chance to try again:
http://groups.yahoo.com/group/opendemogroup/message/27 and
http://groups.yahoo.com/group/opendemogroup/message/29 )

Olivier A. Dagenais - Software Architect and Developer

“Todd V . Rovito” wrote in message
news:20010719054215.A875 at stargt.com

Forking is never good. I don’t know what changes you made, but can
you make those changes in another library. Or can you work
with Sam to get your modifications into SDL. I have worked with
many
different Opensource/Free products and forking can be very bad. It
tends to confuse everybody.
Thus spake Olivier Dagenais (olivier.dagenais at canada.com):

So I have made a change to the SDL source code to add a feature I
thought was pretty important and that I now use in my software. I
made sure the change would not affect previous code. Since SDL is
LGPL, I have announced that I have made such a change and have
provided a link to the source code in that announcement.

Unfortunately, it does not seem like something that will make it
in

SDL. So, presuming I still want all the source code updates to
the

SDL library, what should I do? Announce a fork and maintain it at
sourceforge so that it always looks like I’ve just applied my
changes

to the latest SDL code??


Todd V. Rovito
rovitotv at stargt.com
Carpe Aptenodytes! ================ “Seize the Penguins!”


“Ittai koko wa doko nan da!”

I like SDL. I want to keep using SDL. I also think it is missing a
feature that was present in OpenPTC: the ability to specify video
[and audio] parameters in an external config file.

Unfortunately, nobody responded to my announcement, so I don’t know if
Sam (or any other SDL developer) likes or dislikes it.

I looked it over, and it looks pretty handy, but it seems like something
that can be implemented outside of SDL, with a thin layer.

e.g. SDL_Config_InitSubSystem() can be part of your application, and
it just passes the appropriate parameters to SDL. And then you call
SDL_ConfigSetVideoMode(), SDL_ConfigOpenAudio(), etc.

In any case, the SDL 1.2 API is frozen, so something like this would
have to go into SDL 1.3

See ya,
-Sam Lantinga, Lead Programmer, Loki Software, Inc.

From what I see, the feature is beyond the scope of SDL, but
there are other libraries that link to SDL and which might
simply welcome new code - it just depends on their scope.
Note that a function library does not necessarily need to
be big, nor is there a need to have it usually built as a
lib - f.e. the code from SDL_Console is probably used in quite
some places I guess. The problem is simply that a single function
or patch is some small work compared to creating a full
project, including makefiles, autoconf-scripts, tarballs,
documentation and a website to assemble it - and when
too many do such project-forks, some of them get easily
out of sight sooner than later. It may be a good point
to ask a maintainer of an existing project to place your
code into his lib and add a "configure --with-configstuff"
option, e.g. sdl_gfxprimitives or sdl_anim or some other
project that is linked at http://www.libsdl.org/libraries.html
In the case that none wants to have the option in its
lib (which I doubt), you can go again another round of
thinking making a project in its own right. The SDL-ML
is a good place to ask for people to lend a hand for
stuff that you are not experienced about to do - I had
to learn quite a few bits about project managment and
about autoconf/automake/libtool stuff over time. But
just try link to SDL, don’t fork and ever-syncronize.
If something deep down needs a feature hook in SDL code,
well that may be another question and Sam might be easier
to respond or even cheer to it. Don’t get him wrong with
being sometimes cautious for SDL is used as basis for many
fine programs that he and his collegues at loki can make
a living of. I’m still thankful for the work he and loki
are offering to us for reuse in our projects, and many
of us have created more libs with more features that go
beyond the original work, and then, Sam is easy to link
to these works from libsdl.org.

HTH, guido

Olivier Dagenais wrote:>

I like SDL. I want to keep using SDL. I also think it is missing a
feature that was present in OpenPTC: the ability to specify video
[and audio] parameters in an external config file.

Unfortunately, nobody responded to my announcement, so I don’t know if
Sam (or any other SDL developer) likes or dislikes it.

(ps: here is you chance to try again:
http://groups.yahoo.com/group/opendemogroup/message/27 and
http://groups.yahoo.com/group/opendemogroup/message/29 )

Olivier A. Dagenais - Software Architect and Developer

“Todd V . Rovito” wrote in message
news:20010719054215.A875 at stargt.com

Forking is never good. I don’t know what changes you made, but can
you make those changes in another library. Or can you work
with Sam to get your modifications into SDL. I have worked with
many
different Opensource/Free products and forking can be very bad. It
tends to confuse everybody.
Thus spake Olivier Dagenais (olivier.dagenais at canada.com):

So I have made a change to the SDL source code to add a feature I
thought was pretty important and that I now use in my software. I
made sure the change would not affect previous code. Since SDL is
LGPL, I have announced that I have made such a change and have
provided a link to the source code in that announcement.

Unfortunately, it does not seem like something that will make it
in

SDL. So, presuming I still want all the source code updates to
the

SDL library, what should I do? Announce a fork and maintain it at
sourceforge so that it always looks like I’ve just applied my
changes

to the latest SDL code??


Todd V. Rovito
rovitotv at stargt.com
Carpe Aptenodytes! ================ “Seize the Penguins!”

“Sam Lantinga” wrote:

I like SDL. I want to keep using SDL. I also think it is missing
a

feature that was present in OpenPTC: the ability to specify video
[and audio] parameters in an external config file.
Unfortunately, nobody responded to my announcement, so I don’t
know if

Sam (or any other SDL developer) likes or dislikes it.
I looked it over, and it looks pretty handy, but it seems like
something
that can be implemented outside of SDL, with a thin layer.

Excellent, thank you! Please feel free to enlighten me in this
approach, in case I don’t seem to get it in this message… :slight_smile:

e.g. SDL_Config_InitSubSystem() can be part of your application, and
it just passes the appropriate parameters to SDL. And then you call
SDL_ConfigSetVideoMode(), SDL_ConfigOpenAudio(), etc.

I didn’t see SDL_Config_InitSubSystem as being something that should
be outside the SDL library, since the SDL_InitSubSystem is pretty
peculiar to start with and any changes to it would mean I would have
to make the same change in my implementation. (ie: video has to be
initialized before audio because of directx) Also, I didn’t see
SDL_VideoInit and SDL_AudioInit in the documentation, so I didn’t
figure we were “officially” allowed to call them from our own
programs.

In any case, the SDL 1.2 API is frozen, so something like this would
have to go into SDL 1.3

That was my original intention ( 6th paragraph of
http://mail.lokigames.com/ml/sdl/14523.html ) and any suggestions on
how to do this better (aka more SDLish) would be greatly appreciated.

For example, SDL [currently] doesn’t need to know about the whole
SDL_Config_Struct, it really only needs the flags, the audio and video
driver strings. It already handles the flags, so if it had a second
and a third optional parameters like so:

int SDL_InitSubSystem ( Uint32 flags, char * videoDriver = NULL, char

  • audioDriver = NULL );

…that would also work. Not sure if optional parameters (or
overloading) are supported everywhere and I think this would break
compatibility, so that’s one of the reasons I introduced a new
function…

One of my ideas is to simplify the number of steps (lines of code)
required to get an SDL program going, so that all you’d need to code
is something like this:

SDLConfig_LoadConfig ( “sdl.ini”, &config_struct );
// add any last-minute flags to config_struct
screen = SDL_InitConfig ( config_struct );

// actual program

SDL_QuitConfig ( config_struct );

…and you’d have a SDL program that’s ready to process audio and
video at whatever resolution, bit depth, frequency, etc… the user
desires. Granted, this only works with resolution-independent
software and I realize that in practice, not everybody bothers with
this, but I want to write hardware-independent software and something
like this would help.

So… Have I understood what everybody has been telling me? (thanks
for your input, BTW) Would the best solution be a seperate library
that duplicates the functionality of SDL_InitSubSystem, minus the
checks for disabled subsystems? Or should I go with the "hack"
version, that is a wrapper to the SDL_InitSubsystem function that
first calls “putenv”? Option number 3 is fiddling with my current
approach to minimize code changes to the base of SDL.

Thanks!–

Olivier A. Dagenais - Software Architect and Developer

I haven’t had a chance to look at your demo program, but if the desired
effect is what I suspect it is, what’s wrong with creating your own library
that wraps SDL_Init, and/or the SetVideoMode (and audio) functions? You
could do the file reading and then call the normal SDL functions and they
just need to add the extra include/link for your library.

I don’t know if your code allows it or not, but I’m against a standard file
that users could add to force aspects of every SDL program because I might
(and do) use certain optimizations when running at specific resolutions. My
program will explode if the calls SDL_SetVideoMode have their parameters
silently replaced without letting me. Plus, my program starts in different
sized windows if you start fullscreen as opposed to windowed.

-Jesse> ----- Original Message -----

From: olivier.dagenais@canada.com (Olivier Dagenais)
To:
Sent: Thursday, July 19, 2001 9:53 AM
Subject: [SDL] Re: LGPL responsibilities and restrictions

I like SDL. I want to keep using SDL. I also think it is missing a
feature that was present in OpenPTC: the ability to specify video
[and audio] parameters in an external config file.

Unfortunately, nobody responded to my announcement, so I don’t know if
Sam (or any other SDL developer) likes or dislikes it.

(ps: here is you chance to try again:
http://groups.yahoo.com/group/opendemogroup/message/27 and
http://groups.yahoo.com/group/opendemogroup/message/29 )

Olivier A. Dagenais - Software Architect and Developer

“Todd V . Rovito” wrote in message
news:20010719054215.A875 at stargt.com

Forking is never good. I don’t know what changes you made, but can
you make those changes in another library. Or can you work
with Sam to get your modifications into SDL. I have worked with
many
different Opensource/Free products and forking can be very bad. It
tends to confuse everybody.
Thus spake Olivier Dagenais (olivier.dagenais at canada.com):

So I have made a change to the SDL source code to add a feature I
thought was pretty important and that I now use in my software. I
made sure the change would not affect previous code. Since SDL is
LGPL, I have announced that I have made such a change and have
provided a link to the source code in that announcement.

Unfortunately, it does not seem like something that will make it
in

SDL. So, presuming I still want all the source code updates to
the

SDL library, what should I do? Announce a fork and maintain it at
sourceforge so that it always looks like I’ve just applied my
changes

to the latest SDL code??


Todd V. Rovito
rovitotv at stargt.com
Carpe Aptenodytes! ================ “Seize the Penguins!”

“Evil” wrote in message:

I haven’t had a chance to look at your demo program, but if the
desired
effect is what I suspect it is, what’s wrong with creating your own
library
that wraps SDL_Init, and/or the SetVideoMode (and audio) functions?
You
could do the file reading and then call the normal SDL functions and
they
just need to add the extra include/link for your library.

That’s what everybody suggests. See my reply to Sam’s message for
more details and the currently known solutions. (please tell me which
one you prefer)

I don’t know if your code allows it or not, but I’m against a
standard file
that users could add to force aspects of every SDL program because I
might
(and do) use certain optimizations when running at specific
resolutions. My
program will explode if the calls SDL_SetVideoMode have their
parameters
silently replaced without letting me. Plus, my program starts in
different
sized windows if you start fullscreen as opposed to windowed.

That’s all cool, you would just use “normal” SDL or you would hardcode
the struct without loading anything from a file. (or just load audio
parameters from the file, while keeping video parameters hardcoded,
etc…, etc…)

The cool thing about all this, is if the file format is standard,
someone can write a little GUI to create these files and allow the
user to test the configurations instead of banging their head trying
to figure out if their hardware does not support the game’s parameters
or if there is a bug in the game itself.

This was the case when I first compiled Tux Typing for Windows: for
some reason, double-buffered fullscreen output didn’t work and all I
got was a black screen. Since I hadn’t tried many full-screen SDL
apps, I thought it might have been because my hardware didn’t support
the video parameters. Turns out my hardware does support the video
parameters, it’s just that the game was never tested on Windows and
SDL_UpdateRects behaves slightly differently.

Does this make sense???–

Olivier A. Dagenais - Software Architect and Developer

Also, I didn’t see SDL_VideoInit and SDL_AudioInit in the documentation,
so I didn’t figure we were “officially” allowed to call them from our own
programs.

Yes, you are absolutely allowed to call them from your own programs.
If they’re in a public header, it’s fine. They are what allows you
to put the kind of functionality you want into a library outside of
SDL.

In general, it’s a good idea not to allow users to change library
behavior outside of the application without the application knowing
about it. However, if an application specifically links with that
functionality (your wrapper functions for example), then it can be
written to handle the different possibilities correctly. However,
you don’t want to assume that the application can handle it. :slight_smile:

See ya!
-Sam Lantinga, Lead Programmer, Loki Software, Inc.

[clip]

In any case, the SDL 1.2 API is frozen, so something like this would
have to go into SDL 1.3

Just as a giggle while this can be taken in any context - just -when- is
development on 1.3 going to publicly start? And what’s needed to consider
1.2 finalized?

This is a question that’s been popping up every now and again…

TODO for 1.2?
TODO for 1.3?
whims? dreams? for 1.3

I’d like to see MIDI keyboard interaction - and unlike those picky people
I -don’t- need high realtime. Just that it works. (I want to use my MIDI
keyboard for programming animations / choreography in 3D :slight_smile:
I mean if I just wanted music editing I’d use a standard program (wait a
sec - I haven’t found one -yet- that works under linux sigh)
(personally I think this is acceptable as an external library - or a 1.2
feature as it doesn’t require changing anything in the core. I’d rather
it -not- be tied into SDL_mixer or any other soundsystem as MIDI does
-not- guarantee it’s use in sound - it’s also used in robotics controls :slight_smile:

Anyhoo, G’day, eh? :slight_smile:
- TeunisOn Thu, 19 Jul 2001, Sam Lantinga wrote:

[clip]

In any case, the SDL 1.2 API is frozen, so something like this
would have to go into SDL 1.3

Just as a giggle while this can be taken in any context - just
-when- is development on 1.3 going to publicly start? And what’s
needed to consider 1.2 finalized?

This is a question that’s been popping up every now and again…

TODO for 1.2?
TODO for 1.3?
whims? dreams? for 1.3

I’d like to see MIDI keyboard interaction - and unlike those picky
people I -don’t- need high realtime. Just that it works.

Good. Because that’s all you can get on most platforms. :slight_smile:

(Actually, Win32 has a “new” MIDI API with timestamped events.
May or may not be a significant improvement over the old style 1 kHz
mmTimer “interrupt”, but at least it makes it possible to get
accurate timing without a real time thread of your own to do the
timestamping.)

(I want
to use my MIDI keyboard for programming animations / choreography
in 3D :slight_smile:

Interesting! There are more suitable MIDI controllers for that kind
of stuff as well. Not cheap, but probably a lot more controllers/$
than SpaceBall and similar CAD/VR controllers. :slight_smile:

//David

.- M A I A -------------------------------------------------.
| Multimedia Application Integration Architecture |
| A Free/Open Source Plugin API for Professional Multimedia |
----------------------> http://www.linuxaudiodev.com/maia -' .- David Olofson -------------------------------------------. | Audio Hacker - Open Source Advocate - Singer - Songwriter |--------------------------------------> david at linuxdj.com -'On Friday 20 July 2001 20:23, winterlion wrote:

On Thu, 19 Jul 2001, Sam Lantinga wrote: