|
|
Subscribe / Log in / New account

Development

Why the KDE project switched to CMake -- and how

June 19, 2006

This article was contributed by Alexander Neundorf

Why the project revamped its build system for KDE4

KDE developer Alexander Neundorf explains the background for the move away from the traditional "autotools"

KDE is one of the largest Free and Open Source Software (FOSS) projects. It follows the typical "distributed development" model used by many other FOSS applications. More than 1.200 developers around the planet have accounts and credentials to access its central source code repository. This repository currently holds more than 4 million lines of program code, translations of approximately 100,000 user interface strings (and many more lines of application manuals) into more than 80 different languages. Every day there are about 300 or more "commits", adding new or modifying existing content.

Any software project of this size and scope can only prosper and go forward if it uses tools that are good enough to manage and build all its code, for all its contributors, on all supported OS and CPU platforms, all the time, without major problems. Oftentimes "good enough" here translates into: "the best one that is available for our purposes".

For its central source code management KDE last year migrated from the venerable "Concurrent Versioning System" (CVS) to the newer, more powerful Subversion (SVN) software. That change in itself was an enormous stress test for the capabilities of the still young SVN project: a year ago, several preparatory "dry runs" which simulated the pending move revealed quite a number of bugs and performance problems in advance. Close cooperation of some core KDE hackers with the Subversion developers lead to fixes and improvements to SVN itself before the real change-over for the huge KDE repository finally happened.

Now the next big change is happening: KDE is leaving the aging "autotool" build chain behind. Some developers, not only in KDE, like to nickname the autotools as "auto-hell" because of its difficult to comprehend architecture. So, KDE 4 will feature a completely different build system: CMake.

In typical KDE fashion the current move to CMake was not a "decision by committee". Instead, the old rule "who codes, decides" made itself felt once again. Let's look back at the history of this change.

The principal move away from autoconf, automake, configure, libtool & friends was decided at last year's annual KDE conference, akademy. KDE developers at the time discussed and evaluated several alternatives: back then, SCons (a Python-based build tool) was favored, spiced up with a KDE-wrapper called bksys to help with the actual work. SCons/bksys already worked well for a number of developers who used it in their sub-projects, and the tandem seemed to easily win the race. Up until January 2006, several people worked hard on replacing the existing autotools based build system of KDE3 with SCons/bksys for KDE4. Their first acid test was to make it compile kdelibs on various platforms.

However, various hurdles showed up unexpectedly. The KDE individuals who tried to bring SCons into a shape that made it fit for building such a huge project felt they didn't have any support from the upstream SCons developers. There were major problems building KDE on non-Linux platforms with SCons (e.g. on OS X); in general they felt it did not yet have a mature configuration system. The only option down that road was to create major SCons fixes and patches on their own. Since these changes would not likely be included in the upstream sources, it would require permanent maintenance of the fixes in a separate repository. In effect, this would have amounted to a fork of SCons. KDE developers would have had to maintain the new build system entirely on their own. So the rosy SCons/bksys image paled again....

It was decided that CMake would be the build system for KDE 4. Beginning now, CMake will be the tool that is used to base all of KDE4 development.

Read the Full Article, including a section on the move of the Scribus project to CMake, and the current state of KDE 4.

Comments (5 posted)

System Applications

Mail Software

sendmail 8.13.7 available

Sendmail version 8.13.7 has been announced. "It fixes a potential denial of service problem caused by excessive recursion which leads to stack exhaustion when attempting delivery of a malformed MIME message. Therefore, the function mime8to7() has been modified to limit the recursion level at (the compile time constant) MAXMIMENESTING. Note: This denial of service attack only affects delivery of mail from the queue and delivery of the malformed message."

Full Story (comments: none)

Web Site Development

Midgard 1.7.6 released

Version 1.7.6 of the Midgard Open Source Content Management System has been announced. "Midgard's 1.7 branch is a major overhaul of the whole Content Management System. Besides the stable and mature Content Management features of first generation Midgard, it also ships a preview version of second generation Midgard capabilities, allowing developers to have a glimpse at the new day of Midgard2. 1.7.6 "Fotomodelo" provides new PAM configuration features for Midgard authentication module. It also includes minor fixes for Midgard Quota and fixes which were included in 1.7.5.1 subreleases."

Full Story (comments: none)

Desktop Applications

Desktop Environments

