-
Notifications
You must be signed in to change notification settings - Fork 109
/
BUILDING
319 lines (264 loc) · 12 KB
/
BUILDING
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
CMake Build
====================
Scribus 1.5+ uses the CMake build system (cmake.org).
Please see install4.html in scribus/doc or:
http://docs.scribus.net/index.php?lang=en&page=install4
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 - Generic *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:
CMake >= 3.14.0
Qt >= 5.14.0 for Scribus 1.5.x/1.6.x
Freetype >= 2.1.7 (2.3.x strongly recommended)
cairo >= 1.14.x
harfbuzz >= 1.0.5
harfbuzz-subset >= 2.4.0
libicu
libjpeg (depending on how Qt is packaged)
libpng >= 1.6.0
libtiff >= 3.6.0
libxml2 >= 2.6.0
LittleCMS (liblcms) >= 2.0 (2.1+ recommended)
poppler and poppler-cpp >= 0.62.0
If poppler >= 22.01.0, the C++17 standard will be required.
Recommended:
CUPS
Fontconfig >= 2.0
GhostScript >= 8.0 (9.0+ or greater preferred)
Python >= 3.6
tkinter for the font sampler script
python-imaging for the font sampler preview
pkgconfig (to assist finding other libraries)
hunspell for the spell checker
podofo - 0.7.0+ for enhanced Illustrator AI/EPS import, svn versions
boost and boost-devel
GraphicksMagick++
librevenge
libfreehand-0.1
libcdr-0.1 >= 0.1
libpagemaker-0.0
libmspub-0.1 >= 0.1
libqxp-0.0
libvisio-0.1 >= 0.1
libzmf-0.0
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 5.14 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.
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 configure.
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 "Ventura" or "Ubuntu 20.04". This is NOT the
Linux kernel version, though you can provide that too.
- Scribus version you're trying to compile, eg "1.5.9" or "1.5.9.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 2.1, 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-5.14.1.rpm and qt-devel-5.14.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 Buster (Debian 10.0):
qtbase5-dev (Required)
qtdeclarative5-dev (Required)
qttools5-dev (Required)
qttools5-dev-tools (Required)
libcairo2-dev (Required)
libcupsys2-dev (Required)
libfontconfig1-dev (Required)
libfreetype6-dev (Required)
libharfbuzz-dev (Required)
liblcms2-dev (Required)
libpng-dev (Required)
libtiff5-dev (Required)
libxml2-dev (Required)
libboost-dev
libhunspell-dev
libpodofo-dev
libpoppler-dev
libpoppler-cpp-dev
libpoppler-private-dev
python3-dev
gs-gpl or gs-afpl (usually gs-gpl is newer now)
For proper execution, following package(s) should also be installed:
qt5-image-formats-plugins
You are unlikely to be able to compile Scribus 1.5.x on Debian 9.0 (Stretch)
Scribus 1.5.x should be considered not to support Debian Stretch.
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)
qt5-qtbase-devel (Required)
qt5-qtdeclarative-devel (Required)
qt5-qttools-devel (Required)
cairo-devel (Required)
cups-devel (Required)
fontconfig-devel (Required)
freetype-devel (Required)
harfbuzz-devel (Required)
lcms2-devel (Required)
libjpeg-devel (Required)
libpng-devel (Required)
libtiff-devel (Required)
libxml2-devel (Required)
boost-devel
hunspell-devel
podofo-devel
poppler-devel
python3-devel
You can install these packages with 'yum install packagename' as root.
For proper execution, following package(s) should also be installed:
qt5-qtimageformats
More info can be found in the README.
Suse/Opensuse
=============
Recommended packages for compiling from source on OpenSuse 15.1 => :
libqt5-qtbase-devel (required)
libqt5-qtdeclarative-devel (required)
libqt5-qttools-devel (required)
cairo-devel (required)
cups-devel (required)
fontconfig-devel (required)
freetype2-devel (required)
harfbuzz-devel (required) > 1.0.5
libjpeg-devel (required)
liblcms-devel (required)
libpng16-compat-devel (required)
libtiff-devel (required)
libxml2-devel (required)
openssl-devel (required if CUPS support is needed)
boost-devel
hunspell-devel
libpodofo-devel
libpoppler-devel
python3-devel
python3-imaging or python3-pillow depending on distro version
python3-tk
libGraphicsMagick++-devel
libOpenSceneGraph-devel *Optional- but available from the games repo
update-desktop-files
libicu
You can install these packages using YaST. You may find it difficult to compile
Scribus 1.5.6+ on anything older than OpenSuse 15.1.
For proper execution, following package(s) should also be installed:
libqt5-qtimageformats
Please note we do provide frequently updated packages including debuginfo rpms
on the Suse Build Server at https://software.opensuse.org .
Mac OS
========
Please see the README.MacOSX for info on macOS.
Microsoft Windows
=============================================
See the separate file BUILDING_win32.txt
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.