Want to hack on Akregator? Here is how to set up the environment.

Hello KDE community!

First I want to thank everyone who showed interest for my last post and for the “Akregator reborn” project in general.

The good news of today is that Christophe Giboudeaux (krop) did an amazing job in the last week with moving all the stuff that concerns Akregator in a new branch of kdepim. In the following, I will explain more in details what happened. I will also give some tips for the non-experts on how to set up an environment to comfortably hack on Akregator.

As you might remember from my previous post, the plan is porting Akregator to the Akonadi framework. Until the last week, approaching Akregator’s code for someone who hadn’t followed its development in the last years was something not trivial. Things changed a bit and, as a first step, I am going to explain which repositories you should refer to if you want to hack on Akregator. Before the repositories restyling of the last week, the situation was quite confusing. The Akonadi-based version of Akregator, along with the krss library, used to be in the branch work/akonadi_port of kdepim, the new (well, not that new anymore…) resource krsslocal was in my personal scratch repository and the non-Akonadified Akregator was being developed in kdepim master. Everything is now in a new branch of kdepim named akregator_port. In particular, in that branch you will now find two versions of Akregators:

akregator, based on Metakit;

akregator2, based on Akonadi.

The most immediate goal is making akregator2 complete and stable. Moreover, since the development of akregator (the Metakit one) went ahead during the last years, another goal is merging all the bug fixes and the polishing that were done in it to akregator2. Probably many of them don’t apply to the new code, but some of them might (UI fixes for examples).

Just to recap, in case you want to hack on Akregator, you need to build:

kdelibs KDE/4.8;

akonadi >= 1.7;

kdepimlibs from master branch;

kdepim from akregator_port branch.

WARNING: akregator2 in kdepim akregator_port is unstable and not suitable for daily use yet. Please use it only for testing and development purposes.

When things will become more stable, their placement will become more logical, possibly as follows: akregator2 will replace akregator in the master branch of kdepim, krss will be moved to kdepimlibs and all the RSS-related akonadi resources, such as krsslocal, will go to kdepim-runtime.

Here are some tips for beginners on how to build the above-mentioned libraries and programs. If you are not a beginner, you can skip to the end of the post and start hacking!

The weekend in which I updated my setup for the new environment on my machine turned out to be quite frustrating. The initial idea was reporting each step that led to the setup on this post, but once I had managed to make it working, I started to think: “mmm, why should I waste my time writing up yet another how-to for building a piece of KDE? Probably what I did was not that difficult either…”. What convinced me to write the following tips is Leslie Hawthorn’s amazing essay from “Open Advice”, which reminded me that in fact this is the perfect moment for sharing basic knowledge, this is time when I know “…Everything They’ve Forgotten”.

The process of building KDE strongly depends on the Linux distribution you are using. Of course, the more outdated the packages are, the harder it will be to make things working. This disclaimer is due to the fact that I am using Debian stable and the packages over here are not the most recent ones… An advice: mixing stable and testing packages of a distribution usually doesn’t end up very well. I would rather recommend to install from the sources those packages that are not up-to-date in your distro repositories. If it’s the first time you are building a piece of KDE, you may want to read a bit of official documentation. In particular, the following is mandatory reading that you must not skip:

In my first attempt, I tried to use kdesrc-build to build all the modules, but I didn’t succeed (thanks yottabit and PovAddict for the help with this try). If you manage to make it working, please let me know.

Edited: Frank (fosterfeld – maintainer of Akregator) is using kderc-build to build everything in the above setup, except kdepim-runtime and kdepim. You can try to make his script working on your machine.

I switched to a more manual procedure and things went pretty smooth. I still found extremely useful those scripts that you can download on techbase.kde.org. Don’t forget to customize them according to your preferences. For instance, I built my own Qt, so I uncommented and modified the line

export QTDIR=/usr/local/Trolltech/Qt-4.8.0

in .build-config.

The following is the minimum set of packages that you need to install (notice that they are listed in the same order as the one in which you need to build them):

The libdbusmenu-qt from the KDE repository was not working on my environment, so I used the one from the official repository. Notice that the gitorious version of libdbusmenu is no longer maintained and you need to use the Launchpad repository (again, only if it’s not already included in your distribution). The following command will clone libdbusmenu-qt from the Launchpad repository:

