Apr
11
2010

[JuK] Am I working?

Yes, I am. I’ve been trying to port the trackpicker to Qt4. Sadly, I realized that the MusicBrianz / TunePimp implementation isn’t working at all.

Due to the reason that libtunepimp is depreciated for ages now, and even musicbrainz2 is, I decided to give it a shot and make a test application.

I today implemented a basic interface and backend which can handle the data. I’m now reading into libmusicbrainz[2|3], to create a working implementation for both.

I’ve done all this in a test application, not in JuK, since JuK will make it even more complicated than it is. I’ve plans on implementing both, as it is with libtunepimp, it will be with musicbrainz[2|3] in future, but with the same API on our side, implemented in two different C++ libraries. This will make the JuK code easier to read on this part.

Why musicbrainz2? Simply, most distributions ship with libmusicbrainz2 (musicbrainz3 is not in the main repositories in most distributions), what forces me somewhat doing that as well.

To be heared (soon) of.

// STi

0
Apr
02
2010

1 Monitoring, 2 Amarok – JuK

I know I was hardly working on JuK lately (not at all to be true), due to other favoured projects as building a own agent based system monitoring framework. I’ve given up that task though, it’s a lot of quite complex work doing this cross-platform (all flavours of unix and windows, mainframe interfaces etc).
Also, I completely underestimated the “pro-active monitoring” suites, which is basically easy if you do it protocol based, but a lot of harder concept-wise.
Besides that it’s a lot of work, I proved my current concepts quite wrong, and have no intention to start over from the start there again.

I decided I’ll work some on JuK again. I was using Amarok lately, because all people say it “rocks”. Maybe it “rocks”, because on my desktop it does play rock (metal) music. But the application itself? I don’t know. I have not succeeded yet getting Amarok to play my playlist randomly, and repeat the playlist. I can just “sort” it randomly by clicking, what’s not too nice in my eyes, while I couldn’t find the “repeat playlist” at all, not even after spending 30 minutes looking + using google. I’m pretty disappointed about that.

So – what’s next? I’ll move on now, no, not away of KDE, but back to JuK. I’ve plans spending some time again there, and I’ll definitely start out porting the last parts of JuK to Qt4 before messing around with other stuff (playlist management in example). I’d also like to make some changes to the UI, especially the playlist / collection management, but I’m not sure how many guys would disagree with that :-) .

Anyway, I decided I’ll take the task of finishing the port, to get it pushed by mpyne again, and will apply for an SVN account then. I’ll go on porting first to see if I really have enough time contributing to KDE.

0
Feb
01
2010

Is KDE moving too fast?

Well, can anything move too fast? I’ve some concerns about KDE and KDE Development speed, or rather the speed features are added.

I recently tried KDE 4.4 SC RC2 (or better, I’m using it as my main desktop). Of course, this is not the final 4.4.0 version, and not even the last one of 4.4.x series.
Allthough, what I realized, it was a huge performance drop on my systems compared to 4.3. Also, it really has a bunch of smaller bugs. The good side is, all bugs I looked for were already reported, even when most were not marked release critical (they are not, so +1 there).

KDE implements new technology very fast, and really gives you a bleeding edge desktop. This probably is needed, so you can get a desktop fitting the time we’re living in.
In my position, I’m using a Dell Latitude E5500 with a Intel 4500 HD graphics card.I disabled all desktop effects (since the hardware is lacking performance in Linux, and the latest Intel drivers are really getting rather worse than better as they promised). Anyway, my system in idle with no applications opened eats up to 15-20 % CPU (of both CPU cores) by default, and after some usage about 2 GB RAM (all I have), what’s quite a lot to me, and generally does not feel as if it was responding quick enough. Nowdays, dolphin needs up to 10 seconds starting up, with an almost empty home directory (6 folders 2 files).

