Q and A § Document Index § Scribus and Pre-Press
Added 01:01:2003 / Updated 05:05:2003
4.8 Can Scribus run on KDE - Cygwin and Windows 2000?
Disclaimer: This is in the "just for fun" category.The short answer is yes; not perfectly - and - it is getting closer by the day.
When I first heard of the KDE-Cygwin project, I thought to myself, "Well there are fans of KDE, but porting all of QT 2 and KDE 2.2.2 to run on top of Windows was asking maybe a bit much?". However, I just think the idea of being able to run KDE and QT apps like Scribus natively as the default desktop on Windows 2000/XP is a really cool idea. Just because it can be done. Right now there is a small group working on the internals of Cygwin and KDE 3 and the X11 version of QT at: http://kde-cygwin.sourceforge.net/
Scribus 0.6 with KDE 2.2.2 Qt 2.3.1
Scribus 0.6 actually ran rather stable without memory leaks or crashes, given the ported QT and KDE 2.2.2 sources are described as beta. I downloaded the packages and installed them per the instructions on the web site and slow but surely I had familiar KDE 2.2.2 running in a short time. It ran a bit slow, but quite stable - much more than I expected. Then, I tried a test compile of Scribus and it actually worked pretty much the first time after a few manual installs of some libraries. Scribus 0.6 stable (the last QT 2 version) compiles uneventfully on KDE 2.2.2 and Cygwin QT 2.3.1 with gcc 2.95.3. At the time, it seemed interesting as a proof of concept and a good test of how portable Scribus might be.
Scribus - KDE 3.1.1 and QT 3.1
Now, with the recent release by the KDE-Cygwin project of a complete ported KDE 3.1.1 desktop and Qt 3.1.0. Scribus and KDE for everyday use on Windows 2K or XP is getting close. Today, I was with a lot of little tweaks, able to cleanly compile three different versions of Scribus 0.7.2, 0.8 stable and the latest 0.9.9 development release. With some brief testing of 0.7.2 and 0.8, I was able to open edit and save files, as well as exercise a great number of functions within Scribus. The screen captures will show you better than words.
Thanks to the recent addtion of "headless" support in Cygwin, you can run Cygwin and KDE full screen. When running in "headless" mode, If you did not know it, you would think it was just another linux box running KDE. Ctrl-Esc, brings you back to the Win 2k desktop. Compared to the KDE 2.2.2 port, it is a huge, huge leap in usability and polish. Ralf Habacker and his developer's have created a very slick single click installation package along with a companion package with all of the development libraries needed to compile Qt and KDE applications like Scribus with cygwin.
My brief experience with their port of KDE 3.1.1 shows remarkable stability (zero crashes), polish and a big speed gain. When a couple missing pieces are added (solid printing support - there is a port of Lpr underway for Cygwin), I could easily imagine using this as an everyday desktop on Win2k with moderately powerful hardware. The differences in speed can also be attributed to work put in by the KDE developers to speed up parts of KDE 3, as well as making changes throughout the whole KDE source tree to ease portting to Windows. Scribus 0.8 runs as fast or faster than it it does natively on my PII450 with 768 Mb of ram on RH 8.0. Launch to fully usable KDE 3.1.1 desktop is a measured 21seconds.Intial Results - Scribus 0.8:
- KDE 3.1.1 runs just as if you were natively running on a PIII 600 with plenty of memory. Menus snap open quickly. The Kontrol Panel and other bits work as expected. Konqueror crashed once - on ironically www.kde.com, though it is plenty fast, even considering that Cygwin + KDE really use a lot of unix-type sockets for I/O. File I/O is slower than native Win2k or Linux. You would notice it most when moving and copying large files or folders.
- Almost everything, except printing, PDF export and preferences panel work in Scribus 0.8. Menus and text draw smoothly with no flicker. The help browser and PDF form buttons work. All the palettes work properly. Imports text and images without problems. Tool cursors draw properly. Drawing and creating primitives like shapes, curves, polygons, etc work perfectly.
- Testing 0.9.9 spits out lots of errors trying to create new files - probably some imcompatibility or bug in the ported QT 3.1.0 We know this was not the best release for running Scribus. 3.1.2 is much much better.
What needs fixing:
- Getting ./configure to find the patched alternative X11 headers, so Scribus can find more fonts.
- Fixing / tweaking the locations of libraries, so Scribus can link the plug-in stuff with Qt. This will fix the PDF export problem.
- Waiting for Cygwin to get CUPS or Lprng ported. KDE-Cygwin has the CUPS /Kprinter backed ported and working, it just can't find a spooler.
Hints:
- You need lots of memory and decent hardware - I would not even try this on a workstation with less than 512 Mb of memory and at least a 500 MHZ processor. I would say for KDE 3.1.1 as full time desktop, you would want at least a 1Ghz PIII or Athlon. I tested KDE3.1.1 on an Athlon XP 1800 with 512 Mb of ram, purpose built for DTP. Compiling and linking Scribus took over 120 mb of memory alone. While attempting a first compile of Scribus, I saw a peak memory useage of 487 Mb.
- Forget Windows Me or 9x, you need the superior memory managment of 2K or XP. Plus, Cygwin is much happier on NTFS.
- You need to pay attention to the default install of Cygwin, and the most current version will not work. Cygwin recently added support for 64 bit files and it is not compatible with the currently ported Qt. Qt 3.1 has some support as I understand, if enabled at compile time..
- The current Cygwin was recently converted to GCC 3.2, so you need a slightly older version of core packages like autoconf, sed, make etc. GCC 2.95.3 is needed to compile anything against Qt, currently. A 3.1.1 port with GCC 3.2 is in the works.
- You need the specially patched version of ld, which enables auto import of symbols. The default ld in cygwin will not work.
- IInstructions and detailed notes to follow for installing Cygwin, KDE 3.1.1 and QT from scratch. Check back in the next few days.
That Scribus can actually compile with such ease is a great credit to Ralf Habacker and the KDE-Cygwin team. They started 2 years ago with KDE 1.45. QT, which gets better and better with each release. Credit must also go to Cygwin for providing those who must use Windows, a complete Posix environment with an excellent implementation of Xfree86. Moreover, recently work has begun to provide a layer of Win32 compatibility to the GPL QT source. This would be a gain even more performance improvements, as it would allow developers to target running KDE and QT applications to run natively on Win32.
What would be required to required to have Scribus really running well on Win32? Probably not a tremendous amount of work, mostly X11 functions to Win32 windowing functions and some work on accessing fonts and printing. Scribus has very little platform dependent code, except for X11 libs. A cool project for someone with the right skills...