bzr branch lp:libdbusmenu-qt

Another tip: the option -b <name_of_the_branch> of the git clone command clones and checkouts the specified branch. For example,

git clone -b akregator_port kde:kdepim

will clone and checkout our beloved repo . Lastly, when you configure kdepim, run cmake with the option -DKDEPIM_BUILD_MOBILE=FALSE.

If you master KDE development and you haven’t skipped the last paragraph, feel free to comment with corrections and improvements about the above tips.

If you have questions or comment, you can find me (zimba12) in the #akregator and #kontact channels on Freenode, you are welcome to send me an email or just leave a comment below.

The end of this post is dedicated to another exciting news from the last week: Dan Vrátil (progdan, dvratil) wrote KDE Google Reader, a client for reading Google Reader feeds on KDE. Even though it’s just a preview and Dan wrote it “purely out of interest”, it’s still very nice to see a lot of fuss around the RSS/KDE matter. Perhaps someday he will write a GReader Akonadi resource that will integrate with the future Akregator.

28.10.2015 Plasma 5 Powers KaOS ProductivityThe KaOS Linux distro is a very efficient Linux distribution built around a refined KDE desktop environment that just keeps getting better. The KDE integration is much more controlled than you will find in other Linux choices.26.03.2016 KDE Plasma 5.6 ReleasedKDE Plasma is the desktop environment that powers Kubuntu, Chakra Linux and openSUSE . This week sees the release of Plasma 5.6, which brings several tweaks and improvements.17.05.2016 Авторы LEDE — форка OpenWrt — предложат новый встраиваемый Linux-дистрибутив4 мая один из разработчиков популярной свободной встраиваемой Linux-системы OpenWrt, Jo-Philipp Wich, анонсировал новый проект LEDE (Linux Embedded Development Environment), призванный «перезагрузить» активных участников из этого сообщества. Новый проект LEDE отделился от OpenWrt и преследует многие из целей своего родителя: «Мы создаем встраиваемый Linux-дистрибутив, который упрощает для разработчиков, системных администраторов и других Linux-энтузиастов сборку и настройку программного обеспечения для встраиваемых устройств,…02.07.2016 desktop3 added to PyPIThe desktop package provides desktop environment detection and resource opening support for a selection of common and standardised desktop environments. Currently, in Python's standard library, there is apparently no coherent, cross-platform way of getting the user's environment to "open" files or resources when requested by a Python program.23.07.2016 [TORRENT] KaOS 2016.07 x86_64KaOS is a desktop Linux distribution that features the latest version of the KDE desktop environment, the Calligra office suite, and other popular software applications that use the Qt toolkit. It was inspired by Arch Linux, but the developers build their own packages which are available from in-house repositories.29.09.2016 Black Panther OS Is No Cool CatThe Black Panther OS is a bare-bones Linux distribution built around the KDE desktop. The KDE environment itself is not a minimal component, but how it is integrated within Black Panther gives you an almost-nothing-there installation until you painstakingly install system tools and applications, literally piece by piece.24.10.2016 Netrunner Core 16.09 'Avalon' Debian-based KDE Linux distro now available for downloadThe gift and curse of desktop Linux-based operating systems is the ability to change the desktop environment. On one hand, having the choice to pick your favorite user interface, such as Unity, GNOME, or KDE Plasma, can be a huge positive.25.10.2016 desktop3 0.5.1The desktop package provides desktop environment detection and resource opening support for a selection of common and standardised desktop environments. The desktop package provides desktop environment detection and resource opening support for a selection of common and standardised desktop environments.23.11.2016 [TORRENT] Fedora-Scientific_KDE-Live-x86_64-25Wary of reinstalling all the essential tools for your scientific and numerical work? The answer is here. Fedora Scientific Spin brings together the most useful open source scientific and numerical tools atop the goodness of the KDE desktop environment.12.05.2008 VirtualCenter 2.5 Database White Paper PostedVMware® VirtualCenter database stores metadata on the state of a VMware Infrastructure environment and is a key component of VirtualCenter performance. VirtualCenter 2.5 features a number of enhancements that are aimed at greatly improving the performance and scalability of the...