Skip to main content

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

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

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

Quick tip: Novell Bugzilla and Klipper

Klipper from KDE has a set of predefined actions triggered by content of the clipboard. So when you have it enabled, it show up the popup menu with all available browsers when you copy the URL. In my job I open many bugs and the bug numbers have the well defined format bnc#number. So why don’t define automatic action triggered by this regular expression?

Because Klipper expects only oneliner as an action, I wrote the short bash script obug.sh which expects one argument with a bugzilla string.

#!/bin/bash

[ -z "${1}" ] && {
  echo "bug number required"
  exit 1
}

regex='^(bnc|bug)?#[0-9]+$'
[[ "${1}" =~ ${regex} ]] || {
  echo "${1} did not match ${regex}"
  exit 2
}

firefox https://bugzilla.novell.com/show_bug.cgi?id=${1#*#}

It’s obvious how it works – it checks if the argument exists and if matches the pattern and then opens a firefox (it’d be a xdg-open, but I use firefox for Novell Bugzilla). There should be only one strange expression – ${1#*#}. It is a Shell Parameter Expansion. This expression removes all characters from the beginning of the string including first #, so it convert bnc#1234 to 1234.

Then I defined a new action in Klipper triggered by ^(bnc|bug)?#[0-9]+$, which calls obug.sh %s, where %s is the content of clipboard.
Klipper config

And after that all I selected the bnc#1234 by mouse and then the following popup appeared.

One disadvantage of this method is that Klipper opens popup window only near its status icon in systemtray. It would be more useful to show it near current mouse position.

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

WebYaST Status Module

After releasing WebYaST 1.0 last week we have had a look to the status module again and have come to the conclusion that we can do it better. 🙂

The current version looks more like a medical monitoring system that no one understand:

current status page

Technical background

The system data will be collected by a service called collectd (www.collectd.org). This data will be stored in a rrd-database which is located in

/var/lib/collectd/<system-name>/[cpu-0|cpu-1|df|interface|load|memory|….]

An own file/database will for each value will be generated.

The upper screen shot shows that an own graphic will be shown for each value. This is not really user friendly. We would like to show only values which provides “really” interesting information for the sysadmin or user. These values should also be grouped in order to reduce the amount of graphs.

Another lack of information is the labeling of the graphs. There is no description what the values mean and in which period they have been evaluated.

The aim

would be to give the user a nice overview about the system status. Additional, there should be an alarm system available if system values are exceeded. E.g. there should be sent an email to the system administrator if no disk space is available anymore.
The Administrator should also be able to configure “his” needed system values in a nice way.

Suggestion for configuration

configure

There are three parts:

  • General
    General setting like period time of shown data, email address in the case of occurred errors and the color of displayed limits.
  • Graphics
    Defining graphs with
    • labels
    • scales
    • flag for cumulate values
      This means that the values in the graph are added. E.g. the component df of collectd returns two values of a partition (free, used). These values will be cumulated in the graph like this:
      collecdtd disk status
  • Enable Values/Limits
    • Defining which data of collectd will be shown in the graphics described above. This enable us to group data in one graph, defining color and label of each collectd value:
      collecdtd cpu2
    • Defining limits and send an email if the value is overstepped longer than the defined period (Alarm after (min.))

The Result

should be an amount of view graphs which include interesting data only. These values are checked periodically and an email will be sent if they exceed a defined limit.

I am asking for

your opinion about:

  • Do you know a much more fancy way for displaying system status data ?
  • Which kind of Data would be interesting for you (CPU, memory, disk-space,….)?
  • When and for which kind of data would you like to get an email if limits have been exceeded?

So, before changing this module we would like to ask you what you would like to see. 🙂

Thanks in advance.

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

Python...

Изменим чуть-чуть сообщения блога. Посмотрим взаимодействие с python.

В данном примере разберем обращение из python к библиотекам языка C.
Например, создадим скрипт для доступа к printf из библиотеки libc.dylib (MacOS). Для организации данного доступа необходимо воспользоваться модулем python ctypes, который позволяет обращаться к функциям из c-библиотек.


from ctypes import *


Загрузим библиотеку через CDLL:


libc=CDLL("libc.dylib")


Вызовем функцию printf и закончим первый пример:


message="Hello, world"
i=libc.printf("First program: %s\n",message)


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

Cloning openSUSE VirtualBox Machines

... or "Waiting for device /dev/disk/by-ID/... to appear." problem

A guess many people have figured this out by now, but i still know a lot who have not, so here it goes.

There are a few caveats in cloning openSUSE or SLE VirtualBox machines. One is that openSUSE uses device ID in /etc/fstab and grub's menu.lst to reference your hard disk partitions. This is cool for physical machines, since no matter what the usual device name of your hard disk is (/dev/sda, sdb, hda, ...), the device ID always stays the same. When cloning the VirtualBox hard disk image, however, the device ID changes. This consequently causes a problem when booting your new machine with cloned image.

Another one concerns the network card's udev rules, which affect the device names. These are set to use MAC address to identify the card, which also changes when creating new virtual machine (new random MAC address is generated). After booting the cloned machine with this new network card, the original one becomes eth1, and the new one is not configured; you need to configure it, e.g. using YaST. Thanx to Mišo Žugec for this tip.

To avoid these problems, after installing a fresh openSUSE or SLE which i want to use for cloning, i change its /etc/fstab and /boot/grub/menu.lst to use the usual device files, and change the network card's udev rules from MAC to BusID. So, in nutshell, the cloning process looks like this:
  1. Boot the virtual machine you want to use as base for cloning.
  2. Replace the /dev/disk/by-id/...-partY with /dev/sdXY in /etc/fstab and /boot/grub/menu.lst.
  3. In YaST Network module, click Edit to edit the network card, open the Hardware tab, click Change in the Udev rules frame and select BusID instead of MAC address.
  4. Shut the machine down (from within the machine itself, not using VirtualBox's power off).
  5. Find the machine's .vdi hard disk file (usually under ~/.VirtualBox/ dir) and use VBoxManage clonevdi command to clone it, for example:
    (~/.VirtualBox/HardDisks)$ VBoxManage clonevdi my-perfect-oS11.2-base.vdi oS11.2-some-experiment.vdi
  6. Create new machine in VirtualBox GUI and attach the cloned disk image to it when asked. You can also copy an existing machine's .xml configuration file and change the hard disk UUID, or create a script that will do this for you.
You're ready to boot your clone now. Of course, if you cloned a machine still using the device ID for hard disk, you should still be able to boot it, if you pass the right root=/dev/sdXY and resume=/dev/sdXY parameters to grub. You can also reconfigure the network devices after booting. But preparing the base is more convenient, if you need to clone it often.

For more info see:
http://srackham.wordpress.com/cloning-and-copying-virtualbox-virtual-machines/
http://forgeftp.novell.com/lfl/.html/virtualbox.html

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

the avatar of Michael Löffler

openSUSE celebrates X-mas in Nürnberg

The openSUSE team in Nürnberg invites everybody interested in Linux and in particular in openSUSE to join our Christmas party on Wednesday December 16 in the basement of our office building in Nürnberg. We’ll give some presentation about openSUSE 11.2 in action, GIMP and how to participate at our project. Beside of the presentations we have some machines where especially openSUSE  Education and the openSUSE Build Service will be shown but openSUSE 11.2  is available too, of course. More information
We hope to reach out to many local people in the Nürnberg area.

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

Install Multiple Kernel Versions using the YaST Qt Package Manager

You might want to install multiple kernel versions on your system.
The YaST Qt Package Selector provides a nice user interface that allows to manage multiple package versions now.

yast2-qt-pkg 2.18.19 or later supports this feature. You can find packages in my Build Service repository.

First of all you need to tell libzypp that your kernel is a package which is multiversion-enabled by adding this line to your /etc/zypp/zypp.conf:

multiversion = provides:multiversion(kernel)

Start your YaST Software Management. The versions tab shows check boxes for multiversion packages instead of radio buttons.
This enables you to install multiple versions of the same package.

There is also a package group of multiversion packages that list all packages that can be installed in multiple versions.

YaST Qt Package Manager with Multiversion Kernel Packages

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

ATI for n-th time

ATI graphics and Linux on some computers is real problem. I tried fglrx driver , but it doesn't compile in openSUSE 11.2 .

The most recent development is that even radeon driver is no more good for Radeon Xpress 200 built in my laptop. Not that it doesn't work at all, but you have to use strange methods to boot the laptop to the GUI. To be honest, not strange to me, I used startx very often long time ago, but I can imagine what would happen if openSUSE was just installed to try it out. It would be removed from the box faster then it was installed. With so many options out there it would take time to see that visitor coming back.