building kompare from svn

Kevin Kofler kevin.kofler at chello.at
Fri Oct 22 00:10:39 CEST 2010


On Tuesday 19 October 2010, Yngve Inntjore Levinsen wrote:
> I am trying to build kompare from svn, but I am not succeeding. I do not
> find installation instructions on your web page (
> http://www.caffeinated.me.uk/kompare/ ), only where to find your svn
> repository. I tried to download this and use cmake (which I am fairly used
> to), but it does not build.

Well, the web page you found does not tell the whole story about Kompare.

So what happens is that there are 2 main branches of Kompare:

1. the kdesdk trunk, from which KDE release branches are cut (and releases are 
then tagged from those branches). This is basically a straight KDE 4 port of 
the same old codebase we shipped in 3.x, I did this in a rush to keep Kompare 
from getting dropped for 4.0.0, seeing how 3_way_kompare (see below) wasn't 
getting ready in time. Doing the port is what earned me the status of 
maintainer for Kompare, though admittedly I'm not doing as good a job at it as 
I'd like to. I'm keeping the trunk in shape, basically fixing bugs (or at least 
trying to), Otto Bruggeman (a former maintainer of Kompare) has also recently 
fixed a bunch of bugs, but none of us has time to develop new features.

2. the 3_way_kompare branch, which is pointed to by the web page you found. 
That branch is basically a one-man show by Jeff Snyder (je4d in KDE SVN), the 
person who put up that web page, who is semi-actively maintaining it. At the 
time Kompare was to be dropped from the first KDE 4 release (which is when I 
stepped in to resurrect the original codebase in the trunk), this branch was 
in a very sorry state and didn't even compile. When I resurrected the trunk, I 
also fixed 3_way_kompare to at least build (but keep in mind that that was in 
4.0.0 era, so there might be some new breakage from newer Qt and kdelibs), but 
it needed a lot of work to get into shape, so I decided to focus on what 
worked to get something running quickly (time was running really short for 
4.0.0 and nobody else was interested in saving Kompare from the impending 
removal). In the meantime, Jeff Snyder made some improvements, so I'm not sure 
of the current status. (There may or may not still be significant regressions 
from the trunk.) If you're interested in this branch, I'd suggest contacting 
Jeff Snyder directly (I CCed him to this mail). Just be aware that, at least 
last I checked, the branch does not actually have 3-way functionality yet.

As for which branch to focus on, that's a tough question. The trunk is what 
currently ends up in the releases, but the long-term goal of 3_way_kompare is 
to replace the current trunk. (Whether it'll actually achieve this is an open 
question.) Not all changes from the trunk have been merged into the branch 
(Jeff Snyder merged some changes, but I'm not sure he caught all of them; in 
any case, the most recent ones are definitely missing), nor have all the branch 
changes been merged into the trunk (I merged some of them: a clean 
implementation of the splitter using the new features of the Qt 4 QSplitter 
instead of the old hack of the Qt 3 QSplitter, a "refresh diff" menu entry and 
one or two bugfixes). If we want 3_way_kompare to become the new trunk, we need 
to make sure that all the improvements done on the trunk land in the branch. 
If on the other hand we want to just cherry-pick improvements from 
3_way_kompare into the current trunk, there is probably more stuff in 
3_way_kompare worth merging. The problem is that not all of the improvements 
in 3_way_kompare are finished.

> Could someone point me to installation instructions? Thanks!

So in short, you need to have kdelibs installed, along with the files needed 
for software development (which are often in a separate package, e.g. kdelibs-
devel on Fedora). Then, for the 3_way_kompare branch, you should only need to 
build it like any other CMake-using package? What errors do you get? The 
trunk, on the other hand, is part of kdesdk, and so you'll want to run cmake 
on the whole kdesdk directory. You can then run make only for the kompare 
subdirectory if you don't want to build all of kdesdk.

        Kevin Kofler


More information about the Kompare-devel mailing list