KDE 3.1 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.1. In addition, some components of KDE 3.1, such as aRts, generally will not compile with unpatched CVS versions of gcc 3.1.x While there have been reports of successful KDE compilations with the so-called gcc-2.96 and gcc-3.1 (cvs), the KDE project at this time continues to recommend the use of gcc-2.95-* 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.1.0 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 XFree86 server. 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. 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. 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. 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 II Recommended Berkely DB provides a fast, scalable, in-process database engine. KBabel, the KDE translation tool, can use DB II. 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 Recommended Perl is a modern scripting language. KSirc can be scripted in Perl. In addition, the KDE upgrade tool uses Perl to update configuration files when upgrading KDE. kdebase, kdenetwork, 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. The KDE window manager supports the use of multiple monitors. 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
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
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
libsmb Optional Libsmb is a library which 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. kdenetwork
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
Package Level Description Explanation Modules
Java >= 1.3 Recommended Java is a scripting / 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 scripting 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
Lesstif Optional Lesstif provides a free implementation of the Motif API. Motif was once the most popular GUI toolkit for UNIX systems. The KDE webbrowser Konqueror can use Netscape plugins, such as RealAudio and Flash. Many of these plugins use the Motif API, the API which was used by Netscape on UNIX systems. kdebase
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 Recommended 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. PCRE improves the regular-expression support in the KDE JavaScript engine (KJS), which is used by the KDE HTML rendering engine (KHTML). 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.0.6 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.1 or higher is strongly recommended (and required for CryptPLug support), but 1.0.6 should suffice. Note that if you use CryptPlug, you may want to update to 1.2.2 as soon as it's released as it contains an important fix for CryptPlugs, namely recognizing when the user cancels pinentry. kdenetwork
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
CryptPlug >= 0.3.15 Recommended Plugins for KMail OpenPGP/MIME and S/MIME support. CryptPlug itself depends on a "few" other libraries and supporting programs, see http://kmail.kde.org/kmail-pgpmime-howto.html and http://www.gnupg.org/aegypten/development.en.html Plugins for KMail OpenPGP/MIME and S/MIME support. Not needed for traditional "clearsigning" OpenPGP support, which is built-in to KMail. kdenetwork
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. kdebase, kdeaddons, 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. 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
XAnim Optional XAnim provides a large number of (older) video codecs. Aktion! can use XAnim to play some (older) videos. 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. 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