openSUSE 13.1 Beta Pizza Hackathon

LadybugNový release se nám blíží, 13.1 beta už je venku, tak nastává čas na pizzu? Tentokrát to však bude probíhat trochu jinak. Asi ste si už všimli oznámení o hackathonu. Vězte tedy, že hackathon se bude konat i v Praze. Jako obvykle bude akce probíhat v pražské pobočce SUSE. Budou se jí účastnit zaměstnanci SUSE, ale lidi z komunity jsou samozřejmě zváni také. Fixovat můžete kdykoliv během pátku ať už z domova, nebo můžete přijít do SUSE. V druhém případě mi ale dejte vědět předem mailem, ať vás čekám a můžu vpustit dovnitř. Akce je tentokrát zaměřena čistě na vývojáře, ale nezoufejte, pokud jimi ještě nejste. Jak se píše na news, 13.1 se už blíží a pro tu budeme mít časem i klasickou release party pro každého a budeme o ní informovat dostatečně dopředu ;-) O hackathonu jsem sem k postu na blog dostal bohužel až dost pozdě :-(


System Wide PulseAudio? Sure!

Everybody knows PulseAudio. It’s a really famous piece of software, some love, some hate it, some love to flame about it. I quite like like and I still haven’t flamed about it enough, so this is my turn to flame a little bit…

Why I like it?

I started using PulseAudio few years back. The reason why I gave it a try was a network mode. I used laptop quite a lot and I had big speakers connected to my desktop and I wanted to use them while lying in my bed. That kinda worked for a while but I found it not that interesting in the end. But as I was playing with PulseAudio, I found other interesting features I liked. Like having separate volume control for every application or option to boost the volume. So I started using it and kept on using it.

System Wide mode

To be able to use network attached speakers, I had to use system wide PulseAudio. But today I’m using PulseAudio even on my notebook in system wide mode and I have my reasons to go against upstream recommendation. Let’s take a look at why I ignore recommendation of upstream…

Multiuser, security and daemons?

Number one issue they mention on the web page is security. Everybody who has access to the pulse server have complete control over the sound server! Yes, so what? There is a pulse-access group and I don’t need to put remote users into that group. So only people logged in locally can play around with my audio. And I actually think that it is a really good idea to let people who are actually sitting in front of the computer control the the audio no matter who is playing what. Imagine I’m listening to some music and suspend my laptop while still listening, forget about it and let somebody else use it. Then this other person (who can login) will be stuck with listening to my music without being able to listen to anything else. I believe that if you are sitting in front of computer, you deserve to have a control over the noise it makes. So one part of what is listed as being wrong I consider cool feature.

HotPlug is stated as intentionally not working. That would be nice, but I’m not using it as I don’t have any HotPlug devices. I’m not planning to buy Bluetooth headphones as BlueZ is not working anymore (well, it is supposed to be working only from GUI over D-Bus nowadays, which doesn’t work for me). Hardware switches (for headphones) still work fine without any special software. It would be little bit troublesome with USB devices, but if I wouldn’t plug them in and unplug them too often, it should be possible to work around it using udev scripts.

Now, what do I gain? Maybe situation changed in the past, but what I liked about system wide pulse audio is exactly the fact, that every user that is allowed to do so, can use soundcard at once. Like you are listening to the radio and let somebody else use your guest account to check mails, you can still hear your radio why this somebody else hears mail notification. And if he doesn’t like the radio, he can mute it. Or change the balance between volume of his applications and mine.

Other important use case is MPD. Is is a service that allows you to play your local music and control it remotely. But as it is service, it starts at the boot time and takes over sound card. So you can’t use MPD and desktop with sound effects anymore. So again, as you need two different users to share the same soundcard and both to be able to control it, you probably want system wide pulse audio.

How to get it?

Why am I writing about it now? I sent a submit request in openSUSE to get system wide mode included in distribution. It is simply just a unit file in separate package, everything else is already there and it is not meant to be installed by default, only by people who know what are they doing… If maintainers will accept it ;-) In Gentoo, there is a system-wide use flag that does similar thing for a long time.


MySQL updates, openSUSE 13.1 and default configuration

Database ServerRecently I had some time to do some clenaups/changes/updates in server:database repo regarding MySQL (and MariaDB). Nothing too big. Well actually, there are few little things that I want to talk about and that is the reason for this blog post, but still, nothing really important…

MySQL 5.5, 5.6 and 5.7

MySQL 5.6 is stable for some time already, so it’s time to put it in the action. So I sent the request to include it in Factory and therefore in openSUSE 13.1. There is off course a list of interesting stuff you might want to take a look at before you update. If you don’t want to update, you can install mysql-community-server_55 from server:database repo and stay a little bit longer with version 5.5. On the other hand, staying with old versions is boring, so you can also switch to mysql-community-server_57 which provides new MySQL 5.7. So if you are into databases and especially into MySQL and forks (we have MariaDB 5.5 and 10.0 as well), we have plenty of toys for you to play with.

NOTE: Having MySQL 5.6 in openSUSE 13.1 doesn’t mean switching default back to Oracles MySQL, M in LAMP still means MariaDB for whatever it is worth. It just mean, that you have MySQL 5.6 as an alternative available if you prefer it.

Default configuration

