[Kde-games-devel] openAL is now mandatory - WAS - Re: Build failed in Jenkins: libkdegames_frameworks_qt5 #1

Ian Wadham iandw.au at gmail.com
Fri Sep 12 12:20:20 UTC 2014


On 12/09/2014, at 8:58 PM, Albert Astals Cid wrote:

> El Divendres, 12 de setembre de 2014, a les 16:10:15, Anuj Pahuja va escriure:
>>>>> Jenkins needs to be equipped with the OpenAL library.
>>>>> 
>>>>> But who do we tell? "KDE CI System <null at kde.org>" seems
>>>>> a rather unpromising address… :-)
>>>>> 
>>>>>> -- The following REQUIRED packages have been found:
>>>>>> 
>>>>>> * ECM (required version >= 0.0.9)
>>>>>> * Qt5Core (required version >= 5.3.1)
>>>>>> * Qt5Gui (required version >= 5.3.1)
>>>>> 
>>>>> etc.
>>>>> 
>>>>>> -- The following OPTIONAL packages have not been found:
>>>>>> 
>>>>>> * OpenAL
>>>>> 
>>>>> I think it is high time we made OpenAL MANDATORY in libkdegames.
>>>>> 
>>>>> It has had about 3 years as optional now, and Phonon has not had a
>>>>> good track record with games...
>>>> 
>>>> Indeed. Essentially, it is a REQUIRED package for building libkdegames
>>>> (frameworks).
>>> 
>>> Why is something that was optional now required?
>> 
>> I don't exactly know. When I started porting libkdegames, I wasn't able to
>> build it without installing OpenAL first. So I assumed it would/should be a
>> required package.

The same thing happened on the Apple OS X Jenkins CI, but with a different
error message, involving Phonon.  Libkdegames built OK after OpenAL was
provided.

> Nope, it should not be required as it was not required before.

Albert, I think you might have been away from the KDE Games list  (in Ireland?),
when all this was decided, a little over three years ago.

A number of games were having trouble playing sounds using Phonon.  Sounds
would be played late for the corresponding game event or not played at all.  Sound
quality was poor and sounds that coincided or overlapped were not being played
correctly.

Stefan Majewski came up with a new sound library for games, based on OpenAL,
and several of us tried it and found that it gave a huge improvement.  In fact it
played the sounds perfectly every time.  That library became KgSound and was
added to libkdegames by Stephan.

KgSound's preferred dependencies are and always have been OpenAL and
libsndfile (which decodes .ogg, files etc.).  We could not be sure, at the time,
whether those dependencies would be available on all platforms.  Also, at the
time, KDE builds supported only OPTIONAL or REQUIRED, nothing in between,
and nothing like first preference, second preference, etc. which is what we would
have really liked.

The only thing for it, on the first release of KgSound, was to make the dependencies
on OpenAL and libsndfile OPTIONAL, with some strong recommendation messages
in the build if they were not provided, then to fall back to Phonon (which is not preferred)
if the dependencies were not available somewhere where libkdegames might be built.

One of my games, KGoldrunner, is built with NO sound if OpenAL and libsndfile
are not available when libkdegames is built.  It has many cases of rapid, short
sounds and overlapping sounds, which have to synchronise precisely with the
gameplay.  It issues a warning message to the end-user if sound is not available.

AFAIK this has not eventuated and all distros are following our advice to build
libkdegames with OpenAL and libsndfile for best results.  There have certainly
been no bug reports from users, in the last three years, about sound being
missing from KGoldrunner.

Unfortunately, Stefan departed from KDE Games before his work on libkdegames
was complete, but I am sure, if he had remained, he would have at some time
changed OpenAL and libsndfile to REQUIRED.

I believe we could make them REQUIRED now.

Cheers, Ian W.



More information about the kde-games-devel mailing list