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 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
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
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)
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 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)
The following new GNOME software has been announced this week:
You can find more new GNOME software releases at
gnomefiles.org.
Comments (none posted)
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)
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)
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
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)
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
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)
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)
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)
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)
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 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
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)
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
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
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
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
The June 13-20, 2006 edition of the Caml Weekly News
is out with new Caml language articles.
Full Story (comments: none)
PostScript
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
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
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
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>>