PulseAudio, PulseVisual, PulseTalks
So I'm just back from Nürmberg, German where I was fortunate enough to be invited to the speak at the OpenSuse Developer Summit. It has to be said, everything went really well. The first thing that struck me about this event is that it was quite inclusive. Although, obviously, the point was to discuss, promote and develop Suse there were folk there from other distros including Debian, Fedora and, of course Mandriva/Mageia (well, me!). This was very nice to see.
Some KDE PulseAudio bugfixes
Confession time. I think I cocked up. Someone was asking me about why the HDMI was the default sound device in Phonon when used with PulseAudio. I patiently explained that this was a bug a while back but I fixed it.I diligently went to look up the relevant commit refs and then realised that I hadn't actually committed the fix. Whoops. It seems I fixed that bug during a late part of the Mandriva development cycle and only applied the code changes as patches on top of the source rather than committing them properly. I think I did this because I wanted wider testing before deeming them "ready" for upstream inclusion but then basically forgot. The other reason was perhaps that I was ashamed of myself for using a bubble sort - I really need to make an ordered pa_hashmap for this as I've found myself needing it a couple times now and will definitely need it in the future too. Another item on my todo list!
So apologies for that. I know some distro maintainers look at the Mandriva packages subversion for patches etc. so I'm sure some folks will have these fixes already, but it was a mistake not to push them upstream sooner.
Anyway, fixes are pushed to upstream master and stable-queue and will be part of the (hopefully) upcoming bugfix release.
Compiling and running PulseAudio from git
A few budding developers have asked me recently about this and to make life easy, I decided to write up this guide! There are some gotchas to look out for so please read carefully!
There is no spoon (but there is a fork)
As many followers of the Linux ecosystem will already be aware, Mandriva Linux (my personal distro of choice) has been through some turbulent times of late. Financial troubles meant that Edge IT (a subsidiary of Mandriva SA) was liquidated and all employees made redundant as a result. While it was not widely known, many of the core developers were technically employees of Edge IT rather than Mandriva SA, so this lay off was actually quite drastic.
Those of us involved in the community surrounding Mandriva have obviously been worried that the future of our favourite distro is in doubt, so it is with great pleasure that I pass on news of the upcoming fork of Mandriva Linux: Mageia
Obviously the obligatory slashdot story only really draws comments on the choice of name. Personally, I quite like it (more so than the name "Mandriva" (which itself was a contraction of Mandrake and Conectiva - partly due to the use of the name Mandrake drawing some legal issues)). And choosing a name is no easy business: there are trademark issues to consider and domain names to secure: this can seriously limit your choice. Regardless of the practicalities, "that which we call a rose, by any other name, would smell as sweet". In other words, the name doesn't matter, what really matters is the work done and the contributions to be made to the wider Linux ecosystem.
Mandriva has long been regarded as a good participant in upstream projects, contributing to the Kernel, Graphic and Audio subsystems as well as being a very active contributor to higher level desktop environments such as KDE (and GNOME and XFCE and others too). With so many of the key contributors following this fork and contributing to Mageia, I feel this tradition will continue and grow with time.
So, as I said in one of the many "goodbye" emails I've had to write following the lay offs: The future is unwritten. Let's write it!
Speak[er Setup] Now, or Forever hold your Peace.
Well it's taken me a little time to commit this work, but here it is. This is the fruits of my labour from the KDE Multimedia Sprint earlier this year.
As well as taking part in various discussions, I was able to spend some time cooking up a UI to control the configuration of PulseAudio and the various cards attached.
Recharging my geek batteries
I'm just recently back from the KDE Multimedia Sprint in Randa, Switzerland. Well I say "back" but I'm actually still in Geneva (my flight back is not until tomorrow AM). I'm sure that considering the volcano has stopped spewing ash into the flight paths of Europe, that I'll be home without incident tomorrow!
So the trip to Randa was pretty uneventful. My bus did bread down on the way to the airport and as we were waiting for a replacement, the bus after the one I caught overtook us! We did catch it up and ultimately were asked to get on it at the RBS HQ, which did little to settle my nerves about catching the flight on time. In the end the latter bus was fine time-wise anyway. I was pleased to find an Ian Rankin book at the airport I'd not read yet, so quickly purchased it and rushed on through.
When I arrived in Geneva, I had missed some other folks that were there an hour or so before me, but I managed to board the right train and headed towards my destination. I had an hour to wait for the transfer in Visp, but the hot weather meant I really wasn't that bothered!
When I arrived I was greeted by a several folks from various KDE folks. While names were familiar the only familiar face was Helio whom I'd worked with on various Mandriva projects and met at Akademy 2007. Everyone was really nice and the house was fantastic.
I really can't say enough good things about the organisation. Mario was fantastic in his admin duties and the convenience of the house, where accommodation, meals and hacking/discussions sessions were all in one place, was perfect for this kind of event.
I met lots of really nice people and put faces to several names. It was especially great to meet the Amarok guys whom I've conversed with in the past on the mailing list and on IRC and it was good to meet with Christian Esken who is the current kmix maintainer seeing as I've pushed a lot of PulseAudio related patches into that project of late. Meeting Jean-Baptiste Kempf was another highlight. I've learned a great deal about VLC, or rather VideoLAN as it should be more accurately called over the past few days and definitely think of it differently now (in very much a good way - and for clarity I am really referring to the scope of the project here - I wasn't fully aware of how flexible it is until JB's presentation!).
In terms of actual productivity, I was able to start and complete (mostly!) a project to enable easy setup and testing of mutli-channel sound cards on KDE using PulseAudio. This work was heavily inspired by the tool Lennart wrote for Gnome - gnome-speaker-setup, but I've integrated it nicely into the same KCM module that is used for configure device preferences. I'll blog about this in more depth in the coming weeks. There is a very slim chance it can get into Mandriva 2010.1, but due to the timings it's rather unlikely at this stage.
We were also able to have what I think was a productive first meeting with the Qt developers in Brisbane, Australia, facilitated by Knut Yrvin. I wont go into too much detail here as I have a much longer and more detailed blog entry on this topic to post shortly. Keep your eyes peeled for that one.
The return journey was also uneventful and I arrived in Geneva at around 3:30pm and proceeded to walk in the exact opposite direction to what I should have done to get to my hostel. Thank goodness for GPS, although as it's designed for driving I did continue walking in the wrong direction for some time. That said, the weather was lovely and having a saunter around the centre of Geneva was rather pleasant! I did eventually find the hostel and subsequently went for a more organised stroll along the shore and sat in a little bar and devoured a few more chapters of my book while supping a couple cold beers - purely for their refreshment value on a hot day mind you!
So I'd like to sign off with a big thank you to all the people who helped make this happen. For KDE e.V. for sponsorship and especially to Mario for his organisation, but also to all the new friends and those friends who now have faces rather than just IRC nicks
Until next time...
Qt Multimedia/Mobility vs. Phonon: FIGHT!!!
Well it's not really like that, but I guess those involved can think about it a bit like that at times!. For some background, Phonon is a Multimedia framework that was included in Qt 4 as far as I understand it, it was developed outside Qt, but was adopted (please correct me if my history is incorrect here). It was designed to give application developers easy access to media playback systems, be it MP3 music or new fangled WebM video! Rather than implement any of the complex stuff itself, Phonon hands off the actual decoding and playback parts to existing media frameworks. Originally Qt wrote a GStreamer "backend" for Phonon and this was the only available backend on Linux in the early stages (others were available for other platforms too). I personally think that GStreamer was a good choice. I think it is a very powerful system, but it's not for the feint hearted. I wont begin to pretend that I understand it (although I have hacked my way through some GST code!), but the principle of it's operation seemed to fit the needs of the Phonon project very nicely.
The Digital Economy Bill Will Increase Terrorism
OK, so I wanted a catchy title. It got you reading though right? In order to maintain my credibility, I will justify this link, but firstly I want to talk a little bit about something that is not actually (directly) related to the world of Open Source, but it does affect the "little guy" and the independents in the same way that e.g. Software Patents affect the FOSS movement.
Over the last fee weeks and months there has been growing concern about the reforms proposed by in the Digital Economy Bill which is going today for a third reading in the House of Commons (UK Parliament).
This legislation as it stands is quite frankly horribly Draconian in it's approach and makes a mockery of the legal system's overarching principle of the right to be presumed innocent until proven guilty.
But before I talk about the content of the bill itself, I have to write about the rather interesting event that took place yesterday in concerning the second reading.
How to develop on KDE & Amarok without trashing your System
This is just a mixed back of info I've picked up along the way on how to develop with relative ease on KDE applications/libraries without totally trashing your system provided versions.
As a packager, it's important for me to be able to test the packages I produce so having a system that is solely running the latest and greatest upstream versions is not desirable. In order to do this I don't maintain two separate installations (that's too complicated and too much effort), rather I build all the upstream stuff into it's own prefix and then run it from there. It's totally separate from my system binaries (and shouldn't ever need root). Cleaning up is as simple as an rm -rf.
Slide around the Sound
Just a quick update on various KDE+PulseAudio changes I've made recently. This is more of an update from previous articles than anything ground breaking in it's own right although there is a nifty (IMO) new feature now available.









