My KDE week

The KR49 repo holds KDE SC 4.9.1 packages for openSUSE users, including openSUSE 12.2 which was released recently. For information on how to update please refer to the openSUSE wiki.

They do already contain a fix for Bug 306260 – KWin freezes when navigating between windows.

For 12.2 KR49 now includes Tomahawk an alternative to Amarok. Packages such as digikam, calligra etc. were updated to their latest stable release.


The KR49 repo holds KDE SC 4.9 packages for openSUSE users. For information on how to update please refer to the openSUSE wiki.

UPnP support was disable for the KR49 packages since it causes lots of crashes (if Windows shares are present on the network) and seems unmaintained within KDE, i.e. no fix to look forward to.


Packaging-wise kudos go to Todd, Nico and everybody else doing the packaging in KR49.  If you find any packages missing in KR49 compared to KR48 please submit them via the buildservice or  drop a note on the opensuse-kde mailinglist.

KDE-wise I would like to thank especially Laurent Montel who contributes a lot to fixing-up kmail2, including adding email backup and import functionality. András Manţia is another developer who helps to get kmail2 into shape and re-worked the filtering for 4.9.  (There are of course many more who contribute to KDE!) Since AFAIK both work for KDAB, it is good to see that there are still developers payed to work on KDE while most distros seem to overload their so called KDE-team with non-KDE stuff, resulting in little or no contribution to KDE and just enough time to get packaging done, if at all.

Things I noticed with KDE SC 4.9 so far

In dolphin one can now add extra information to the main view, i.e. next to each item. Actually a nice feature. The sad thing is that it only works for indexed folders. The user cannot know about this and is presented with lots of “-” below each icon instead of just not showing anything if there is nothing to show. Enabling the additional information will block dolphin’s GUI for some time proportional to the amount of items in the current folder. Indexing still has some issues, e.g. nepomuk re-indexes movie and some sound files after every log-in. On top of that instead of just checking the length etc. it reads the whole file, i.e. hundreds of MB just to  start all over again after the next log-in.

The places pane presents some new items, i.e. you can add searches to it. While some default searches do not seem to be of any use, i.e. e.g. just list all audio files or pictures from all over the computer, the time-related queries can be quite useful if you are willing to invest the GB needed to build up an index for 70 000 files.

Regarding mail loss, the bugs were unfortunately not fixed yet for online IMAP. There are two issues. a) You lose email if you move it to a local folder and the internet connection breaks down while kmail2 is still downloading the message. b) You also lose email if you pipe the emails in your imap folders through external apps such as bogofilter. For the latter a workaround exists. If you open the properties of the imap folders and enable “always retrieve full message” you will not lose emails because of piping unless a) kicks in.

Apper seems to become more stable. While it still suffers from a – let’s say – incomplete zypper backend for PackageKit on openSUSE, it lets PackageKit processes die within reasonable time and does not block zypper forever anymore.

Do not update to the packages in the KDE:Release:48 repo. The repo is currently broken.

See and

UPDATE: Issues seem to be sorted out by now.

If you think that you cannot help packaging, you might want to re-consider, since with the open buildservice at you can already help packagers with just a few clicks in your browser and without the risk of breaking anything – not only for openSUSE but also for Fedora and other distros.

While creating a new package might be out of scope for most distro users, updating a package is often very easy. All you need is a browser.

To start the small series on how to work with the buildservice’s web front-end, let’s have a look at updating an existing package to a new version. Very often the procedure of updating a package consists of only three steps which can all be done within your browser:

  1. create a copy of the package to update
  2. upload a new tarball and change the version string within the package
  3. submit changes back to the package repo

Example: Updating a package

To make this easy to follow, I will give an example and break down the procedure into tiny steps.

Copying/Branching the package

  1. log into the open buildservice (you can register for free)
  2. click on All Projects
  3. click on the repo the package you want to update is part of, e.g. KDE:Extra
  4. click on Packages
  5. click on the package you want to update, e.g. luckybackup
  6. below the summary, click on Branch package (only available if you are logged-in) and on OK when asked if you really want to branch the package

