KDE 3.4 Compilation Requirements


Compiler Requirements. KDE is designed to be cross-platform and hence to compile with a large variety of GNU/Linux - UNIX compilers. However, KDE is advancing very rapidly and the ability of native compilers on various UNIX systems to compile KDE depends on users of those systems reporting compile problems to the responsible developers.

In addition, C++ support by gcc/egcs, the most popular KDE compiler, has been advancing rapidly, and has also recently undergone a major redesign. As a result, KDE will not compile properly with older versions of gcc or most newer releases.

In particular, gcc versions earlier than gcc-2.95, such as egcs-1.1.2 or gcc-2.7.2, may not properly compile some components of KDE 3.4. While there have been reports of successful KDE compilations with the so-called gcc-2.96 and gcc-3.4 (cvs), the KDE project at this time recommends the use of gcc-3.3.1 or a version of gcc which shipped with a stable Linux distribution and which was used successfully to compile a stable KDE for that distribution.

Package Level Description Explanation Modules
Qt >= 3.3.4 Required Qt is the C++ cross-platform GUI toolkit upon which the great majority of KDE is built. Qt is essential for the use of nearly each KDE module. kdelibs, kdebase, kdeaddons, kdeadmin, kdeartwork, kdebindings, kdeedu, kdegames, kdegraphics, kdemultimedia, kdenetwork, kdepim, kdesdk, kdetoys, kdeutils, koffice, kdevelop
X Server Required An X Server provides the underlying display technology on UNIX systems. The KDE Project recommends the X.org or XFree86 servers. An X server is required for almost each KDE module. kdelibs, kdebase, kdeaddons, kdeadmin, kdeartwork, kdebindings, kdeedu, kdegames, kdegraphics, kdemultimedia, kdenetwork, kdepim, kdesdk, kdetoys, kdeutils, koffice, kdevelop
X Render Extension Optional The X Render Extension provides anti-aliased fonts for X Servers. This extension is by default included in recent X Servers from X.org and XFree86. Nearly each KDE application benefits from anti-aliased fonts. kdelibs, kdebase, kdeaddons, kdeadmin, kdeartwork, kdebindings, kdeedu, kdegames, kdegraphics, kdemultimedia, kdenetwork, kdepim, kdesdk, kdetoys, kdeutils, koffice, kdevelop
X DPMS Recommended The DPMS provides energy-saving power management for most modern monitors. This extension is by default included in recent X Servers from X.org and XFree86. KDE enables you to configure your display's DPMS settings. kdebase
X Video Extension Optional The X Video Extension (xv) provides hardware-accelerated video playback for X Servers. This extension is by default included in recent X Servers from X.org and XFree86. The video subsytem will have much improved performance if the X Video Extension is available. kdemultimedia
Ghostscript Recommended Ghostscript provides PostScript® and PDF (Portable Document Format) support for KDE. PostScript is necessary for printing. Almost all of KDE benefits from GhostScript due to the printing support it provides. Version 6.53 or later is recommended. kdebase, kdeaddons, kdeedu, kdegraphics, kdemultimedia, kdenetwork, kdepim, kdeutils, koffice, kdevelop
Database Server Recommended Databases provide a scalable method for organizing, accessing and modifying data quickly. Various applications require or work better with a database server. While the database requirements vary from application to application, the most common requirements are MySQL and/or PostgreSQL and/or unixODBC. kdepim
Berkely DB IV Recommended Berkely DB provides a fast, scalable, in-process database engine. KBabel, the KDE translation tool, can use DB IV. kdesdk
Python Optional Python is a modern, object-oriented scripting language. Some KOffice components use Python as a scripting engine. In addition, Python bindings to KDE are available for KDE development using Python. kdebindings, koffice
Perl Required Perl is a modern scripting language. KSirc can be scripted in Perl. Several modules require perl for creating sources. kdelibs, kdebase, kdeaddons, kdeadmin, kdeartwork, kdebindings, kdeedu, kdegames, kdegraphics, kdemultimedia, kdenetwork, kdepim, kdesdk, kdetoys, kdeutils, koffice, kdevelop
bzip2 Required Bzip2 is a patent-free compression and decompression library. It provides greater compression, but is substantially slower, than gzip. Some KDE applications enable compressing or decompressing bzip'd files. kdelibs, kdeadmin, kdeutils
TeX Optional TeX, together with LaTeX, provide the standard, high-quality UNIX publishing system. Some KDE applications can import or export TeX documents. kdegraphics, koffice
X Xinerama Extension Optional The X Xinerama extension provides support for multi-headed (multi-monitor) setups. This extension is by default included in recent X Servers from X.org and XFree86. The KDE window manager supports the use of multiple monitors. kdebase
X Cursor Extension Optional The X Cursor extension provides support colored and animated cursor themes. This extension is by default included in recent X Servers from X.org and XFree86. The KDE Control Center supports setting up the themes. kdebase
zlib >=1.1 Required A compression/decompression library. zlib is required by Qt, though Qt provides its own copy if one is not installed on your system. Various other KDE applications make use of zlib to compress or decompress data. kdelibs, kdebase, arts, kdeaddons, kdeadmin, kdeartwork, kdebindings, kdeedu, kdegames, kdegraphics, kdemultimedia, kdenetwork, kdepim, kdesdk, kdetoys, kdeutils, koffice, kdevelop
Package Level Description Explanation Modules
libxml2 >= 2.4.8 Recommended Libxml is an XML library. XML is a metalanguage to design markup languages, such as HTML. Libxml is used for reading KDE documentation. Note that in some cases earlier versions of libxml2 may work, though versions 2.4.26 through 2.4.28 have a known bug which prevents their use in KDE. kdelibs, kdebase, arts, kdeaddons, kdeadmin, kdeartwork, kdebindings, kdeedu, kdegames, kdegraphics, kdemultimedia, kdenetwork, kdepim, kdesdk, kdetoys, kdeutils, koffice, kdevelop
libxslt >= 1.0.7 Recommended Libxslt is an XSLT library. XSLT is itself an XML language, but one which is used to define XML transformations (i.e., from one XML language to another). Libxslt is needed to read KDE documentation. kdelibs, kdebase, arts, kdeaddons, kdeadmin, kdeartwork, kdebindings, kdeedu, kdegames, kdegraphics, kdemultimedia, kdenetwork, kdepim, kdesdk, kdetoys, kdeutils, koffice, kdevelop
ht dig Recommended ht://dig is a document indexing and search facility. KDevelop uses ht://dig to index and search documentation. kdevelop
Package Level Description Explanation Modules
CUPS >= 1.1.9 Optional CUPS (the Common Unix Printing System) is a modern printing architecture for UNIX systems. CUPS provides enhanced printing administration, printing options and usability to all KDE applications. KDE provides tools to configure CUPS. kdelibs, kdebase
gPhoto 2 >= 2.0.1 Optional GPhoto is a set of digital camera software applications for Unix-like systems. Some KDE applications and services which can work with images on digital cameras require gPhoto 2. kdeaddons, kdegraphics
SANE Optional SANE is an application programming interface (API) that provides standardized access to any raster image scanner hardware. KDE applications which work with scanners require SANE. kdelibs, kdegraphics
lm_sensors Optional Lm_sensors provides some essential Linux monitoring tools for systems containing hardware health monitoring hardware, such as the LM78 and LM75. KDE applications which enable you to monitor your system's motherboard require lm_sensors to perform the monitoring function. kdeadmin
mtools Optional Mtools is a collection of utilities to access MS-DOS disks from Unix without mounting them. It supports Win'95 style long file names, OS/2 Xdf disks and 2m disks (store up to 1992k on a high density 3 1/2 disk). Using mtools you can access a floppy drive from Konqueror without first mounting the device. kdebase,kdeutils
libmal >=0.20 Optional Provides the functionality to synchronize PalmOS handhelds with MAL servers like AvantGo. The AvantGo conduit of KPilot depends on this library to do the actual sync with AvantGo. If the library or the header files are not available on the building machine, the AvantGo conduit (malconduit) will not be compiled at all. kdepim
HAL = 0.4.x, D-Bus = 0.2x Optional HAL is an hardware abstraction layer that lists hardware property and makes them available through a D-Bus service. The media kioslave can use HAL to list media and to listen to hotplug events. If HAL is not running, media:/ will fall back on fstab tracking. kdebase
Package Level Description Explanation Modules
pppd Optional Pppd is a PPP (Point-to-Point Protocol) daemon. PPP is a common serial protocol for connecting to the Internet over a computer modem. Kppp uses pppd to connect to the Internet using a computer POTS modem. kdenetwork
libsmbclient >=3.0.4 Recommended Libsmbclient is part of samba and provides access to Windows SMB shares. It provides client (both download and upload) services but not server services. Some KDE applications use libsmb to access Windows shares. kdebase
libldap Optional Libldap implments LDAP (the Lightweight Directory Access Protocol). LDAP provides access to X.500 directory services, both stand-alone and as part of a distributed directory service. The KDE Address Book and some PIM applications can access directory and user information from an LDAP server with libldap. kdelibs, kdepim
FAM Recommended FAM is a server which tracks changes to the filesystem and relays these changes to interested applications efficiently by either consolidating polling for all applications or, with kernel-level support, obtaining kernel notifications of file system changes. The KDE subsytem relies on monitoring changes in the filesystem so that the GUI provides an up-to-date view. FAM makes this process greatly more efficient. kdelibs, kdebase
OpenSLP Optional SLP (Service Location Protocol) implementation. Allows browsing and searching for network services. Used by the Desktop Sharing server and the Remote Desktop Connection client to find servers. For the client an installation of the library is sufficient, on servers the slpd daemon must run. kdenetwork
Pilot-Link Recommended pilot-link is a library that provides means to communicate with Palm OS (tm) devices such as the Palm Pilot, Handspring Visor, and Sony Clie. pilot-link is needed by KPilot, the KDE-to-Palm synchronization kdepim
Cyrus SASL Recommended Cyrus SASL provides authentication mechanisms. It comes with a library and plugins (one plugin for each type of authentication, e.g. plain, gssapi, sasldb etc.) The POP3 and SMTP support (kioslaves) use the Cyrus SASL library when available kdebase
mDNS Recommended mDNS is a daemon developed by Apple which needed for KDE's service discovery feature. It is compatible with ZeroConf implementations such as Apple's Rendevouz technology. Applications that use mDNS include:
  • Konqueror and any application capable of using KDE's file dialog via the dnssd:/ ioslave for discovering ftp, nfs, ssh, telnet and ldap servers, shared desktops and application specific services.
  • krfb and krdc for discovering remote desktop connections.
  • Games like lskat and KWin4 and KBattleship for easy discovering of servers.
kdelibs, kdenetwork, kdegames
Package Level Description Explanation Modules
Java >= 1.3 Recommended Java is a programming language expressly designed for use in the distributed environment of the Internet. Since Netscape integrated Java into its browser, Java has become a popular language for websites. Some websites require the use of Java for some or all of their services. In addition, Java bindings exist for KDE which enables writing KDE applications in the Java language. kdebase, kdebindings
WINE Optional WINE is an implementation of the Windows Win32 and Win16 APIs on top of X and UNIX. It can be used to execute an ever-increasing number of applications written for Windows on GNU/Linux and UNIX systems. The KDE web browser Konqueror can use some ActiveX controls, such as the Quicktime video player, with WINE. kdebase
Crossover Plugin Optional CrossOver Plugin, an extension of WINE, lets you use many Windows ActiveX plugins, such as QuickTime, ShockWave Director and Windows Media Player 6.4, directly from within your Linux browser. The KDE web browser Konqueror can use CrossOver Plugin to support some proprietary but common web technologies. kdebase
PCRE Required The PCRE (Perl Compatible Regular Expressions) library is a set of functions that implement regular expression pattern matching using the same syntax and semantics as Perl 5. The regular-expression support in the KDE JavaScript engine (KJS) uses PCRE. kdelibs
IDN Recommended Libidn provides support for IETF Internationalized Domain Names (IDN) Domain name lookup throughout all of KDE uses libidn when available. For Kopete's Jabber plugin this is a requirement. kdelibs
NTLM Optional Libntlm provides support for NTLM authentication Microsoft webservers on intranets often require NTLM authentication kdelibs
Package Level Description Explanation Modules
OpenSSL >= 0.9.6 Recommended OpenSSL is a robust, commercial-grade, full-featured and Open Source toolkit implementing the Secure Sockets Layer (SSL v2/v3) and Transport Layer Security (TLS v1) protocols as well as a full-strength general purpose cryptography library. OpenSSL is used for the great bulk of secure communications, include secure web browsing via HTTPS, in KDE. kdelibs, kdebase, kdenetwork, kdepim
GnuPG >= 1.2.5 Recommended GnuPG is a complete and free replacement for PGP (Pretty Good Privacy). PGP uses a popular technique for encrypting and decrypting e-mail as well as for sending an encrypted digital signature that lets the receiver verify the sender's identity and know that the message was not modified en route. The KDE mail client KMail can use GnuPG to encrypt and decrypt emails as well as to authenticate the identify of the author of an email. Version 1.2.2 or higher is strongly recommended. kdepim
JSSE Recommended JSSE (Java Secure Socket Extension) is a set of Java packages that enable secure Internet communications by Java applets. Some Java-enabled websites, particularly banking sites, require JSSE for full access to their services. The KDE web browser Konqueror will use JSSE if it is available on the system and properly configured. If you do not do online banking JSSE is optional. kdebase
PAM Optional PAM (Pluggable Authentication Modules) is a flexible system for authenticating users. Various KDE applications can use the PAM modules for user authentication. kdebase
Package Level Description Explanation Modules
OpenGL Recommended OpenGL is an industry-standard API for developing portable, interactive 2D and 3D graphics applications. Various applications, from graphics applications and modellers to screensavers and video players, make use of the 3d hardware acceleration available through the OpenGL API. kdelibs, kdebase, kdeaddons, kdegraphics, kdemultimedia
SDL Optional SDL (Simple DirectMedia Layer) is a cross-platform multimedia library designed to provide fast access to the graphics framebuffer and audio device. Some Noatun plugins require SDL. kdemultimedia
libtiff Optional Libtiff provides support for the Tag Image File Format (TIFF), a widely used format for storing image data, particular for facsimile transmissions. Libtiff is needed for KDE applications which send or receive faxes. kdebase, kdegraphics
libpng Required Libpng is the official PNG (Portable Network Graphics) reference library. PNG images are the standard image format for KDE. Libpng is required to view and save such images. Note that most image handling is done by Qt, which will provide its own copy of libpng if one is not installed on the system. kdelibs, kdebase
libjpeg Recommended Libjpeg is a library which implements JPEG image compression and decompression. JPEG is a standardized lossy compression method for full-color and gray-scale images, such as photographs, and is commonly useed on the Internet. KDE applications can view and save JPEG images using libjpeg. kdelibs, kdebase, kdegraphics, kdemultimedia, koffice
libmng Optional Libmng is the standard library implementation of MNG (Multiple-image Network Graphics). MNG, built on PNG, provides animated images, similar to animated GIF images. While not nearly as ubiquitous as animated GIFs, libmng is catching on as an animated image technology for the Internet. kdelibs, kdebase, kdegraphics
freetype >= 2.0.0 Recommended FreeType 2 is a software font engine. Freetype 2 provides enhanced anti-aliased font handling and manipulation for the entire KDE desktop. kdelibs, kdebase, kdeadmin, kdeedu, kdegames, kdegraphics, kdemultimedia, kdenetwork, kdepim, kdeutils, koffice, kdevelop
PDFInfo Optional PDFInfo is a PDF (Portable Document Format) document information extractor. Some KDE applications can browse or provide enhanced information about PDF files using PDFInfo. kdebase, kdegraphics
GIFT >= 0.1.9 Optional The GNU Image Finding Tool allows for searching images by example. E.g. right-click on an image in the filemanager and select "Search for similar Images". See http://www.fer-de-lance.org/ for more information. Implemented as a KPart and kioslave, it is typically used with Konqueror, but it can also be used by other applications. kdegraphics
libart >= 2.3.8 Recommended Libart is a library for high-performance 2D graphics, including anti-aliasing. Libart is required for KDE's SVG icon engine. kdelibs
Package Level Description Explanation Modules
ALSA Recommended ALSA (Advanced Linux Sound Architecture) provides audio and MIDI functionality for Linux. ALSA provides advanced audio support for various KDE multimedia and audio applications. kdemultimedia
cdrtools Optional cdrtools (f/k/a cdrecord) creates home-burned CDs with a CDR/CDRW recorder. Cdrtools is commonly required for burning CDs. kdemultimedia
cdparanoia Optional Cdparanoia extracts audio from compact discs (audio CDs) directly as data, with no analog step between, and convers the data to various standard formats. Cdparanoia is used by most KDE CD "rippers", inclding the audiocd:// IO slave. kdebase, kdemultimedia
L.A.M.E. Optional L.A.M.E. (LAME Ain't an Mp3 Encoder) is an MP3 encoder. L.A.M.E. is needed to save digital music in the MP3 format. kdebase, kdemultimedia
Ogg Vorbis Recommended Ogg Vorbis is a patent-clear, fully open general purpose audio encoding format standard that rivals or surpasses the 'upcoming' generation of proprietary coders (AAC and TwinVQ, also known as VQF). Ogg Vorbis is needed to listen to digital music in the Ogg Vorbis format or to save digial music using this excellent compression technology. kdebase, arts, kdeaddons, kdemultimedia
FLAC Optional FLAC stands for Free Lossless Audio Codec. Grossly oversimplified, FLAC is similar to MP3, but lossless, meaning that audio is compressed in FLAC without any loss in quality. FLAC (libFLAC and libOggFLAC) is needed to listen to digital music in the FLAC or Ogg/FLAC formats. Version 1.0.3 or later is required. kdemultimedia
Speex Optional Speex is an Open Source/Free Software patent-free audio compression format designed for speech. Speex (libspeex) is needed to listen to digital files and streaming audio in the Speex format. kdemultimedia
MAD Recommended MAD is a high-quality MPEG audio decoder. It currently supports MPEG-1 and the MPEG-2 extension to lower sampling frequencies, as well as the de facto MPEG 2.5 format. While MAD (libmad) is not required to play MP3s, it is recommended for its superior playback quality. kdemultimedia
libaudiofile Recommended Libaudio implements a library for the .WAV audio format. Libaudio is needed to play or save .WAV audio files. kdelibs, kdemultimedia
XINE Recommended XINE is a multimedia system for playback of CDs, DVDs and VCDs and for decoding multimedia streams or files such as .AVI, .MOV, .WMV and .MP3. The KDE multimedia system is switching to XINE for basic video support as of KDE 3.1. kdemultimedia
Package Level Description Explanation Modules
Subversion Optional Subversion is a revision control system like CVS. KDevelop 3.0 can use Subversion to maintain a revision control repository for projects. There is also a kioslave for Subversion. kdesdk, kdevelop
CVS Optional The Concurrent Versioning System is a very popular revision control system, typically used in software project development. CVS is needed by KDevelop and certain other applications to access CVS repositories. kdesdk, kdevelop
Perforce Optional Perforce is a revision control system like CVS. KDevelop 3.0 can use the p4 command line tool to enable Perforce as the backend revision control repository for projects. kdevelop
Exuberant Ctags Recommended Ctags indexes source code files that allows these items to be quickly and easily located by a text editor or other utility. KDevelop uses ctags, if available, to provide improved source code navigation. kdevelop
doxygen Recommended Doxygen is a cross-platform, JavaDoc-like documentation system for C, C++ and IDL (Corba, Microsoft® and KDE DCOP flavors). Doxygen is used to generate the kdelibs API documentation. If you want to develop software using KDE you should install doxygen. kdebindings, kdesdk, kdevelop