View Full Version : OpenAL licence
Desktop Gaming
06-15-2007, 02:54 PM
Hello.
My game uses OpenAL (default in Vista, but switchable between that, Directsound and FreeAudio).
I want to include the two OpenAL DLLs with my game to save the end user from messing about - does GNU LGPL which OpenAL is released under permit me to do this? I've read it about 30 times now but it might as well be written in Chinese. I don't understand it.
Anybody come across this issue before? What's the deal?
PS: Vista has OpenAL pre-installed anyway, yes?
GolfHacker
06-15-2007, 05:01 PM
Yes, you can include the OpenAL DLLs with your installer. I did this with Dirk Dashing, though the new version I'm releasing tomorrow replaces OpenAL with SDL_mixer. I've found OpenAL isn't very robust on Windows and Linux - some players have had problems with certain drivers and onboard audio chipsets where the game audio just wouldn't work (either no sound or weird sound artifacts). But I digress...
The LGPL requires you to dynamically link, which you've done. Check that off your list.
Section 6 is the main section of the LGPL that applies to you. Under section 6, the LGPL requires you to:
1) give prominent notice that your program uses the LGPL'd library and that the library usage is covered by the LGPL
2) either include the OpenAL source or point the user to where they can get the source.
3) supply a copy of the LGPL license with your game
For 1 and 2, that typically means including a statement like this somewhere in your app along with the rest of your copyright notices:
"This software uses the OpenAL library. See http://www.openal.org for details. OpenAL is used under the terms of the LGPL, version x." (Substitute x with whatever version is given in the copy of the LGPL included with the OpenAL version you're using.)
"Prominent notice" means you should include this notice in a prominent place in your application, like an About box, Title screen, game documentation, or whatever. The term "prominent notice" is a bit vague, so where you should put it is debatable. I included it in a README file that I distribute with the game (which you can also get to through the installer at the end of the install process) - not sure if that satisfies the "prominent notice" condition or not, but that's where I put my other copyright notices so that's where I put it. And that's where I've seen other developers put it.
For number 3, I just include the license file that comes with OpenAL in my installer, along with the two DLLs.
Hope that helps.
ggambett
06-15-2007, 07:05 PM
does GNU LGPL which OpenAL is released under permit me to do this?
Absolutely. Even more, you're practically required to distribute the DLLs of a LGPL library because the other option, statically linking, would require you to make your game open source (or distributing object code). So DLLs are definitely the way to go for LGPL libraries.
Desktop Gaming
06-15-2007, 07:45 PM
Thanks guys. Included the DLLs and bunged on a couple of notices about the GNU LGPL licence, plus a nice fat OpenAL logo on the splash screen.
That outta do it.
Now, its 3:45am. I must sleep. :D
Grey Alien
06-17-2007, 01:19 PM
good advice thanks. I'll do the same.
worried about reports of it being a bit under par on some systems though...
Desktop Gaming
06-17-2007, 02:03 PM
good advice thanks. I'll do the same.
worried about reports of it being a bit under par on some systems though...
I'm only using it as default on Vista.
If anybody does have problems with it under Vista, they can change it to DirectSound, which it turns out, works splendidly in Vista.
I think long-term I'd look at FMOD or BASS, and drop support for anything else.
GolfHacker
06-17-2007, 04:56 PM
worried about reports of it being a bit under par on some systems though...
OpenAL wasn't a problem on too many Windows systems, that I'm aware of - only heard about problems from a handful of people. Unfortunately, one such system belonged to Russ Carroll of Game Tunnel. Not cool when you're trying to get a good review of your game. :(
It wasn't a problem on too many Linux systems either... the primary distro where problems occurred was the Ubuntu family of distros, though one Debian user had a problem too. Other games worked fine on those systems, though, and after some investigating, I discovered that the other games that ran ok were all using SDL_mixer.
There were no reported audio problems on Mac, which accounts for about half my Dirk Dashing sales.
Overall, I had less than a dozen reports of audio issues by Dirk Dashing players. So I'm not sure whether that was worth getting too concerned about, but I decided to switch away from OpenAL anyway. My concern was how many audio issues I didn't know about because of people who tried my game but didn't bother to report the issue.
SDL_mixer seemed much more reliable, since it worked on systems that OpenAL didn't work on. And a lot of open source and commercial games were using it, so it seemed like a good move. Time will tell.
Grey Alien
06-18-2007, 01:53 AM
oK thanks for the clarification
GBGames
06-18-2007, 09:07 AM
2) either include the OpenAL source or point the user to where they can get the source.
As I understand it, you can't simply point the person to the official OpenAL website. If you provide DLLs under the LGPL, the recipient of your files should expect to either have the source included or get the source from you at a later time.
From the LGPL http://www.gnu.org/licenses/lgpl.txt:
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.
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.
So basically you will need to offer not only your game distributable but also provide the source to the OpenAL library. If your game is being offered on CD, it would be easiest to offer the source on the CD. If you are offering your game up for download on your website, you can include a link back to your site for the source code. You cannot simply link to the OpenAL website's source code download page.
Later in the LGPL:
c) Accompany the work with a written offer, valid for at
least three years, to give the same user the materials
specified in Subsection 6a, above, for a charge no more
than the cost of performing this distribution.
d) If distribution of the work is made by offering access to copy
from a designated place, offer equivalent access to copy the above
specified materials from the same place.
Desktop Gaming
06-18-2007, 09:33 AM
That's dumb.
Average Joe Public doesn't give a rat's ass about having the OpenAL sourcecode.
Anybody whos remotely interested in it surely knows how to use Google.
I consider that acknowledgement of the use of OpenAL DLLs satisfies their criteria. If it doesn't, they should make it more clear. Its quite apparent from reading this thread and countless others I found while looking into this issue, that the GNU LGPL is really just a load of incomprehensible bollocks.
[edit]
I just found this on the Audiere (http://audiere.sourceforge.net) website:
Audiere is open source and licensed under the LGPL. This means that you may freely use Audiere in commercial products, as long as you do not modify the source code. If you do modify Audiere and release a product that uses your modifications, you must release your changes to the code under the LGPL as well.
That's a fairly comprehensive translation of the LGPL. In short, you only need to include the source code if you have modified it (derivative work).
Bad Sector
06-18-2007, 11:32 AM
IIRC, Richard Stallman said at some point that pointing at the site with the source code is enough. Note that GPL and LGPL were written in a period where having Internet access wasn't something common and they weren't made for the stuff they're used today. Lots of people use GPL and LGPL only because they're popular and compatible with most projects (so you can grab code from one and use with another), not because they really understand what the license says.
Note that in order to have a problem with the license, only the copyright holder(s) has to object about something. Any third party simply can do nothing (court-wise).
GolfHacker
06-18-2007, 05:16 PM
As I understand it, you can't simply point the person to the official OpenAL website. If you provide DLLs under the LGPL, the recipient of your files should expect to either have the source included or get the source from you at a later time.
I also based my answer on notices I have seen on other LGPL library sites. Take a look at this page (http://www.libsdl.org/license-lgpl.php) on the SDL site, for one example.
I assumed since the LGPL is the same across all libraries that use it, and there are similar notices on several such sites, that it would probably apply to other LGPL libraries too - like OpenAL, even though they don't have a similar page on their site. As long as the LGPL version is the same, it should be ok.
Nutter2000
06-19-2007, 09:31 AM
I think that clause 4 only applies if you compile the library yourself from source code you downloaded or if you downloaded source code then modified it.
If you just downloaded the binaries then I think that it's clause 6 that applies.
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.
in particular sub-section b
Also, you must do one
of these things:
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.
So therefore so long as you use a standard version as a shared library, eg dll, then you just have to make sure that the interface is standard so that someone can use a modified or newer version of the library later. You don't need to provide the source in that case.
but lets face it, a) as far as I'm aware this has never been challanged in court anyway so GPL and LGPL might not even stand up in court (unlikely but possible)
and b) for the very very few muppets, if any, that are arsey and dumb enough to demand a copy of the source code from you, then you are within your rights, if not compelled, to download and email them a copy of the uncompressed source code which will probably crash their mail boxes anyway, should you so wish ;)
I just can't see anyone seriously asking you for the unmodified source code to to an open source project freely accessibly on the web! :D
Regarding, OpenAL crashing, we did a small compatibility trial on windows machines at one point and found that onboard sound chips which feature AC'97 (I think it was) would crash the damn thing inside the very first AL init function every time.
So we ripped it out and implimented FMod instead, which was a mornings work including tea break!
That was about 2-3 years ago, it's worrying if it's still crashing and they haven't done anything about it!
Iain
Grey Alien
06-28-2007, 05:09 AM
Gah I feel an FMod Makeover coming on...
GolfHacker
06-28-2007, 07:42 AM
Gah I feel an FMod Makeover coming on...
For simple audio (sound and music playback), go with SDL_mixer and save yourself some $$$. Unless you're trying to do some fancy 3D audio or something very involved, I see no need to invest money in an audio library that you could write yourself in a few hours.
vBulletin v3.6.0, Copyright ©2000-2008, Jelsoft Enterprises Ltd.