This makes me think on: How’s KDE moving lately? A lot of new features, quite quick release cycles. That’s nice, allthough, is enough time spent in fixing bugs in the cycles? Is there enough drive for performance of the desktop? Computers are evolving, and my system starts to grow old already as well, but I had no intentions buying a new laptop with 6 gb ram and some GeForce graphics card in the near future.

Of course, everyone should go with the time. But thinking on how everybody was trampling on Windows Vista for it’s hardware hungryness – KDE currently is far beyond that.

I hope the best, and still hope the KDE Community and Contributors can prove me wrong about that.

1
Jan
10
2010

Maemo 6 devices

Nokia officially announced a Maemo 6 based device for the 2nd half of 2010, wich will completely be based upon Qt 4.6. I’m really looking forward to this device, and I’ll very likely buy one. Could be the device I’ve been waiting for for years.

Also, they announced that Symbian^3 will be released for smartphones within mid 2010, and Symbian^4 will be released early in 2011, which get a complete UI-Redesign, and also Symbian^4 will feature Qt as the main development platform, what will make cross platform and development a lot easier.

Source: allaboutmaemo.com

0
Dec
23
2009

KDE ~/trunk in ArchLinux

In this tutorial, I describe how to build kde trunk on ArchLinux, using several tools, and providing you with configuration. This is a tutorial for KDE developers (or those who want to become a KDE developer), not for end users.

Basic Design

I decided I want the KDE trunk to be built in it’s own “sandbox”, meaning in a completely closed environment. This is done using a chroot, with basically a 2nd ArchLinux installation on your machine.
I do this for one simple reason, it is possible that you need more recent libraries for the kde trunk, and you may not want to mess up your system with other unstable libraries. You of course could also build and install unstable libraries into your home directory, but I like a closed environment better. Also, there have been problems installing kde to a custom directory lately, due to plasmascripts.py which is part of kdebase-workspace. To avoid this troubles, and even being able to push kde to /usr, I decided for a chroot.

Also, you’re able to do this on machines where you don’t even have root access, even though, you’ll have to change a few parts on the tutorial.

All this boils down to install Arch stable for your private use on your main installation, and a Arch “sandbox” in a chroot.
First Step – chroot environment

There is a great guide how to set up a chroot in Arch in the Arch Linux wiki. It is basically described how to build a Arch32 chroot in Arch64, but with some simple modifications you can also build a Arch64 chroot in Arch64. I’ll anyway describe here how to do it, if it doesn’t work out for you, you may want to read the guide. You’ll find the link in the Ressources section of this tutorial.
First of all, you can set up your arch chroot in any directory, and it must not be /opt, as in my case. This can depend on your partition settings – how ever you like.

mkdir /opt/arch-chroot
cp /etc/pacman.conf /opt/arch-chroot
cp /etc/pacman.d/mirrorlist /opt/arch-chroot
mkdir -p /opt/arch-chroot/var/{cache/pacman/pkg,lib/pacman}
pacman --root /opt/arch-chroot \
--cachedir /opt/arch-chroot/var/cache/pacman/pkg \
--config /opt/arch32/pacman.conf -Sy
pacman --root /opt/arch-chroot \
--cachedir /opt/arch-chroot/var/cache/pacman/pkg \
--config /opt/arch32/pacman.conf \
-S base base-devel sudo ttf-bitstream-vera ttf-ms-fonts
rm /opt/arch-chroot/{mirrorlist,pacman.conf}
cd /opt/arch-chroot/etc
ln -f /etc/passwd* .
ln -f /etc/shadow* .
ln -f /etc/group* .
ln -f /etc/sudoers .
ln -f /etc/resolv.conf .
ln -f /etc/localtime .
ln -f /etc/locale.gen .
ln -f /etc/profile.d/locale.sh profile.d
cp /etc/mtab .

There is a rc-script which is used to start the Arch chroot. You can add this to your rc.conf if you like.
You can save this file to /etc/rc.d/arch-chroot

You can also download it from >here<

