CMake Build ==================== Scribus 1.3.5+ has replaced the traditionally used so called autotools with the CMake build system (cmake.org). Please see install4.html in scribus/doc for details *after* reviewing the build requirements below. Note that while a QMake project file (Scribus.pro) is provided in the Scribus source distribution, it is not possible to build Scribus with this project file. It is only used for generating the translation template files. REQUIREMENTS AND BUILDING - Microsoft Windows ============================================= See the separate file BUILDING_win32.txt REQUIREMENTS AND BUILDING - Geneiric *BSD/Linux/*nix ==================================================== These requirements are generic information for any BSD, UNIX or Linux flavour. More specific information for particular Linux distros, including lists of exact package names for the distro, are provided below. Install the below packages BEFORE running CMake or compiling Scribus: Requirements: Qt >= 4.6.0 (Scribus has specific code requiring Qt 4.6, not Qt 4.5.x or before) Freetype >= 2.1.7 (2.3.x strongly recommended) cairo >= 1.4.x libtiff >= 3.6.0 LittleCMS (liblcms) = 1.12 (1.18+ recommended) or LittleCMS 2 (liblcms2) >= 2.1 libjpeg (depending on how Qt is packaged) libpng CUPS Fontconfig >= 2.0 LibXML2 >= 2.6.0 Recommended: GhostScript >= 8.0 (8.6+ or greater preferred) Python >= 2.3 tkinter for the font sampler script python-imaging for the font sampler preview pkgconfig (to assist finding other libraries) apspell for the spell checker podofo - 0.7.0+ for enhanced Illustrator AI/EPS import boost and boost-devel - needed for some advanced vector format display If any recommended libraries (and their dev/devel packages or headers) are not installed, some features will be disabled by cmake. If you later install any of these dependencies, you will have to re-run cmake and re-compile Scribus before the features are enabled. LIBRARIES IN NON-STANDARD LOCATIONS =================================== You can skip this section unless: (a) You have libraries installed in unusual locations such as your home directory or an add-in package collection (eg fink); or (b) Scribus is not finding libraries that you KNOW you have installed (remember the -dev/-devel package if applicable). If any of your libraries are in non-standard locations you will need to provide some extra arguments to CMake to ensure that CMake and gcc can find all the required files. Where /path/to/libfoo is the path to the the directory the library was installed to, eg /usr/local or /home/fred/libfoo (not the 'lib' subdirectory the actual .so files are in), you can use the following extra arguments to CMake to help it find the library: -DCMAKE_INCLUDE_PATH=/path/to/libfoo/include -DCMAKE_LIBRARY_PATH=/path/to/libfoo/lib If you have multiple custom paths to specify, use a ; path separator, eg: -DCMAKE_INCLUDE_PATH=/path/to/libfoo/include;/path/to/libalice/include In most cases you should not and should not need to modify the CFLAGS, CXXFLAGS, LIBRARY_PATH, LD_LIBRARY_PATH, CPATH, or LDFLAGS environment variables. If you need to alter these to get Scribus to build, please file a bug on http://bugs.scribus.net/ with information about your exact Scribus version (including Subversion revision), full CMake command line, output of the `env' command, and the full compiler error messages including the original compiler command obtained by running `make' with the VERBOSE=1 argument. CMake will try to embed the paths to the required libraries into the executable,so you should generally not need to set the LD_LIBRARY_PATH environment variable or your platform's equivalent. On platforms like win32 where no such rpath support exists, you will need to ensure that the libraries required by Scribus are on the library search path. For Windows, the library search path is the PATH environment variable. REQUIREMENTS - DETAILS ====================== Qt 4.6 is now the *minimum*. Older versions of Qt are *not* supported. If you build Qt from sources, the recommended ./configure/cmake switches are the same as used by KDE. Use of other switches aside from those used by distro packages can make trouble shooting issues very difficult at times. See: http://developer.kde.orgb/uild/compile_kde3_3.html Scribus requires Freetype. If you are compiling from source, you will need to have the freetype headers installed - these can usually be found in a -devel package for your distro. It is strongly recommended that you install the CUPS development packages if you are compiling Scribus. Without CUPS, Scribus will have significantly reduced printing functionality and building without CUPS is poorly tested. Fontconfig, if installed, will let Scribus find fonts using the same method as most other major desktop applications such as all KDE and GNOME applications. If fontconfig support is installed, Scribus will not search your X font path, X server configuration, or X font server configuration for fonts - it will only use fonts found using fontconfig and any custom font locations configured in the preferences. Use of fontconfig is strongly recommended and will soon be required on supporting platforms. Python is used to add scripting support to Scribus. If Python is not found, or there are no header files for Python installed (usually because you haven't installed the development package), the scripting support will not be enabled. See the distro-specific notes below for more information on installing and using Scribus with your distro. TROUBLESHOOTING =============== If Scribus can't find a library, there are several things you should do. First of all, read `DISTRO SPECIFIC BUILD INFORMATION' below and see if there's anything there for your OS / distro. Next, ensure you definitely have the library installed, as well as any additional development packages that may be required to use it. On Linux, make sure to install the "-dev" or "-devel" package for the missing library. After doing this, re-run cmake. If the library is still not found, please read and act on the section above, entitled `LIBRARIES IN NONSTANDARD LOCATIONS'. Check that all those environment variables are set to sensible values. If you are using any other custom CFLAGS, LDFLAGS, CXXFLAGS, CPPFLAGS, etc, then unset or disable them unless you're really sure you know what you're doing. This is doubly true for "optimisation" flags like -mcpu and -march . If you're still unable to determine what the problem is, please post a message to the Scribus mailing list or report a bug on bugs.scribus.net. In any problem report, MAKE SURE YOU INCLUDE THE FOLLOWING INFORMATION: - Your CMakeCache.txt - The exact CMake command you ran - The output of the `env' command - A full listing of the compile command and compiler error messages, obtained by running `make' with VERBOSE=1 . - Operating system or distro, eg "Mac OS X" or "Debian Linux" - OS or distro version, eg "Panther" or "Fedora Core 10". This is NOT the Linux kernel version, though you can provide that too. - Scribus version you're trying to compile, eg "1.3.8" or "1.5.0.svn". If you're building an SVN version, please make sure you've run "svn revert -R ." (this WILL erase any patches / custom changes you've made), deleted the CMake cache with `rm -f CMakeCache.txt' and re-built before reporting a problem. Include the output of `svn info' in your bug report if you are using a svn version. - What compiler & version you're using. You can get this from `gcc --version'. if you're using gcc. - If you're having problems with a particular library, what version of the library you have installed and where you got it from. eg: "freetype 2.0.1 from sunfreeware," "LittleCMS 1.1.4, compiled myself and installed in /usr/local", "freetype 2.1.3 from backports.org", "fontconfig 2.2.0 (stock Fedora Core 3 devel package)" "I installed the qt-3.0.1.rpm and qt-devel-3.0.1.rpm from the CD." - Check again to make REALLY REALLY SURE you have the devel package installed, and list the names of the relevant installed devel packages in your problem report. - Any environment variables you may have set - Anything else you can think of that might be useful. There's no such thing as too much information, though please put big files elsewhere rather than sending them to the mailing list. It's best if you do a search of the mailing list archives and/or bugs.scribus.net before reporting a problem, too. This is doubly true for development versions of Scribus. DISTRO SPECIFIC BUILD INFORMATION ================================= This section contains information about compiling Scribus that's specific to particular operating systems and Linux distros. More distro-specific information can be found in the README. Debian ====== Recommended packages for compiling from source on Etch (Debian 4.0): libqt4-dev (Required) libfreetype6-dev (Required) libcairo2-dev (Required) libfontconfig1-dev (Required) libcupsys2-dev liblcms1-dev libtiff4-dev libxml2-dev python2.3-dev or python2.4-dev gs-gpl or gs-afpl (usually gs-gpl is newer now) You are unlikely to be able to compile Scribus 1.3.x on Debian 3.0 (Woody) or Debian 3.1 (Sarge) without significant upgrades; it is not at all recommended. Scribus 1.3.x should be considered not to support Debian Woody, with versions above 1.3.5 unsupported on Sarge as well. More info can be found in the README. Red Hat / Fedora / CentOS ======================== Recommended packages for compiling from source on Fedora/CentOS/RHEL libstdc++-devel (Required) gcc-c++ (Required) qt4-devel (Required) freetype-devel (Required) cairo-devel (Required) fontconfig-devel (Required) cups-devel (Required) libtiff-devel libxml2-devel (Required) python-devel lcms-devel (Required) libpng-devel libjpeg-devel You can install these packages with 'yum install packagename' as root. More info can be found in the README. Suse/Opensuse ==== Recommended packages for compiling from source on SuSE 11.x: qt4-devel (required) cairo-devel (required) freetype2-devel (required) fontconfig-devel (required) liblcms-devel (required) libtiff-devel (required) libxml2-devel (required) libpng-devel (required) libjpeg-devel (required) cups-devel (required) openssl-devel (required if CUPS support is needed) update-desktop-files python-devel tk python-imaging aspell-devel boost-devel You can install these packages using YaST. You may find it difficult to compile Scribus 1.3.9+ on anything older than Suse 11.3. Please note we do provide frequently updated packages on the Suse Build Server at http//software.opensuse.org Mac OS X ======== There is a separate document for building on OSX. The Scribus build system can be used to create native dmg installers for OSX. Microsoft Windows ================= No build instructions yet. Please see the README for info on Scribus under Windows. Other distros/OSes ================== Please feel free to submit a list of package names and versions required to compile Scribus on your distro, or build instructions for your OS.