One of the interesting changes that happened in MySQL 5.6 is new default configuration. MySQL usually shipped with some examples of configuration that you can use. It  was there since forever and never changed, although typical computers went from 256M of RAM to 8G. It contained some buffers sizes and various other optimizations. I heard various complains that it would be better shipping without it than with the one that is there. What folks at Oracle did was drop most of it and replace it with pretty much empty one, with various settings commented and described. They probably heard the same complains :-D I consider it a really good step. Defaults are bult-in after all, so why to put them in config file? So I took theirs, added few things. For example Barracuda file format. It was set to be default upstream for few versions but they decided to go back to Antelope. But it’s also one of the thing people complain to me the most about – that they have to set file_per_table and Barracuda manually. And I added examples for multi configuration that we for some reason have included and exposed. This same config file will be pushed to MariaDB as well.

If you are interested in current state, you can see the config file on github and if you have some suggestions that everybody can benefit from, let me know either via comments or via pull request on github ;-)



Spring Europen 2013

Europen talkThis Monday I was the first time guest and speaker at (contrary to it’s name) local Czech conference Europen. It was interesting experience. And I would like to share a bit of what I experienced. What made it different from conferences I usually speak at was the audience. Not many Linux guys and quite some Windows guys. I was told that this conference is for various IT professionals and people from academia interested in Open Source.

I was asked to speak there about something techy, low-levelly, genericy, and not SUSE only stuff. I offered OBS and Studio introduction as these are crown jewels of openSUSE environment, but I was told that they would prefer something more generic and little bit more hardcore. So in the end I decided to speak about packaging as that is something I do that since a long time ago. And to make it nor a workshop nor SUSE specific talk, I put in two more packaging systems that I worked with apart from rpm – Portage (from Gentoo) and BitBake (from Open Embedded).

Whenever I visit open source event in Czech Republic, I always know quite some people there already. I know the most prominent people from Linux magazines, other distributions and some other people who are big open source enthusiasts. On this conference, I knew something like six attendees in total (and all of them were there to give a talk and not sure what to expect from audience). Almost everybody was running MS Windows with few MacOS exceptions. Really quite different world.

As I said, in the end I spoke about why do we do software packages in Linux and how do we do it. I spoke about rpm and spec files, about Portage and BitBake showing how nice it is to have inheritance. And in the end I put in part about how great OBS is anyway.

From the almost a day I was at the conference, most questions and feedback got LibUCW library, but Martin Mareš gave amazing presentation and he had a really interesting topic. LibUCW is cool. If I’ll find a free time, I’ll write something about it separately. Otherwise audience was quite calm and quiet. For my presentation, I got question about cross-compilation of rpms, so in the end after the talk I could recommend OBS once more ;-)

It was definitely interesting experience as these people were mostly out of our usual scope. If you are interested in browsing the slides, you can, sources are on my github, but they contain quite some pages of example recipes that I was commenting on the spot.


FOSDEM 2013 & etc-update



I started writing this post after FOSDEM, but never actually managed to finish it. But as I plan to blog about something again “soon”, I wanted to get this one out first. So let’s start with FOSDEM – it is awesome event and every open source hacker is there unless he has some really huge reasons why not to come (like being dead, in prison or locked down in psychiatric care). I was there together with bunch of openSUSE/SUSE folks. It was a lot of fun and we even managed to get some work done during the event. So how was it?


We had a lot of fun on the way already. You know, every year, we rent a bus just for us and we go from Nuremberg to Brussels and back all together by bus. And we talk and drink and talk and drink some more…. So although it sounds crazy – 8 hours drive – it’s not as bad as it sounds.


What the hack is etc-update and what does it have to do with me, openSUSE or FOSDEM? Isn’t it Gentoo tool? Yes, it is. It is Gentoo tool (actually part of portage, Gentoo package manager) that is used in Gentoo to merge updates to the configuration files. When you install package, portage is not going to overwrite your configuration files that you have spend days and nights tuning. It will create a new file with new upstream configuration and it is up to you to merge them. But you know, rpm does the same thing. In almost all cases rpm is not going to overwrite your configuration file, but will install the new one as config_file.rpmnew. And it is up to you to merge the changes. But it’s not fun. Searching for all files, compare them manually and choose what to merge and how. And here comes etc-update o the rescue ;-)

How does it work? Simple. You need to install it (will speak about that later) and run it. It’s command line tool and it doesn’t need any special parameters. All you need to do is to run etc-update as root (to be actually able to do something with these files). And the result?

# etc-update 
Scanning Configuration files...
The following is the list of files which need updating, each
configuration file is followed by a list of possible replacement files.
1) /etc/camsource.conf (1)
2) /etc/ntp.conf (1)
Please select a file to edit by entering the corresponding number.
              (don't use -3, -5, -7 or -9 if you're unsure what to do)
              (-1 to exit) (-3 to auto merge all files)
                           (-5 to auto-merge AND not use 'mv -i')
                           (-7 to discard all updates)
                           (-9 to discard all updates AND not use 'rm -i'):

What I usually do is that I select configuration files I do care about, review changes and merge them somehow and later just use -5 for everything else. It looks really simple, doesn’t it? And in fact it is!

Somebody asked a question on how to merge updates of configuration files while visiting our openSUSE booth at FOSDEM. When I learned that from Richard, we talked a little bit about how easy it is to do something like that and later during one of the less interesting talks, I took this Gentoo tool, patched it to work on rpm distributions, packaged it and now it is in Factory and it will be part of openSUSE 13.1 ;-) If you want to try it, you can get it either from my home project – home:-miska-:arm (even for x86 ;-) ) or from utilities repository.

Hope you will like it and that it will make many sysadmins happy ;-)

Older posts «

» Newer posts