Building an Ubuntu or Kubuntu Natty Package for Choqok 1.1

Choqok seems to be about the only native microblogging client for KDE. It's actually a rather nice app, but I've found it to be rather buggy when it comes to Twitter authentication. For the last few months it has moaned about not being able to authenticate, after which it crashes. Starting the app again does the same thing, which means it crashes constantly, and you're left without a Twitter client.

The latest version of Choqok, version 1.1, seems to have fixed this bug. With this in mind, I looked for a PPA with version 1.1, but didn't find anything. I decided to build it myself, including a package so that I can install and uninstall it cleanly on my system, and so that it would work with the existing packages.

If you're compiling software on Ubuntu, there's a nice little application called "checkinstall" that will build a package file for you, based on the instructions in the Makefile for the "make install" step. By setting the parameters of the package correctly, you can ensure that it replaces the current package correctly, and when you upgrade to the next release of Ubuntu it will be removed in favour of the version in Ubuntu.

First, let's install some of the packages we'll need to compile Choqok:

$ sudo apt-get install build-essential checkinstall kdelibs5-dev libqjson-dev \
libattica-dev libqca2-dev libindicate-qt-dev libqoauth-dev

Now that we have those, we need the latest version of Choqok itself. Download the bzip2ed tarball from SourceForge.net. Once you have that, you need to extract it:

$ tar -xjvf choqok-1.1.tar.bz2

Once the files are extracted, you can compile Choqok:

$ cd choqok-1.1
$ mkdir build
$ cd build
$ cmake -DCMAKE_INSTALL_PREFIX=`kde4-config --prefix` ..
$ make

Now comes the magical part where you create a package. Normally one would run checkinstall as root so that it can install the package. I didn't want to do that, because I wanted to manually install the package myself via gdebi-kde, so I ran it as my user, and let it complain that it couldn't install the package.

$ checkinstall

When you first run checkinstall, it will ask you to confirm the package details. You need to change the following fields:

  • Maintainer: Your name and e-mail address
  • Summary: Choqok is a fast, efficient and simple to use micro-blogging client for KDE. It currently supports the twitter.com and identi.ca microblogging services.
  • Name: choqok
  • Version: 1.1
  • Release: 0ubuntu1~natty1
  • Group: kde
  • Provides: choqok
  • Replaces: choqok

Here's what it should look like:

This package will be built according to these values: 

0 -  Maintainer: [ Your Name <you@example.com> ]
1 -  Summary: [ Choqok is a fast, efficient and simple to use micro-blogging
client for KDE. It currently supports the twitter.com and identi.ca
microblogging services. ]
2 -  Name:    [ choqok ]
3 -  Version: [ 1.1 ]
4 -  Release: [ 0ubuntu1~natty` ]
5 -  License: [ GPL ]
6 -  Group:   [ kde ]
7 -  Architecture: [ amd64 ]
8 -  Source location: [ build ]
9 -  Alternate source location: [  ]
10 - Requires: [  ]
11 - Provides: [ choqok ]
12 - Conflicts: [  ]
13 - Replaces: [ choqok ]

After this checkinstall will run, but will ask you a few more questions. Just read the questions carefully, and do what checkinstall suggests. Once this is done, a package will be left in the "build" directory you created earlier. It should be called "choqok_1.1-0ubuntu1~natty1_i386.deb" or "choqok_1.1-0ubuntu1~natty1_amd64.deb" depending on your platform.

Now run gdebi-kde to install it:

$ gdebi-kde choqok_1.1-0ubuntu1~natty1_i386.deb

This will notify you that there is an older version in a channnel, which is the version we're wanting to replace. This is fine, so just continue with the installation.

Once that is complete, you can start up Choqok, and you should have a working microblogging client!