GNOME 2.15.3 Development Release announced

Development Release 2.15.3 of GNOME is out. "This is our third development release on our road towards GNOME 2.16.0, which will be released in September 2006. So go download it. Go compile it. Go test it. And go hack on it, document it, translate it, fix it."

Full Story (comments: none)

GARNOME 2.15.3 is out

Version 2.15.3 of GARNOME, the bleeding edge GNOME distribution, is out. "We are pleased to announce the release of GARNOME 2.15.3 Desktop and Developer Platform. This release includes all of GNOME 2.15.3 plus a whole bunch of updates that were released after the GNOME freeze date. This is the third release in the unstable cycle, with more features, more fixes and yet more madness added."

Full Story (comments: none)

The GNOME Journal, June Edition (GnomeDesktop)

The June, 2006 edition of the GNOME Journal has been announced. "The latest issue of the GNOME Journal has just been published. It features insights into the role of end-users in the GNOME community, and an interview with Emmanuele Bassi, gnome-utils maintainer and GTK+ developer. Writers in this edition are Vincent Untz, and Lucas Rocha, respectively."

Comments (none posted)

GNOME Software Announcements

The following new GNOME software has been announced this week: You can find more new GNOME software releases at gnomefiles.org.

Comments (none posted)

KDE Software Announcements

The following new KDE software has been announced this week: You can find more new KDE software releases at kde-apps.org.

Comments (1 posted)

KDE Commit-Digest (KDE.News)

The June 18, 2006 edition of the KDE Commit-Digest has been announced. "In this week's KDE Commit-Digest: Work begins on 3d molecule visualisation features for Kalzium. More progress in the Kopete "OSCAR (AIM) File Transfer" and "KDevelop C# Parser" Summer Of Code projects. An enhanced version of the custom iconset developed during the 1.4 phase is re-enabled as the default option in Amarok. Following the brand clarifications of last week, oKular is now known as okular. Kitten is renamed Strigi. Two security issues are addressed."

Comments (none posted)

Novell Contributes Polish Translation of KDE Docs (KDE.News)

KDE.News covers Novell's efforts at translating KDE docs to Polish. "In the good spirit of cooperation between Novell and KDE, Novell Poland contributed a large number of translations of KDE documentation to the Polish localisation team. The contribution contained 119 translation files and over 5700 translated messages."

Comments (none posted)

Desktop Publishing

Contineo 2.1.0 released

Version 2.1.0 of Contineo, a document management system, has been announced. "This is the first major stable release since more than 1 year. This release includes many bug fixes, stability improvements, security updates and also many improvements to the user interface. The user interface is now shipped in English, German, Spanish, Italian and French."

Full Story (comments: none)

The TeX Live CD

Jim Summe has informed us of the TeX Live CD. "TeX Live is an easy way to get up and running with TeX. It provides a comprehensive TeX system for most types of Unix, including GNU/Linux and MacOSX, and also Windows. It includes all major freely-available TeX-related programs, macro packages, and fonts, including support for many languages around the world. TeX Live 2005 was distributed on DVD and CD in December 2005 to members of most TeX user groups, as a principal part of the TeX Collection. The last update of packages and programs was made on 1 November 2005. For more recent versions, please consult CTAN."

Comments (3 posted)

Electronics

gSpiceUI 0.8.55 released

Version 0.8.55 of gSpiceUI, a GUI for the electronic circuit simulation engines GNU-Cap and Ng-Spice, has been announced. "This is largely a maintenance release which fixes some problems I came across doing some design work. There are also some enhancements to existing functionality."

Comments (none posted)

Icarus Verilog Snapshot 20060618

Snapshot 20060618 of Icarus Verilog, an electronic simulation language compiler, is out. "It's been a big gap between snapshots, so there are a lot of changes. Mostly bug fixes, though, as I'm trying to get ahead of the bugs database. No special new features this time, just lots of bug fixes."

Comments (none posted)

Kachina CAT Program 1.1 released

Version 1.1 of the Kachina CAT Program, an amateur radio control utility, is out with bug fixes and new features. "The purpose of this software is primarily to provide a Kachina control program that is compatible with the Linux operating system. When used on a Linux computer it is strongly linked to the modified gmfsk version .47 and above but can be used stand-alone."

Comments (none posted)

Toped 0.8 Released