#!/bin/bash
. /etc/rc.conf
. /etc/rc.d/functions
case $1 in
start)
stat_busy "Starting Arch chroot"
    mount --bind /proc /opt/arch-chroot/proc
    mount --bind /proc/bus/usb /opt/arch-chroot/proc/bus/usb
    mount --bind /dev /opt/arch32/dev
    mount --bind /dev/pts /opt/arch-chroot/dev/pts
    mount --bind /dev/shm /opt/arch-chroot/dev/shm
    mount --bind /sys /opt/arch-chroot/sys
    mount --bind /tmp /opt/arch-chroot/tmp
    mount --bind /home /opt/arch-chroot/home
    add_daemon arch-chroot
    stat_done
    ;;
stop)
    stat_busy "Stopping Arch chroot"
    umount /opt/arch-chroot/proc/bus/usb
    umount /opt/arch-chroot/dev/pts
    umount /opt/arch-chroot/dev/shm
    umount /opt/arch-chroot/dev
    umount /opt/arch-chroot/sys
    umount /opt/arch-chroot/tmp
    umount /opt/arch-chroot/home
    rm_daemon arch-chroot
    stat_done
    ;;
restart)
    $0 stop
    sleep 1
    $0 start
    ;;
*)
    echo "usage: $0 {start|stop|restart}"
esac
exit 0

As the next step, you must chmod the file to be executable, and you should enter your chroot.

chmod +x /etc/rc.d/arch-chroot
/etc/rc.d/arch-chroot
chroot /opt/arch-chroot
/usr/sbin/locale-gen

Installing the KDE build dependencies

pacman -Sy subversion git bzip2 libxslt libxml2 libjpeg \
libungif shared-mime-info mesa boost dbus \
openssl pkgconfig xine-lib clucene redland \
gpgme hal cmake qt qca libical lcms xorg-server perl-libwww\
automoc4 akonadi eigen taglib soprano strigi qimageblitz phonon \
pulseaudio xorg-server gstreamer0.10-good-plugins

Setting up your KDE Development user

This step is important. You may not want to crash your local kde user and ~/.kde4 or ~/.kde directory. Since this needs environment variables, as well as your KDE install will need them, we create a own user for this.
Make sure your user is added to all groups you need for kde development, in example if you need sound or device plugging. This example includes my current configuration.

useradd -g users -G disk,wheel,games,kvm,dbus,hal,network,video,audio,optical,floppy,storage,power,policykit -m kde-devel -s /bin/bash
passwd kde-devel

Next, you should edit your ~/.bashrc
Add the following pathes and settings. This must be local user settings, if you use ksh or another shell for your user, make sure this settings work!

export QTDIR=$HOME/qt4
export PATH=$QTDIR/bin:$PATH
export LD_LIBRARY_PATH=$QTDIR/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=$QTDIR/lib/pkgconfig:$PKG_CONFIG
export KDEDIR=$HOME/kde

export KDEDIRS=$KDEDIR
export PATH=$KDEDIR/bin:$PATH
export LD_LIBRARY_PATH=$KDEDIR/lib:$LD_LIBRARY_PATH
export QT_PLUGIN_PATH=$KDEDIR/lib/kde4/plugins
export PKG_CONFIG_PATH=$KDEDIR/lib/pkgconfig:$PKG_CONFIG_PATH
export CMAKE_PREFIX_PATH=$KDEDIR:$CMAKE_PREFIX_PATHexport KDEHOME=$HOME/.kde4
export QTEST_COLORED=1
export KDE_COLOR_DEBUG=1

export DISPLAY=:1

kdesvn-build

kdesvn-build is a tool to easen installing the KDE repositories, this will easen up things a lot.
kdesvn-build must be configured properly. I provide my current configuration for you to download >here<

The configuration should work out of the box, I’ll describe shortly some of the options I edited.

First of all, the qt-kde git repository is fetched by http, because kdesvn-build has problems with git urls for some unknown reasons.

