Skip to main content

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

virtual kidnapping

I just received a phone call. Here's a transcript, translated into English:

"Dad?"

"Who is this?" [I don't have any children, so I assumed it was just another wrong number. I get lots of those.]

"Dad? [crying] Two men kidnapped me. [crying] Dad?"

Realizing that it was a scam, I hung up.

Fake calls like these are common in Mexico, although I'd never received one until today. My wife's uncle received one a few months ago; unfortunately he was taken in.

Quite chilling, even though nothing happened—to me. I hope the people with the adjacent phone numbers weren't duped.

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

Research of possibility: running YaST anywhere

Hello !

One week ago I installed Fedora Core 9 distribution. But (experienced from openSUSE) there was something I missed : YaST and zypper. So I decide to port them to Fedora (and maybe to other distributons later).

I did something similar a long time ago (it was FC5) but now it seems much easier. Our developers makes UI part independent from ycp language. So I just compile libyui, libyui-bindings, qt, ncurses and was able to run example code in both frontends. With GTK there is still problem that is not cleaned from libzypp dependency.

Then I compiled libzypp and zypper. Then I add installation source - local CD-rom:

zypper ar cd:///?devices=/dev/sr0 CD

And it works perfectly!

Compared to yum is zypper much, much faster. Just for an example (I turn autorefresh on, by default is autorefresh disabled):

[root@dhcp24 ~]# time zypper se rpmlint
Reading installed packages...

S | Name | Summary | Type
--+---------+-------------------------------------------------+--------
| rpmlint | Tool for checking common errors in RPM packages | package

real 0m0.958s
user 0m0.308s
sys 0m0.482s
[root@dhcp24 ~]# time yum search rpmlint
Loaded plugins: refresh-packagekit
======================================== Matched: rpmlint =========================================
rpmlint.noarch : Tool for checking common errors in RPM packages

real 0m2.765s
user 0m1.826s
sys 0m0.788s

With autorefresh disabled search time is even better:

[root@dhcp24 ~]# time zypper se rpmlint
Reading installed packages...

S | Name | Summary | Type
--+---------+-------------------------------------------------+--------
| rpmlint | Tool for checking common errors in RPM packages | package

real 0m0.717s
user 0m0.289s
sys 0m0.362s


Note: I don't wan't to say which tool is better (everybody knows ;-)). Just that you can use zypper on the same installation source like yum. There are some requests on that porting from RH/Fedora users. And also some other people are thinking about this.

Ok, after that I compiled yast2-core, yast2-devtools, yast2-testsuite, yast2-perl-bindings, yast2-ycp-ui-bindings, yast2, yast2-pkg-bindings (maybe I forgot something, sorry). Finally mine package yast2-iscsi-client. Some patch because of distribution differences ... and the result is:



It works! ;-)
So we definitely can run YaST and its configuration modules on Fedora Core 9!

Ok, some work is needed to be done: create Build Service project and as a first step some distribution based patches. After that we should find some system how to use different backends for different distributions (like NetworkManager does). But this is something for another post ...

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

learning ruby…

Recently, I wanted to show how the buildservice makes packaging easier by creating a specfile template for you (just click the “Create RPM SPEC file templat” checkbox when creating a new package). Unfortunatelly, the template it creates is not really useful for someone not skilled in writing spec files. Also, it’s just a static template, so you have to write the summary and description even though you have just entered both in the web form. Definitely nothing to show off to newbies ;-). But knowing that the buildservice developers have more important stuff to do, and wanting to learn something new, I decided give it a try and fix it myself.

My idea is: The buildservice api asks a set of questions, which are presented by the client (webclient, osc, …) to the user, and creates a specfile based on these questions. Also, the api tries to suggest good defaults where possible. After spending some time learning ruby, rails and the api code, I have an ugly 200 line patch to the api that generates a working specfile for GNU hello ;-).

wizard in action

The user interface part is not yet done, but should be easy. What’s more chalenging is adding heuristics to “do the right thing”: detecting the build system (autotools, cmake, Makefile.PL, etc), detecting build dependencies, and so on. Right now, it only extracts the version number from the tar name.

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

