Difference between revisions of "Win32 version of Scribus"

From Scribus Wiki
Jump to navigation Jump to search
 
(88 intermediate revisions by 19 users not shown)
Line 1: Line 1:
In February 2005, Trolltech [http://www.trolltech.com/newsroom/announcements/00000192.html announced] that version 4 of the QT library used by Scribus will be available for Windows under the GNU General Public License (GPL). This brings the possibility of a native Windows port of Scribus a step closer. It's still a '''long''' way off though, and not really in anyone's plans. First, QT4 needs to be released ("second quarter of 2005"), and then Scribus would need to be updated to QT4 (a substantial job in itself) then ported to Windows. So it might happen at some point, but don't hold your breath!--[[User:Joeboy|Joeboy]] 13:49, 9 Mar 2005 (UTC)
+
[[Category:Windows]][[Category:Installation]][[Category:EN]]
 +
==Native Windows version release information==
 +
* [[Official:Windows|Scribus on Windows]] -- See this page first for all the important install info on the native Windows version.
 +
** This '''will not run''' on Win95, Win98 or WinME. Scribus requires the capabilities of Windows 2000, XP, Vista, Server 200x, or Windows 7, 8, or 10. Attempts to run Scribus on Win9x or WinME will fail due to the absence of a number of system requirements which cannot practically be met.
 +
** With the release of 1.3.2, help documentation from [http://docs.scribus.net docs.scribus.net] has been integrated with the main package across all platforms.
  
----
+
==64-bit Windows (of any of those compatible versions mentioned above)==
 +
Scribus 1.4.6 is available as a 64-bit version that can be installed on Windows Vista 64-bit, Microsoft Windows 7 64-bit, and Microsoft Windows 8 64-bit.<br>
 +
For previous versions, there is no 64-bit version of Scribus. Nonetheless, the 32-bit version works without a hitch, and without any other considerations as you use the installer for your Windows machine.
  
 +
==Python==
 +
If you install Scribus using the installer from Sourceforge, you should have a working version of Python 2.7 with Scribus 1.5.x. Some scripts that you may wish to use or write yourself may need Python packages not supplied with Scribus, and you cannot add them yourself. The answer in this situation is to install Python 2.7 on your system, along with any necessary or desired packages, such as PIL (Python Imaging Library).
  
Hence I've created this page for posting notes relating to the ongoing effort to compile Scribus under Cygwin/X11 for win32, since that is our next-best option.  
+
In order for Scribus to use this system-based Python you need to deactivate the version included with Scribus. This is actually a simple matter. Go to C:\Program Files\Scribus 1.5.3\ (or whatever Scribus version you have installed), and look for a directory named python\. Just change its name to anything else, like oldpython\, and when you next start Scribus it will use the system Python.
  
However, don't forget we already have one working recipe for [[Installing Scribus on Win32]] using version 1.2.1 binary snapshots compiled for Cygwin/QT3/X11. :)
+
== Notes ==
  
Now efforts to '''compile''' the latest Scribus for Cygwin/X11 are ongoing, though I haven't been successful yet. However I have gotten as far as a running a successful configure of the 1.3 version from CVS, and there is a patch available for the 1.2.1 version at the kde-cygwin download area.
+
* [http://sourceforge.net/project/showfiles.php?group_id=1897 Ghostscript 8.53] or newer required for EPS, PS import and printing.
 +
** When you first run Scribus, you must go to Edit>Preferences>External Tools and change "name of executable" to wherever you have installed Ghostscript to.  You must choose the "gswin32c.exe" version for Scribus to run!  For example, set it to:  "C:/Program Files/gs/gs8.53/bin/gswin32c.exe"
  
Here are some notes from some of the experiences I've had so far:
+
== Obtaining GDI+ ==
  
 +
Scribus under Windows 2000 requires the [http://www.microsoft.com/downloads/details.aspx?FamilyID=6a63ab9c-df12-4d41-933c-be590feaa05a&DisplayLang=en GDI+ library] from Microsoft. There are other legal sources for the library for those who don't use IE or don't want to go through the "Genuine Windows" validation process — which has come under severe criticism and has been reported to produces false negatives in some cases (at the [http://go.microsoft.com/fwlink/?linkid=63634 Windows Genuine Advantage Forum], for example):
  
----
+
* GDI+ is also distributed [http://download.freenet.de/archiv_g/gdi+_6816.html here]. This is part of the download archive within the portal of one of Germany's major ISPs. You don't need to understand German to use the page, just find the "zum Download" button and then, on the next page, the "Download starten" button. This will download Microsoft's own installer for the US English version of the library.
  
Here's another snapshot of my latest efforts. --[[User:Hap0|Hap0]] 23:54, 22 Mar 2005 (UTC)
+
* Possibly the simplest way of meeting the GDI+ requirement is to search the file gdiplus.dll on your hard disk and copy it into the directory that contains the Scribus executable. (The "official" download does not install any files beyond gdiplus.dll either.) There are freely available applications whose installer puts the file into their application directory. Such applications are:
 +
** [http://www.mp3tag.de/en/ Mp3Tag]
  
  <pre>  514  rm -fr Scribus
+
When obtaining GDI+ from an "unofficial" source such as one of the above, it is important to remember that older versions of the file were suffering from a [http://www.microsoft.com/technet/security/bulletin/MS04-028.mspx critical bug] that affected the processing of JPEG files. The bug was reported in September 2004, and as of September 2006, the current version is of gdiplus.dll is 5.1.3102.1360.
  515  export CVSROOT=:pserver:anoncvs@scribus.info:/cvs
 
  516  cvs -z3 co -r Version13x Scribus
 
  517  tar cvf Scribus-fresh-cvs.tar Scribus/
 
  519  cd Scribus
 
  520  make -f Makefile.cvs
 
  521  ./configure
 
  522  make
 
  523  history | tail -n 15
 
 
 
$ make -f Makefile.cvs
 
This Makefile is only for the CVS repository
 
This will be deleted before making the distribution
 
 
 
/usr/bin/autoconf: line 312:  1640 Broken pipe ${AUTO_STABLE}/bin/autoconf --version
 
/usr/bin/autoheader: line 278:  1304 Broken pipe ${AUTO_STABLE}/bin/autoheader --version
 
/usr/bin/automake: line 327:  116 Broken pipe ${AUTO_STABLE}/bin/automake --version
 
*** Creating acinclude.m4
 
*** Creating list of subdirectories
 
*** Creating configure.files
 
*** Creating configure.in
 
*** Creating aclocal.m4
 
/usr/share/aclocal/vorbis.m4:8: warning: underquoted definition of AM_PATH_VORBIS
 
  run info '(automake)Extending aclocal'
 
  or see http://sources.redhat.com/automake/automake.html#Extending-aclocal
 
/usr/share/aclocal/ogg.m4:8: warning: underquoted definition of AM_PATH_OGG
 
/usr/share/aclocal/freetype2.m4:7: warning: underquoted definition of AC_CHECK_FT2
 
/usr/share/aclocal/ao.m4:9: warning: underquoted definition of AM_PATH_AO
 
*** Creating configure
 
*** Creating config.h template
 
*** Creating Makefile templates
 
*** Postprocessing Makefile templates
 
*** Creating date/time stamp
 
*** Finished
 
    Don't forget to run ./configure
 
    If you haven't done so in a while, run ./configure --help
 
 
 
$ ./configure
 
...
 
Configuration Summary:
 
 
 
Libraries:
 
  Freetype2 installed:    Yes
 
  Fontconfig found:        Yes
 
  CUPS installed:          No
 
  LittleCMS installed:    Yes
 
  libtiff installed:      Yes
 
  Libxml2 installed:      Yes
 
The Scripter-Plugin will not be compiled.
 
Configuration options:
 
  Debugging enabled:      No
 
 
 
 
 
Good - your configure finished. Start make now
 
 
 
$ make
 
... .libs/pdflib.o(.text$_ZN11QMapPrivateI7QStringS0_E5clearEP8QMapNodeIS0_S0_E[QMapPrivate<QString, QString>::clear(QMapNod
 
e<QString, QString>*)]+0x3f):pdflib.cpp: undefined reference to `QString::shared_null'
 
.libs/pdflib.o(.text$_ZN11QMapPrivateI7QStringS0_E5clearEP8QMapNodeIS0_S0_E[QMapPrivate<QString, QString>::clear(QMapNod
 
e<QString, QString>*)]+0x49):pdflib.cpp: undefined reference to `QStringData::deleteSelf()'
 
.libs/pdflib.o(.text$_ZN11QMapPrivateI7QStringS0_E5clearEP8QMapNodeIS0_S0_E[QMapPrivate<QString, QString>::clear(QMapNod
 
e<QString, QString>*)]+0x5e):pdflib.cpp: undefined reference to `QString::shared_null'
 
.libs/pdflib.o(.text$_ZN11QMapPrivateI7QStringS0_E5clearEP8QMapNodeIS0_S0_E[QMapPrivate<QString, QString>::clear(QMapNod
 
e<QString, QString>*)]+0x68):pdflib.cpp: undefined reference to `QStringData::deleteSelf()'
 
.libs/pdflib.o(.text$_ZN10QPtrVectorI10VColorStopE10deleteItemEPv[QPtrVector<VColorStop>::deleteItem(void*)]+0x35):pdfli
 
b.cpp: undefined reference to `QString::shared_null'
 
.libs/pdflib.o(.text$_ZN10QPtrVectorI10VColorStopE10deleteItemEPv[QPtrVector<VColorStop>::deleteItem(void*)]+0x3f):pdfli
 
b.cpp: undefined reference to `QStringData::deleteSelf()'
 
.libs/pdflib.o(.text$_ZN9QMemArrayI6FPointE6detachEv[QMemArray<FPoint>::detach()]+0x11):pdflib.cpp: undefined reference
 
to `QGArray::duplicate(QGArray const&)'
 
.libs/pdflib.o(.text$_ZN9QMemArrayIcE6detachEv[QMemArray<char>::detach()]+0x11):pdflib.cpp: undefined reference to `QGAr
 
ray::duplicate(QGArray const&)'
 
collect2: ld returned 1 exit status
 
make[3]: *** [libpdf.la] Error 1
 
make[3]: Leaving directory `/home/cboothe/src/Scribus/scribus/libpdf'
 
make[2]: *** [all-recursive] Error 1
 
make[2]: Leaving directory `/home/cboothe/src/Scribus/scribus'
 
make[1]: *** [all-recursive] Error 1
 
make[1]: Leaving directory `/home/cboothe/src/Scribus'
 
make: *** [all] Error 2</pre>
 
 
 
'''And here's a snapshot of what happened going through the steps as suggested by Ralf:'''
 
 
 
<pre>
 
  537  rm -fr Scribus
 
  538  tar xvf Scribus-fresh-cvs.tar
 
  539  cd Scribus
 
  540  make -f Makefile.cvs
 
  541  export CFLAGS="-fdata-sections"
 
  542  export CXXFLAGS="-fdata-sections"
 
  543  export LDFLAGS="-L/home/cboothe/src/qt-3/lib"
 
  544  ./configure --prefix=/opt/scribus/1.3
 
  545  make
 
  546  history | tail -n 25
 
 
 
$ make -f Makefile.cvs
 
This Makefile is only for the CVS repository
 
This will be deleted before making the distribution
 
 
 
/usr/bin/autoconf: line 312:  1732 Broken pipe            ${AUTO_STABLE}/bin/autoconf --version
 
/usr/bin/autoheader: line 278:  1292 Broken pipe            ${AUTO_STABLE}/bin/autoheader --version
 
/usr/bin/automake: line 327:  548 Broken pipe            ${AUTO_STABLE}/bin/automake --version
 
*** Creating acinclude.m4
 
*** Creating list of subdirectories
 
*** Creating configure.files
 
*** Creating configure.in
 
*** Creating aclocal.m4
 
/usr/share/aclocal/vorbis.m4:8: warning: underquoted definition of AM_PATH_VORBIS
 
  run info '(automake)Extending aclocal'
 
  or see http://sources.redhat.com/automake/automake.html#Extending-aclocal
 
/usr/share/aclocal/ogg.m4:8: warning: underquoted definition of AM_PATH_OGG
 
/usr/share/aclocal/freetype2.m4:7: warning: underquoted definition of AC_CHECK_FT2
 
/usr/share/aclocal/ao.m4:9: warning: underquoted definition of AM_PATH_AO
 
*** Creating configure
 
*** Creating config.h template
 
*** Creating Makefile templates
 
*** Postprocessing Makefile templates
 
*** Creating date/time stamp
 
*** Finished
 
    Don't forget to run ./configure
 
    If you haven't done so in a while, run ./configure --help
 
 
 
$ export CFLAGS="-fdata-sections"
 
$ export CXXFLAGS="-fdata-sections"
 
$ export LDFLAGS="-L/home/cboothe/src/qt-3/lib"
 
$ ./configure --prefix=/opt/scribus/1.3
 
...
 
config.status: executing depfiles commands
 
 
 
Configuration Summary:
 
 
 
Libraries:
 
  Freetype2 installed:    Yes
 
  Fontconfig found:        Yes
 
  CUPS installed:          No
 
  LittleCMS installed:    Yes
 
  libtiff installed:      Yes
 
  Libxml2 installed:      Yes
 
The Scripter-Plugin will not be compiled.
 
Configuration options:
 
  Debugging enabled:      No
 
 
 
 
 
Good - your configure finished. Start make now
 
 
 
$ make
 
...
 
.libs/pdflib.o(.text$_ZN9QMemArrayIcE6detachEv[QMemArray<char>::detach()]+0x11):pdflib.cpp: undefined reference to `QGArray::duplicate(QGArray const
 
&)'
 
collect2: ld returned 1 exit status
 
make[3]: *** [libpdf.la] Error 1
 
make[3]: Leaving directory `/home/cboothe/src/Scribus/scribus/libpdf'
 
make[2]: *** [all-recursive] Error 1
 
make[2]: Leaving directory `/home/cboothe/src/Scribus/scribus'
 
make[1]: *** [all-recursive] Error 1
 
make[1]: Leaving directory `/home/cboothe/src/Scribus'
 
make: *** [all] Error 2
 
</pre>
 
 
 
----
 
 
 
With the following commands, I already got Scribus configuring fine, but I accidently deleted it again so now with that config it gives an error when checking for qt. The error message in config.log is very similar to the error I got when making scribus after my succesful ./configure.
 
 
 
--[[User:Jo-hannes|jo-hannes]] 07:12, 18 Mar 2005 (UTC)
 
 
 
Export commands:
 
 
 
<pre>
 
export CFLAGS="-fdata-sections"
 
export CXXFLAGS="-fdata-sections"
 
export LDFLAGS="-Wl,--enable-runtime-pseudo-reloc,--script /usr/local/lib/qt/mkspecs/cygwin-g++/i386pe.x-no-rdata,-lqt-mt"
 
</pre>
 
 
 
The error at checking for Qt:
 
 
 
<pre>
 
checking for Qt... configure: error: Qt (>= Qt 3.3) (library qt-mt) not found. Please check your installation!
 
For more details about this problem, look at the end of config.log.
 
Make sure that you have compiled Qt with thread support!
 
</pre>
 
 
 
And the error in config.log
 
<pre>
 
configure:40114: checking for Qt
 
configure: 40182: /opt/qt/3.3/include/qstyle.h
 
taking that
 
configure:40297: rm -rf SunWS_cache; g++ -o conftest.exe -Wnon-virtual-dtor -Wno-long-long -Wundef -Wall -W -Wpointer-arith -Wwrite-strings -O2 -fno-exceptions -fno-check-new -fno-common -I/opt/qt/3.3/include -I/usr/X11R6/include  -DQT_THREAD_SUPPORT  -L/opt/qt/3.3/lib -L/usr/X11R6/lib  conftest.cc  -lqt-mt -lpng -lz -lm -ljpeg  -lXext -lX11 -lSM -lICE  -lpthread 1>&5
 
collect2: ld terminated with signal 11 [Segmentation fault], core dumped
 
/opt/qt/3.3/lib/libqt-mt.dll.a(.text+0x0):crtstuff.c: multiple definition of `___do_sjlj_init'
 
/usr/lib/gcc-lib/i686-pc-cygwin/3.3.3/crtbegin.o(.text+0x0):crtstuff.c: first defined here
 
/opt/qt/3.3/lib/libqt-mt.dll.a(.text+0x3c52a0):crtstuff.c: multiple definition of `QGList::count() const'
 
/cygdrive/c/DOKUME~1/johannes/LOKALE~1/Temp/ccNwGMgn.o(.text$_ZNK6QGList5countEv+0x0):conftest.cc: first defined here
 
/opt/qt/3.3/lib/libqt-mt.dll.a(.data+0x78cc4):qrtlcodec.cpp: multiple definition of `vtable for QGList'
 
/cygdrive/c/DOKUME~1/johannes/LOKALE~1/Temp/ccNwGMgn.o(.rdata$_ZTV6QGList+0x0):conftest.cc: first defined here
 
/opt/qt/3.3/lib/libqt-mt.dll.a(.data+0x5fb3c):qrtlcodec.cpp: multiple definition of `typeinfo for QPtrCollection'
 
/cygdrive/c/DOKUME~1/johannes/LOKALE~1/Temp/ccNwGMgn.o(.rdata$_ZTI14QPtrCollection+0x0):conftest.cc: first defined here
 
/opt/qt/3.3/lib/libqt-mt.dll.a(.data+0x62604):qrtlcodec.cpp: multiple definition of `typeinfo name for QPtrCollection'
 
/cygdrive/c/DOKUME~1/johannes/LOKALE~1/Temp/ccNwGMgn.o(.rdata$_ZTS14QPtrCollection+0x0):conftest.cc: first defined here
 
/opt/qt/3.3/lib/libqt-mt.dll.a(.data+0x607ec):qrtlcodec.cpp: multiple definition of `typeinfo for QGList'
 
/cygdrive/c/DOKUME~1/johannes/LOKALE~1/Temp/ccNwGMgn.o(.rdata$_ZTI6QGList+0x0):conftest.cc: first defined here
 
/opt/qt/3.3/lib/libqt-mt.dll.a(.data+0x63ba4):qrtlcodec.cpp: multiple definition of `typeinfo name for QGList'
 
/cygdrive/c/DOKUME~1/johannes/LOKALE~1/Temp/ccNwGMgn.o(.rdata$_ZTS6QGList+0x0):conftest.cc: first defined here
 
configure:40300: $? = 1
 
configure: failed program was:
 
#include "confdefs.h"
 
#include <qglobal.h>
 
#include <qapplication.h>
 
#include <qcursor.h>
 
#include <qstylefactory.h>
 
#include <private/qucomextra_p.h>
 
#if ! (QT_VERSION >= 0x030300)
 
#error 1
 
#endif
 
</pre>
 
 
 
----
 
Jo-Hanes:
 
<pre>
 
collect2: ld terminated with signal 11 [Segmentation fault], core dumped
 
</pre>
 
shows that ld, the linker that's called by gcc after it finishes compiling the source file, has crashed. That's pretty weird and very likely to indicate a bug in ld (probably the cygwin version).
 
 
 
That said, if it worked before it seems reasonable to expect it to work now. Could you have made some changes to environment variables or installed libraries since then?
 
 
 
--[[User:Ringerc|Ringerc]] 08:16, 18 Mar 2005 (UTC)
 
 
 
 
 
----
 
As i remember, i had installed the cvs version of qt in /usr/local/lib and then it worked. don't know if there were any other switches. now i have the qt-snapshot installed and it doesnt work. variables could have changed, yes. but dunno into what. libraries werent installed as is remember.
 
will try to get it working again.
 
 
 
--[[User:Jo-hannes|jo-hannes]] 10:52, 18 Mar 2005 (UTC)
 
 
 
----
 
I just updated my own little code section up above to reflect my recent similar experiences with the addition of a search I ran on the file system for qt-mt.
 
 
 
--[[User:Hap0|Hap0]] 19:44, 18 Mar 2005 (UTC)
 
 
 
----
 
Do you have tried to run the above mentioned link by hand using the code snippet from configure using the flags set by LDFLAGS ? Seems that the LDFLAGS isn't taken.
 
 
 
--[[User:RHabacker|RHabacker]] 23:58, 18 Mar 2005 (UTC)
 
 
 
----
 
 
 
Hey it worked! Thanks for the helpful hints Ralf offered on the kde-cygwin mailing list. :) I updated my recipe above to reflect what worked. --[[User:Hap0|Hap0]] 00:11, 19 Mar 2005 (UTC)
 
 
 
----
 
 
 
Ack now it doesn't work??? I'm doing the same thing??? ./configure now complains again of:
 
 
 
<pre>checking for Qt... configure: error: Qt (>= Qt 3.3) (library qt-mt) not found. Please check your installation!
 
For more details about this problem, look at the end of config.log.
 
Make sure that you have compiled Qt with thread support!</pre>
 
 
 
from config.log:
 
<pre>...
 
conftest.c: In function `main':
 
conftest.c:19: error: `not' undeclared (first use in this function)
 
conftest.c:19: error: (Each undeclared identifier is reported only once
 
conftest.c:19: error: for each function it appears in.)
 
conftest.c:19: error: parse error before "big"
 
configure:3378: $? = 1
 
configure: failed program was:
 
| /* confdefs.h.  */
 
...</pre>
 

Latest revision as of 21:49, 14 January 2018

Native Windows version release information

  • Scribus on Windows -- See this page first for all the important install info on the native Windows version.
    • This will not run on Win95, Win98 or WinME. Scribus requires the capabilities of Windows 2000, XP, Vista, Server 200x, or Windows 7, 8, or 10. Attempts to run Scribus on Win9x or WinME will fail due to the absence of a number of system requirements which cannot practically be met.
    • With the release of 1.3.2, help documentation from docs.scribus.net has been integrated with the main package across all platforms.

64-bit Windows (of any of those compatible versions mentioned above)

Scribus 1.4.6 is available as a 64-bit version that can be installed on Windows Vista 64-bit, Microsoft Windows 7 64-bit, and Microsoft Windows 8 64-bit.
For previous versions, there is no 64-bit version of Scribus. Nonetheless, the 32-bit version works without a hitch, and without any other considerations as you use the installer for your Windows machine.

Python

If you install Scribus using the installer from Sourceforge, you should have a working version of Python 2.7 with Scribus 1.5.x. Some scripts that you may wish to use or write yourself may need Python packages not supplied with Scribus, and you cannot add them yourself. The answer in this situation is to install Python 2.7 on your system, along with any necessary or desired packages, such as PIL (Python Imaging Library).

In order for Scribus to use this system-based Python you need to deactivate the version included with Scribus. This is actually a simple matter. Go to C:\Program Files\Scribus 1.5.3\ (or whatever Scribus version you have installed), and look for a directory named python\. Just change its name to anything else, like oldpython\, and when you next start Scribus it will use the system Python.

Notes

  • Ghostscript 8.53 or newer required for EPS, PS import and printing.
    • When you first run Scribus, you must go to Edit>Preferences>External Tools and change "name of executable" to wherever you have installed Ghostscript to. You must choose the "gswin32c.exe" version for Scribus to run! For example, set it to: "C:/Program Files/gs/gs8.53/bin/gswin32c.exe"

Obtaining GDI+

Scribus under Windows 2000 requires the GDI+ library from Microsoft. There are other legal sources for the library for those who don't use IE or don't want to go through the "Genuine Windows" validation process — which has come under severe criticism and has been reported to produces false negatives in some cases (at the Windows Genuine Advantage Forum, for example):

  • GDI+ is also distributed here. This is part of the download archive within the portal of one of Germany's major ISPs. You don't need to understand German to use the page, just find the "zum Download" button and then, on the next page, the "Download starten" button. This will download Microsoft's own installer for the US English version of the library.
  • Possibly the simplest way of meeting the GDI+ requirement is to search the file gdiplus.dll on your hard disk and copy it into the directory that contains the Scribus executable. (The "official" download does not install any files beyond gdiplus.dll either.) There are freely available applications whose installer puts the file into their application directory. Such applications are:

When obtaining GDI+ from an "unofficial" source such as one of the above, it is important to remember that older versions of the file were suffering from a critical bug that affected the processing of JPEG files. The bug was reported in September 2004, and as of September 2006, the current version is of gdiplus.dll is 5.1.3102.1360.