Also, you currently need to build phonon first form the qt repository, and then from the kdesupport library. I don’t really know why, maybe has to do with the qmake configuration parameters available building qt with phonon. This trick comes from Thiago Macieira, some KDE users on #kde-devel in IRC told me about that it’s currently needed.

Now, you should download the latest kdesvn-build from the official kdesvn-build page, extract it, and copy the kdesvn-build file in the user directory of the kde-devel user.

After you have this, kdesvn-build directory should include kdesvn-build and .kdesvn-buildrc

Now, run kdesvn-build, and ensure that you include the option –no-snapshots the first time you run it. This has the reason that kdesvn-build prefers snapshots on the first checkout, updating just a few files later. The problem is, that the svn snapshots of kde are broken (in example taglib/admin is fetched of 3.5 branch, which is just one of a lot of problems in the -svn snapshots I stumbled over).

Also note, that kdesvn-build obviously has problems building kde to /usr and qt to a custom directory at the same time. I talked Michael Pyne (maintainer of kdesvn-build) about this, but decided I will try to fix the bug myself, due to the reason that I can reproduce the problem. The version at the time writing (1.10) is still broken.

./kdesvn-build --no-snapshots

Afterwards, your ~/ direcotry should look like this:

drwx------ 9 kde-devel users 4096 2009-12-13 19:38 .
-rw-r--r-- 1 kde-devel users 6 2009-12-13 19:38 .kdesvn-lock
-rw-r--r-- 1 kde-devel users 12419 2009-12-13 19:37 .kdesvn-buildrc
-rw-r--r-- 1 kde-devel users 2786 2009-12-13 19:37 .kdesvn-build-data
drwxr-xr-x 2 kde-devel users 4096 2009-12-13 19:27 .config
drwxr-xr-x 10 kde-devel users 4096 2009-12-13 18:59 qt4
-rw------- 1 kde-devel users 2077 2009-12-13 17:58 .bash_history
drwxr-xr-x 3 kde-devel users 4096 2009-12-13 17:33 .subversion
drwx------ 3 kde-devel users 4096 2009-12-13 17:17 .dbus
drwx------ 3 kde-devel users 4096 2009-12-13 17:14 .kde4
-rw-r--r-- 1 kde-devel users 674 2009-12-13 17:13 .bashrc
drwxr-xr-x 7 kde-devel users 4096 2009-12-13 06:22 kde
drwxr-xr-x 19 kde-devel users 4096 2009-12-13 05:23 kdesvn
-rwxr-xr-x 1 kde-devel users 208941 2009-12-09 02:39 kdesvn-build
drwxr-xr-x 6 root root 4096 2009-12-08 20:15 ..
-rwxr-xr-x 1 kde-devel users 182 2009-02-09 22:43 .xinitrc
-rwxr-xr-x 1 kde-devel users 100 2009-02-09 22:43 .xsession
-rw-r--r-- 1 kde-devel users 16 2009-01-28 20:30 .bash_profile

Running kde trunk using Xephyr

Xephyr is a tool for nested sessions which shipping with the XOrg server. In archlinux the package xorg-server includes Xephyr, which was installed in the first chapter.
Switch into your chroot, and start Xephyr:

sudo chroot /opt/arch-chroot
/etc/rc.d/dbus start
Xephyr :1 -extension GLX -screen 1024x768 &;

You could also use a script to do this for you, and put it into your PATH (/bin/sbin) in your chroot environment:

#!/bin/bash
if [ ! -e /var/run/dbus.pid ]; then
    /etc/rc.d/dbus start
else
    /etc/rc.d/dbus stop
fi
if [ -e /var/run/dbus.pid ]; then
    rm /var/run/dbus.pid
fi

/etc/rc.d/dbus start

Xephyr :1 -extension GLX -screen 1024x768 &

Start your KDE session

su - kde-devel
startkde

Keyboard Layouts

If you’re using evdev, you’ll very likely experience problems with your default keyboard layout and keymappings in Xephyr, since Xephyr uses XKB.
Now, there’s a simple workaround for this, run as user (in example on your primary system with your primary user)

xmodmap -pke > ~/.xmodmap
mv .xmodmap /home/kde-devel/.xmodmap

Now autostart xmodmap when your kde4 session starts:

su - kde-devel
vi .kde4/Autostart/xmodmap
#!/bin/bash
xmodmap ~/.xmodmap
chmod +x ~/kde4/Autostart/xmodmap

Ressources

ArchLinux Wiki (Arch32 chroot on Arch64)
KDE Techbase (Getting Started/Build/KDE4)
KDE Techbase (Getting Started/Increased productivity in KDE4 with Scripts)
KDE Techbase (Getting Started/Build/KDE4/ArchLinux)
KDE Techbase (Getting Started/Set up KDE4 for development)
kdesvn-build

2
Nov
01
2009

64bit Time for the last one …

It has been time that the last thing I was running on 32 bit moves to 64bit. We all know that 64 bit is the future for all operating systems, and I rather tend to be an early adopter.

This means, the last system – this server – was moved from 32 to 64 bit by now. I had some struggle getting the mail server running (postfix knows how to drive me crazy), but overall everything went great, and the backup of the databases also worked properly.

Development side: Nothing new to say, I hardly had time to continue anything, but hope I’ll get something done tomorrow.

0
Oct
17
2009

News? None :D

I’ve been very busy lately, due to 3 of my colleges being on vacation, I was always quite broke coming home from work. I rather spent some time with a book or watching TV than developing, because developing isn’t really that relaxing.

So, what’s going on. I started working on the last patch for JuK again, but didn’t really get much along. I fixed a couple of bugs in QTiNT, which is quite nice. Allthough, the progress could be better, the model / view of the Tree still isn’t implemented properly. But the tree loading and XML parsing is done.

Next, I’m doing quite fine by not smoking anymore. Currently, it’s easier than I thought.

I’ll blog as soon as there are real news again.

0
Oct
05
2009

Quit Smoking … ouch

I finally decided I should quit smoking. It’s not really for the financial point, but rather for my health, and even more important – I always disliked how cold smoke smells.

So, I decided to do some softlaser therapy, and since my arranged date was today, I quit smoking yesterday.

Today in the morning I got a call .. the guy who should do my therapy is ill. Now I’m stuck .. still not smoking, but quite nervous. Let’s see how long I hold that one .. it’s just about not smoking a week until I can do my therapy … but will I still need it then? If I can survive without getting weak, I could do it longer.

0
Sep
16
2009

QTiNT Refacturing

Yea, right. Not even the basic features are done, and I’m already refactored the first time. I’ve found some real issues with the former code design, and decided to refactor those parts.

This sadly means, that I havn’t been implementing any additional features. I personally like the code design better now, and it’s easier to handle http connections and parallel processing without a endless-queue effect.

I have completely implemented tree loading and the XML parsing of the tree for now. Actually, the displaying part is missing, even when the classes (TreeModel, TreeItem) are already written. Allthough I decided not to continue there, but do some additional http transfer stuff and parsing for the “basic claims data”, means the data defining things in the client like available severities and so on, which most likely also will include a rewrite of parts of the message frame (making it more dynamically).

0
Sep
04
2009

oracle-xe on 64bit arch

Phew, what a run. I basically wanted to install oracle-xe with backwards compatibility libraries first. Since this didn’t work out, I installed kvm and installed it using ubuntu. Due to my wireless driver, I wasn’t able to bind ports correctly (or I was able, but I was pissed off by the long boot times :D ).

Now, I decided to set up a arch32 chroot, and install oracle-xe there. It worked out quite fine on the 2nd try (made some mistakes on the first try).

So now, I have a nice system – up and running with oracle, still using 64 bit. That’s great, since I also can run some 32 bit apps which I always wanted to run on my 64bit box.

0