the avatar of James Willcox

Out-weaseling Firefox

There has been a lot of buzz lately about the Firefox 3 fsync issue. The work I’m doing these days has me doing a lot of long-running disk-bound activies, so this one hurts me pretty bad. Firefox would stop responding for 30-40s at a time while my job was running in the background, which I think is pretty unacceptable. I have worked around it in the (hopefully) short-term with a LD_PRELOAD hack. I’ve posted it here in case anyone else finds it useful. Just unpack, cd to the directory, and ‘make && make install’ (not as root). A word of warning, though: if it breaks you get to keep both pieces. Kudos to Aaron for adding the ‘make install’ bits to the Makefile :)

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

Orbit, first impressions

Today the Orbit started, with a very nice openSUSE booth. I’m showing Beta3, and so far it’s running quite good. So if you are in Zürich, visit the Novell booth! It’s quite easy to find, it’s the first one if you enter Orbit 🙂

Some Pictures from yesterday (setting up the booth):
orbit 2008 openSUSE flag! setup

Grr, i forgot to bring my camera today. The whole booth looks quite different now …

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

Declaring UI independence

Declaring UI independence

Earlier this year, Stefan announced the availability of the YaST user interface engine separate from YaST itself.
The user interface engine, packaged in yast2-libyui (source code here),provides the abstraction from graphical user interfaces (Qt, Gtk) and text based (ncurses) user interfaces. It now can be used independently of YaST2 for generic (C++) applications.
Now what can you do with it ? First of all, you can use C++ to code YaST-like dialogs which display either in graphical mode (Qt or Gtk style) or text mode. This independence from the output media is a main feature of YaST.
Being separated from YaST, one can use the UI engine for stand-alone programs. A trivial example is a simple window with a text label and an 'Ok' button: HelloWorld.ccHelloWorld.cc Compile with
g++ -I/usr/include/YaST2/yui -lyui HelloWorld.cc -o HelloWorld
and run it via
./HelloWorld
Depending on the DISPLAY environment variable the UI engine automatically determines and loads the right plugin to render the dialog.
A simple unset DISPLAY will give you the ncurses look.

Enter SWIG

Coding dialogs in C++ takes away the highly useful edit-run mode of development which is possible with YaSTs YCP language.
With the help of SWIG, a generator for language bindings, one can now use his favorite programming language for coding dialogs. The initial release of the bindings supports Ruby (libyui-ruby), Python (libyui-python) and Perl (perl-libyui).
Swig can directly translate the C++ classes into e.g. Ruby classes making conversion of the above C++ code to Ruby straightforward: hello_world.rbhello_world.rb Translation to object-oriented Python gives you hello_world.pyhello_world.py Even Perl, although not object-oriented, gives reasonable code. But internals of the Swig-generated bindings are not for the faint-hearted ... hello_world.plhello_world.pl yast2-libyui comes with a couple of more examples.
SelectionBox1.cc shows how to fill a selection list, use buttons and update labels.
(SelectionBox1)
Here's the Ruby version: selection_box1.rbselection_box1.rb Enjoy !

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

Mouse and museums

We started our museum tour in the Albrecht Dürer Haus. That's a great place. The ghost of Dürer's wife is still in it and she answers all the questions you may have. What I liked most was Dürer's workshop with all the colours, animal paws, stones, shells, sketches. Wonderful. Would have liked to move in. But there was one room I have bad memories of. Edith and Antje hung me up on a cord and made a photograph. They used a peg and hung me up on my tail! They can be really cruel. Otherwise I enjoyed this museum. The kitchen was really cool. It even had a toilet in one corner. If the meal is chocolate-free you can unsuspiciously get rid of it. Really liked that. After an hour though I fell asleep as they tortured me with so many photographs.

When I woke up a woman in a costume was holding me in her hands. I thought I must have been put into a time machine. But then I saw Edith taking a photograph of me and this woman. The woman in the costume was nice. She really seemed to like me. There was a bunch of people looking at us. It turned out they were waiting for this woman to show them around in this castle we were in. But of course she found me more important than her visitors. After the shooting we went into a garden with funny and sad figures. They were made out of wood. One was looking so sad that I started talking to it. The figure told me it wanted to sit at the water front some steps away from the main path. But there was this other figure already. So the sad figure was there at the main path holding its head down as it not wanted to be stared at all the time. That's what it told me. But maybe there was something else. I wasn't sure. I was attracted by a figure sitting on a piece of wood. It was so calm and not irritated by anything. I told it to make contact with the sad one to cheer it up. Then I went to another one that was lying on its back. I couldn't figure out what it was doing. It looked like someone in the gym. I tried to imitate it but failed poorly. That's because I'm on wheels. I can't put my wheels up in the air. Then I was put down on a flower that made me sneeze. They are so unconsiderate sometimes. I almost fainted and they carried me to the next museum.

The Spielzeugmuseum was enjoyable. We weren't allowed to take photographs at all. Which was fine. But that also meant there was no reason for Edith and Antje to put me anywhere. I couldn't sit in the Puppenstubn or take place in the cowboy fort, letting redskins in. Otherwise sometimes I was really glad to be forced to stay inside the bag. Those puppets from centuries ago were really scary. They would beat out the shit of me. Most scaring was a whole family of zombies. At least that's what they looked like according to Edith. Amazingly she was right. We also saw many of Antje's childhood toys. She really got silent when she realized that she's so old that her own toys are to be found in a museum. Haha. What really amazed me was the discovery that mice always have been favourite toys. Of course the exhibits were uglier than me, but quite OK compared to some other figures. There was this Mainzelmännchen figure. Ted was his name. I'm not sure but I think he lost part of his ear. I'm sure that was Antje's Ted. She once told me she chew his ear and bit parts of it off. That was when she was young of course. What she no longer is. Haha. Edith didn't discover any of her childhood toys. That's what she pretended at least. Besides some bored kids, there were many elderly people in this museum. One of the mothers was asked by her daughter: 'Can you still buy that in a shop?' She sounded a bit weary when she answered: 'Of course. You can buy that in any shop you want.' It was one of her own childhood toys. I found that very entertaining. As well as all the American visitors who found everything very amazing. I heard Antje mumbling: 'What the fuck is amazing about my childhood toys? We're not looking at dinosaurs, are we?' And then I saw them. Cars. Many of them. Big enough for me to drive them. I sneaked out of the bag, asked the blonde sitting behind the wheel of the sports car to please get out and then I sat down. I crashed with some other cars, just because those ancient figures couldn't drive. So I jumped into the bag again and waited for the next entertainment to come my way. There it was. A big Merry-Go-Round. I wanted to sit down but it was protected by glass. That made me so furious that I fell asleep after some minutes of screaming and beating the floor.

The last place we visited was an exhibiton hall with paintings. When I saw all the cats and dogs from one of the painters I wondered why the hell Antje never paints me. She was only drawn towards two big blue paintings where you can make out neither head nor tail. I just don't get it. Fortunately we went all home then.

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

Redesign of YaST Expert Partitioner

We are redesigning the YaST Expert Partitioner for openSUSE 11.1 and SLE11. The main idea is to have a navigation tree with all available storage devices on the left side and to display information on the right side along with buttons to perform appropriate actions. See the screenshot.

RPMs are available in the openSUSE Build Server in the repository home:aschnell. They are far from finished by you can already navigate in the tree and inspect you storage system. It should be possible to see where we are heading with the redesign. You can install them on your openSUSE 11.0 Beta 3.

the avatar of James Willcox

Some things do change...

Ever since zypper came along I hated it. It was slow, buggy, and used a ton of resources.

Well, I installed openSUSE 11.0b3 yesterday and the zypper/libzypp there is massively improved. I don’t think it’s possible to overstate just how much of an improvement it really is. Normally I just make rcd/rug work on whatever new release comes along and continue using that. Zypper and PackageKit are so good now that I’m giving that up. So congratulations to the zypp team — I know they caught a lot of flack in the past, but I think this release will finally put a lot of that to rest.