OpenAL and SndFile as hard dependency for Granatier

Ian Wadham at
Fri May 13 02:54:16 CEST 2011

On Friday 13 May 2011 8:20:53 am Sebastian Kügler wrote:
> Hi,
> On Thursday, May 12, 2011 00:39:37 Mathias Kraus wrote:
> > as some of you might know that Phonon is not really good for games
> > because of the high latency and some other issues.
> > Granatier used therefore for some time OpenAL and SndFile, first with
> > GluonAudio then with a copy of TagaroAudio, as optional dependency.
> > A few days ago, Ian Wadham ported KGoldrunner to TagaroAudio (a direct
> > copy
> > from Granatier) and also want to declare OpenAL and SndFile as hard
> > dependency. He will soon contact you regarding this.
> > For Granatier and KGoldrunner there is a difference like day and night
> > regarding to the sound quality and because now not only one but two games
> > use it, we think a hard dependency is justified. Also, Tagaro is supposed
> > to be the successor of libkdegames, so there eventually will be more
> > games using it.
> It makes sense to not rely on Phonon in this case. As others have already
> pointed out, Phonon is really an API designed for "most" use-cases, and
>  that means that an apps' needs can
> You might want to check wether openAL is also available on other platforms,
> such as Windows and Mac OS, and provide clear information about the added
> dependency to make it easier for packagers to get it right.
Thank you very much for your response, Sebastian.  AFAICT OpenAL is definitely
available on Windows (it came from open source there) and is available on Mac,
using installer add-ons.  See:

As Mathias mentioned, we are planning an overhaul and modernization of the
KDE Games library and TagaroAudio is one of its first modules.  It is actually
TagaroAudio that is dependent on OpenAL.  Unfortunately the chief architect
of the library, Stefan Majewsky, is in heavy-duty thesis writing mode at
present, but he intends to review and release the new library in KDE 4.8.
Meanwhile I will try to answer your questions.

> They might have
>  to create and track a new package, then as well, so keep in mind that an
>  added hard dependency often causes a lot of extra work. Before incurring
>  that, it would be good to look around in other applications, and see if
>  there's a more common denominator for those cases. You've already done
>  that across Granatier and KGoldRunner, maybe there are more around?
There are more KDE Games that will benefit from TagaroAudio and OpenAL.
Granatier and KGoldrunner are just the first and second candidates.  I do not
think KDE Edu uses sound much.  There was some discussion on KDE Forums
about using the 3-D features of OpenAL to add sound effects to Amarok.

TagaroAudio library, when it is released, will have a hard dependency on
OpenAL, in the sense that it will not compile without OpenAL.  Games can
then depend optionally or hard on the new library, depending on their
requirements, i.e. whether they need to have sound or not.  Currently,
with OpenGL (the 3-D graphics software), for example, Kubrick will silently
fail to build if OpenGL is not found (it is a purely 3-D game) but KSudoku
will build with 2-D and without the 3-D (Roxdoku) version of the puzzle.

> I can't really judge the technicalities, but I think we can use this thread
>  to collect more feedback and find out if there are issues with this added
>  dependency.
OK, good idea.

>  It's also a good idea to not break the build right away, but
>  have CMake issue a clear warning that from now on, if you want sound, you
>  need openAL, so keeping it optional for a while for people to catch up
>  with that.
In the present situation, we do not wish to cause any one any trouble.
We have declared a hard dependency mainly to draw attention to the
change of dependency before the dependency freeze.  I was just worried
that a "warning" might be missed in the general hurly-burly after the
upcoming freezes.  If there is some smarter way to handle the situation,
please let us know how.

>  I know I find it pretty annoying to see new deps pop up
>  somewhere when I just want to rebuild some stuff.
Heh!  Tell me about it!  Try being an an app developer these days ... :-)
I just recently spent many days and many posts on kde-devel getting
KDE libs up to date and from the correct repositories.

> Which release are you targeting with the new sound backend?
Granatier was released with a clone of TagaroAudio in KDE 4.6.  It had
an either/or dependency, with OpenAL preferred and Phonon used as a
fallback.  Now, for KDE 4.7, it is proposed to have a hard dependency
on OpenAL.

I would like to release KGoldrunner in the same way in KDE 4.7, i.e. with
a hard dependency on OpenAL.

KGoldrunner can build and run without sound, but I would prefer that not to
happen if OpenAL and SndFile can be readily made available.

What I guess Mathias and I really need is to declare a strong *functional*
dependency on OpenAL and SndFile, without clobbering the build, but
making sure that the packager or builder sees that something is missing.
How can that be done?

Cheers, Ian W.

More information about the release-team mailing list