KDE 3.2 Compilation Requirements
Compilers
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.2. 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.
Basic | ||||
Package | Level | Description | Explanation | Modules |
Qt >= 3.2.3 | 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. | 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 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. | 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. | 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 |
Help | ||||
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 |
Hardware | ||||
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 |
Networking | ||||
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 |
Browsing | ||||
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 |
OpenMotif | Optional | OpenMotif 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 | 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 | Optional | Libidn provides support for IETF Internationalized Domain Names (IDN) | Domain name lookup throughout all of KDE uses libidn when available. | kdelibs |
Security | ||||
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.0 | 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 |
Graphics | ||||
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 |
Multimedia | ||||
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 |
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 |
Development | ||||
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 |