You are now re-directed to the branched package within your home project. At the top of the website you can see the path to the package, e.g.  openSUSE Build Service > Projects > home:username:branches:KDE:Extra > Packages > luckybackup. This shows that the buildservice created a sub-project branches:KDE:Extra within your home project. If you want to navigate there manually you can click on Home Project at the top-right of the website, then on Subprojects and finally on branches:KDE:Extra.

Below that path you have a bar with links which we will use within this example, e.g. Overview, Sources etc.

Within your home project you can alter the package without breaking anything in the original repo. If you messed-up, just remove the package/sub-project and re-try.

Updating the package

Packages are built from tarballs, i.e. archives of the app’s source code. To update the package you have to re-place the existing tarball and alter the version string of the package.

  1. click on the package within your home project
  2. click on Sources

You will see the list of files within the package.

  • luckybackup.spec: The spec file contains the information on how to build the package. Except for changing the version string you will not have to worry about it in most cases.
  • luckybackup.changes: This is a log of the changes applied to the package. You will have to add something like “- updated package to version x.y.z”.
  • luckybackup-0.4.6.tar.gz: This is the tarball of the app’s source code. You can get it from the app’s website or create one yourself in case you are updating a git snapshot.
  • xyz.patch: Patches that are applied to the source code before building. Most often you will not have to worry about those.  Some hints about handling patches – in case it is necessary – will be part of one of the next posts.

Most files are represented as links. If you click on them you can edit them within your browser.

HINT: If you have trouble with the browser editor, e.g. line numbers not fitting the text or underscores not showing-up, change the fixed font to e.g. Droid Sans and increase its size.

While you might want to have a look at the details of the spec file, most often you just need to find the line:

Version:        0.4.6

and change it to e.g.

Version:        0.4.7

To save the changes click on the save icon  at the top of the editor. If you have a look at the spec file it will most probably use that string to determine the file name of the tarball to use for building the package, e.g.:

Source0:    %{name}-%{version}.tar.gz

This means that the tarball with the new version has to be named luckybackup-0.4.7.tar.gz. There are several ways to add a new tarball to a package, the easiest is to download the tarball to your computer and then upload it to the package on the buildservice.

  1. go to the sources list and remove the old tarball by clicking on the remove icon  next to it
  2. click on add file below the list and select the file on your computer
  3. only in case it does not have the above mentioned name you will have to enter the correct file name into the input filed
  4. save changes

Now click on the luckybackup.changes file to add the changes you made to the package. To insert a new item just click on the Insert changes entry template link at the top of the editor.

Re-submitting the package

If you click on Overview or Monitor you can see the build status of the package. Clicking on the status will open the log. You can follow the build process and check for errors. In case the building succeeds you can re-submit the updated package. Re-submitting can still not break anything within the original repo! Only if the submit request is accepted by the repo maintainer the changes will become relevant to the repo.

To re-submit simply click on Sources within the package. You will find a link Show the diff and submit these changes back. Click on it, click on submit and add a comment to the submit request, i.e. what you did. Submit the the diff.

That’s it! The buildservice will automatically send an email to the repo’s maintainers and they will handle your submit request.

Build failing

Of course building an updated package might fail. The most trivial error is e.g.:

error: File /usr/src/packages/SOURCES/luckybackup-0.4.75.tar.gz: No such file or directory

which tells you that the buildservice cannot find the file you told it to build, i.e. either the file name is wrong or the strings that are assembled to create the file name within the spec file. I will add some more hints on how to resolve other trivial errors in the next post.

Feel free to add comments in order to improve this little howto.

As you can read all over PlanetKDE, Calligra 2.4 has been released. In case you have not found them yet, since quite some time Calligra packages(including Krita) are available for openSUSE users, e.g. in KDE:Release:48. Koffice2 packages are removed.

One of the most re-occuring questions regarding KDE PIM within openSUSE is, how one can sync data with Google. KDE:Release:48 now holds the package akonadi-google which replaces the unmaintained akonadi-google-data package.

Both, Calligra and akonadi-google, will be part of openSUSE 12.2.

Finally I would like to point openSUSE KDE users to the beta packages of Digikam. IMHO Digikam is one of the most active and responsive (including handling) projects within KDE – attracting new developers by attracting more users. Those that want to help testing Digikam but are not familiar with building software, can get git snapshot packages from KDE:Unstable:Playground. Beware, those are git snapshots and thus might break some functionality. The package is updated at least once a week, so it should help to check for fixed/new bugs.

KDE packages for openSUSE, including Qt 4.8.1, are ready in the KR48 repo. This release is supposed to solve issues with nepomuk/virtuoso-t consuming a lot of CPU and does of course include a lot of other bugfixes. Unfortunately the mail loss bug that appeared with KDEPIM 4.8.1 in combination with a “pipe through” filter was not fixed. I guess more feedback and a devel who can re-produce the issue is needed.

If adding the repo, remember to not mix KDE:UpdatedApps (KUA) or KDE:Extra with KDE:Release:48. KUA is not needed and for Extra you can find the appropriate repo on the wiki.

If you would like to get into the KDE team at openSUSE, drop by on IRC (#opensuse-kde) and/or join the next meeting taking place next week Wednesday 11.04. 17:00 UTC on that channel.

There are annoying bugs and there are data loss bugs. The problem with the latter is that if people notice them it’s already too late. So I would like to collect all the data loss bugs for KDE PIM in order to attract testers and help debugging them, i.e. find a way for developers to re-produce them reliably.

Also, knowing what can cause data loss enables users to work around these scenarios and hence saves a lot of anger towards the devs.

So please point me to data loss bugs and test those listed already. If bugs are re-producible and confirmed by several users using different distros they are more likely to get fixed. Please do not add another “me too” to bug reports which already have a confirmation for your distro! Please do only test with current packages, i.e. akonadi 1.7.1 and KDE PIM 4.8.1.

Bug 293768

Symptoms: body and attachments are lost.

How to reproduce: Disconnect network while akonadi is downloading an email to move it to a local folder.

  1. Send a very large (long time to download is needed) email to your online imap account.
  2. Click on the email to make kmail display the “loading screen” in the preview pane.
  3. Press DEL to move the email to the local trash.
  4. While akonadi/kmail are still downloading, disconnect the network, e.g. open the networkmanagement plasmoid and untick the “enable network” checkbox.
  5. The email you deleted was moved to the trash as soon as the network got disconnected, even though downloading was not finished. Hence the email in the trash lost its body and attachments.

Bug 295484

Symptoms: Body and attachments lost when piping through external application and adding headers.

How to reproduce: Filter incoming emails through an external app which adds headers.

  1. Create spam filtering rules for spamassasin (or bogofilter) via kmail’s wizard.
  2. Make sure they are applied to your imap’s inbox.
  3. If possible open your imap account in a webmail interface.
  4. Wait for new email to arrive and check with the webmail interface how the email is replaced. Do not read it, since the bug is not re-producible with read email or by applying filters manually.
  5. After akonadi/kmail has filtered the email and added the anti-spam tool’s header, open it in both kmail and the webmail interface. Both show that the body and attachments are gone.
  6. For bogofilter you have to train it first (marking emails as spam and ham) in order for it to actually add any headers, i.e. trigger the bug.

Bug 286043

Symptoms: Headers as well as body and attachments are lost.

How to re-produce: This bug was not tested yet with recent packages and does not state a way to re-produce, so if you know how, please add it.

Bug 281704

Symptoms: Emails lost if KDE PIM is closed while copying from imap to imap.

How to reproduce: Copy/move an imap  folder and close kmail while the transaction is still in progress.

IMO this could be a duplicate of bug 293768.