Version 0.8 of Toped is out with a number of new features. "Toped is an open source cross-platform IC layout editor, based on openGL and wxWidgets. The project defines its own script - TELL, capable not only to configure the editor properties, but also to code and facilitate the layout generation. It started as a home project in late 2001 and in October 2005, project database has been exported to a public repository. The project is under active development, but already stable enough for tests."

Comments (none posted)

XCircuit 3.4.26 and 3.6.35 released

Stable version 3.4.26 and development version 3.6.35 of XCircuit, an electronic schematic CAD system, have been released.

Comments (none posted)

Financial Applications

Release of GnuCash 1.9.8 (GnomeDesktop)

Release candidate 1.9.8 of GnuCash, a financial management application, has been announced. "The GnuCash development team proudly announces GnuCash 1.9.8 aka "Grab that cash with both hands and make a stash", the first release candidate of the GnuCash Open Source Accounting Software which will eventually lead to the stable version 2.0.0. This release contains many bugfixes since the previous beta release."

Comments (none posted)

Music Applications

Breakage - artificially intelligent drum machine

Ollie Glass has announced the Breakage drum machine. "Breakage is an artificially intelligent drum machine which learns from trends in your rhythms so it can accompany your drumming. Patterns are written in a step sequencer grid and a neural network learns relationships between drums. After training, the network can accompany your drum programming in real time."

Full Story (comments: none)

CLAM 0.91.0 announced

Version 0.91.0 of CLAM, a cross-platform software framework for research and application development in the audio and music domain, has been announced. "This release is the first official one which incorporates the new CLAM Music Annotator featuring chord extraction. Almost 30 new spectral transformations have been incorporated into the processing repository. Some of them are already available from the NetworkEditor. Application usage has received some extra stress on this release."

Full Story (comments: none)

VOIP

Sofia-SIP 1.12.0 released

Version 1.12.0 of Sofia-SIP is available. "Sofia-SIP is an open-source SIP User-Agent library, compliant with the IETF RFC3261 specification. It can be used as a building block for SIP client software for uses such as VoIP, IM, and many other real-time and person-to-person communication services. The primary target platform for Sofia-SIP is GNU/Linux. Sofia-SIP is based on a SIP stack developed at the Nokia Research Center. Sofia-SIP is licensed under the LGPL." See the release notes for this version for change details. (Thanks to Kai Vehmanen.)

Comments (none posted)

Miscellaneous

File Permissions in Nautilus (GnomeDesktop)

GnomeDesktop mentions the latest changes to the Nautilus file manager permissions capabilities. "Alexander Larsson recently committed his work on the permissions page in Nautilus. He writes: I just commited a rework of the permissions page in the file property dialog. It has a simplified UI (and an advanced/unixy version availible via a gconf setting) and support for recursive permission changes."

Comments (1 posted)

Languages and Tools

C

GCC 4.2 Status Report

A GCC 4.2 Status Report dated June 16, 2006 has been published. "There are presently 200 P3 or higher regressions open against 4.2. We remain in regression-only mode on the mainline."

Comments (none posted)

Caml

Caml Weekly News

The June 13-20, 2006 edition of the Caml Weekly News is out with new Caml language articles.

Full Story (comments: none)

PostScript

Leading-edge ghostscript goes GPL

Ghostscript has long been developed under a two-license scheme: new work would appear in a non-free release, then be placed under the GPL one year later. No longer: Ghostscript hacker Raph Levien has announced that the current development version of Ghostscript is now GPL-licensed. Note that distributors tend to ship a third branch of Ghostscript based on the (older) GPL version, so it may be a little while before the leading-edge makes it into distributions. (Thanks to Kurt Pfeifle).

Comments (6 posted)

Python

Dr. Dobb's Python-URL!

The June 20, 2006 edition of Dr. Dobb's Python-URL! is online with a new collection of Python article links.

Full Story (comments: none)

Ruby

Ruby Weekly News

The June 18th, 2006 edition of the Ruby Weekly News looks at the latest discussions on the ruby-talk mailing list and comp.lang.ruby newsgroup.

Comments (none posted)

Tcl/Tk

Dr. Dobb's Tcl-URL!

The June 20, 2006 edition of Dr. Dobb's Tcl-URL! is online with new Tcl/Tk articles and resources.

Full Story (comments: none)

Page editor: Forrest Cook
Next page: Linux in the news>>


Copyright © 2006, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds