Easy-to-try Appliance with Yast Services Manager written in Ruby
To make trying and testing easier for you, I've created an appliance Yast in Ruby based on YaST:Head project built for openSUSE 12.3 target in Open Build Service. Only root user with password linux is there.
Above, you can see screenshot from this appliance running in SUSE Studio TestDrive. Appliance is currently built for VirutalBox/VMware.
If you now want to see or try to edit source files, they are just a few of them:
#> rpm -ql yast2-services-managerAfter you edit these files, you don't need to compile anything. Ruby is a scripting programming language so it works as-is. Logs can be found at /var/log/YaST2/y2log.
/usr/share/YaST2/clients/services-manager.rb
/usr/share/YaST2/modules/systemd_service.rb
/usr/share/YaST2/modules/systemd_target.rb
/usr/share/applications/YaST2/services-manager.desktop
I hope it's going to be useful for you!
Organizing oSC13 - 16 days before
So here we are 2 days and 2 weeks before the conference starts. One part of myself is finding it hard to believe that we are close to the end of preparation and so close to the start of the conference. Those days I find myself singing "Nothing else matters" from Metallica every few minutes. I mean really the first turn seem to me it is written for the state I am on those days :
Couldn't be much more from the heart
Forever trusting who we are
And nothing else matters
OpenStack Rhône-Alpes Meet-up #1
Last Thursday was the first meet-up of the OpenStack Rhône-Alpes group, in Grenoble. The idea of organizing such a meet-up came up just one month ago, at Solutions Linux; having such an OpenStack meet-up in Rhône-Alpes feels so natural, given the amount of people we have in the area (we can even include Geneva ;-)). Dave did a great job with the organization, and HP provided a pretty nice venue (and sponsored food!).

We managed to attract around 25 people to this event, and given that it was our first and that we did nearly no noise about it, it's not too bad :-) We had people attending from HP, Bull, Red Hat, SUSE and more, and four of us delivered quick talks about XLcloud (by Patrick Petit, from Bull), oVirt (by Dave Neary, from Red Hat), HP's public cloud (by Gavin Brebner, from HP) and Crowbar (by yours truly). I must admit that Gavin Brebner's presentation about abusing HP's public cloud was extremely interesting; there's a lot of cool stuff happening to keep a public cloud running.
Of course, we enjoyed some nice food afterwards and stayed chatting a bit longer about OpenStack and other technical bits. And best of all: we celebrated OpenStack's third birthday a bit early:

If everything goes well, the next meet-up of the group will be in Lyon, in September, stay tuned! And we'll make more noise, so we hope more people will join!
4.11 beta 2 openSUSE packages available
KDE released the second beta of the KDE Platform, Workspaces and Applications 4.11, and after the necessary time for the OBS to build packages from the released tarballs, packages are available for openSUSE 12.3 and openSUSE Factory. Like the previous beta, they are available through the KDE:Distro:Factory repository. 4.11.x is is targeted for inclusion in the upcoming openSUSE 13.1.
So far 4.11 has been pretty stable for me, but you should never forget these packages are for testing and bug reporting purposes: don’t use them on production systems. In case you find a bug:
- if it is a _packaging bug, _report it to Novell’s bugzilla;
- if it is a bug in the software, report it directly upstream to KDE. Don’t forget there is a specific area on the KDE forums to discuss this beta release.
With that said, let’s find and kill these bugs out there, to make 4.11 rock!
3.10 Linux Kernel Development Rate
While working on the latest statistics for the yearly Linux Foundation “Who Writes Linux” paper, I noticed the rate-of-change for the 3.10 kernel release that just happened this weekend:

Every year I think we can’t go faster, and every year I’m wrong.
Note, the “number of employers” row is not correct, I haven’t updated those numbers yet, that takes a lot more work, which I will be doing this week.
Spreadsheet source, and scripts used to generate the numbers, and “cleaned up” kernel logs can be found in my kernel-history repo here.
I'm going to Akademy (and taking Klyde with me)
Everything's booked: the weekend after next I'll be in Bilbao at KDE's tenth Akademy meeting. Catch my talk about the latest happenings in Klyde, the lightweight presentation of KDE at 14:30 on Saturday in the New Ideas track.
3.10 Kernel Development Rate
While working on the latest statistics for the yearly Linux Foundation “Who Writes Linux” paper, I noticed the rate-of-change for the 3.10 kernel release that just happened this weekend:

Every year I think we can’t go faster, and every year I’m wrong.
Note, the “number of employers” row is not correct, I haven’t updated those numbers yet, that takes a lot more work, which I will be doing this week.
Organizing oSC13 - 22 days before
Niccolò di Bernardo dei Machiavelli
I am so happy that I read some books when I was younger since now I can understand things better in order to accept various sittuations that happen. You see I have that thing that I cannot accept situations that I cannot understand.
We are 22 days before and although we have made a great progress there are things that need to be done. One thing I see clearly the last few weeks is that no matter how important or minor are the tasks left, they get bigger and bigger every day. This happens because when you plan a conference and add tasks you see in your mind the whole picture when ALL those tasks will be done. Of course you reject some in the course of making the conference but now, just 22 days before you want everything to be done. The alternatives we talked before all worked so far but problems keep comming every single day and you just stand in the front line and face them, lossing a task is not an option, not 22 days before. It is a do or die situation.
Of course we seem to be in good shape since so far we are doing great but honnestly I have the fear of the failing. On the other hand failing is not an option so...
The thing is that the situation kind of looks like Lernean Hydra where when you cut one head two other pop up.
Non-YaST Applications Can Benefit from YaST Framework
- y2r - translates YCP code into Ruby
- ycp-killer - manages tasks related to translation of YCP code in YaST modules into Ruby
Y2R Editor
I've been asked by the team to write a simple application allowing writing YCP code that would be automatically translated to Ruby and shown aside. Creating this application using YaST framework was the very next logical step. Development was fast and easy and it has proven that we can use that framework for system applications as well.The whole source code is written in Ruby and it's connected to the YaST framework via yast2-ruby-bindings (version >= 1.0.0).
How to Run the Editor
If you want to try running the editor yourself, follow the README.md file in y2r-tools project. You will need to have y2r project cloned to your system and it's also helpful to have to latest yast2-core from YaST:Head project, because part of it is used for the translation.Note: Just in case it will stuck in the middle of the translation, search for ruby process and kill it (kill -9 $PROCESS_ID). Then write the second quote, please :) Yes, there was a bug in yast2-core that it was searching for closing quote in strings like string message = "Unfinished.
YaST Framework
- UI support for ncurses, Qt, and GTK (as plug-ins) just by writing one single UI definition
- Possibility to use YaST libraries (even those still written in YCP)
- Possibility to use any Ruby library or Gem, such as Cheetah in this case
- SCR - Layer for accessing the system configuration (read, write, execute)
How to Create a sysfs File Correctly
One common Linux kernel driver issue that I see all the time is a driver author attempting to create a sysfs file in their code by doing something like:
int my_driver_probe(...)
{
...
retval = device_create_file(my_device, &my_first_attribute);
if (retval)
goto error1;
retval = device_create_file(my_device, &my_second_attribute);
if (retval)
goto error2;
...
return 0;
error2:
device_remove_file(my_device, &my_first_attribute);
error1:
/* Clean up other things and return an error */
...
return -ENODEV;
}
That’s a good first start, until they get tired of adding more and more sysfs files, and they discover attribute groups, which allows multiple sysfs files to be created and destroyed all at once, without having to handle the unwinding of things if problems occur:


