Skip to main content

a silhouette of a person's head and shoulders, used as a default avatar

Easy-to-try Appliance with Yast Services Manager written in Ruby

Last week I've blogged about Yast Services-Manager - future replacement for YaST Runlevel, tool for managing systemd written in Ruby. We had some issues with using the newly developed code on openSUSE 12.3 as the code is planned for openSUSE 13.1 and further. It usually dragged in several new dependencies and they sometimes were not built properly.

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-manager
/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
 After 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.

I hope it's going to be useful for you!
a silhouette of a person's head and shoulders, used as a default avatar

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 :

So close, no matter how far

Couldn't be much more from the heart
Forever trusting who we are
And nothing else matters

It is those last days before the conference that let you know what you are made of. New people comming, some people canceling, suddently companies and organizations woke up and want to be a part of it but there is no way to make this work, finalizing everything is a do or die situation... Not a walk in the park I would say. 

The good thing is that I see task on trello moving from doing to done really fast and that calms me down. I am a bit angry because I wanted to be at this years aKademy but again I cannot due to the conference, I promised myself(again) that next year I will be there, lets see. 

Deadlines are over one by one fast, but for some reason this is relieving since it means fewer things to be done. I hope that next week will be the calmer of all in that almost 9 month period that we work for the conference, my other half of the organization team, Stella things that I am wrong but we will know that in a few days. It is not that I could use a calm week, it's been so long since I started working for 16/24 7/7 for the conference that I am not sure I know what to do with that 'Free' time. Ok I honestly hope my girlfriend doesn't read that particular post :D
In the end of all one thing is for sure, this is the most crucial week of the period, if something goes wrong this week the changes to make it right are very few, but it won't, I planned the whole damn thing this way, lol...

the avatar of Vincent Untz

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!).

First OpenStack Meet-up in Rhône-Alpes!

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:

Happy birthday OpenStack!

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!

a silhouette of a person's head and shoulders, used as a default avatar

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:

With that said, let’s find and kill these bugs out there, to make 4.11 rock!

the avatar of Greg Kroah-Hartman

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.

the avatar of Will Stephenson
the avatar of Greg Kroah-Hartman

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:

3.10 rate

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.

a silhouette of a person's head and shoulders, used as a default avatar

Organizing oSC13 - 22 days before

"It is in the nature of things that every time you try to avoid one danger you run into another"
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. 
a silhouette of a person's head and shoulders, used as a default avatar

Non-YaST Applications Can Benefit from YaST Framework

As you already know, YaST team has been working on an automatic translation of the YaST code from YCP to Ruby. This is possible thanks to two projects

  • 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

Applications written using YaST framework can benefit from several features:
  • 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)
Everything is at GitHub. Try it, and tell us what can be enhanced and how!
the avatar of Greg Kroah-Hartman

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: