MacOSX version of Scribus

From Scribus Wiki
Revision as of 20:19, 5 March 2005 by Mhanski (talk | contribs)
Jump to: navigation, search
This article is part of the Ongoing Discussions series.
Installation Usability MacOS Fonts Other

On the Scribus mailing list, Andreas Vox have started an interesting discussion on bringing Scribus natively to Mac OSX. Join in with your opinion!

I noticed that you still require X11 for the MacOSX version of Scribus.

I managed to compile Scribus 1.2.1 with Qt/Mac native and I wondered if you'd like to get some hints how it is done. In fact it was quite easy once I solved my libtool problems (screenshot attached :-) )

So this is what I did:

0. Started with the Scribus 1.2.1 sources

1. configured Scribus to use Qt/Mac inbstead of the fink Qt version

2. replaced all gdk-* sourcefiles with empty files

3. commented out all #include <X11.h> etc.

4. Removed GC from scpainter

5. Rewrote scpainter::end():

void ScPainter::end()
        QImage qimg(m_width, m_height, 32, QImage::BigEndian);
        QRgb * bits = (QRgb *) qimg.bits();
        int words = qimg.numBytes() / 4;
        art_u8 * p = m_buffer;;
        for (int i=0; i < words; ++i) {
                art_u8 r = *p++;
               art_u8 g = *p++;
               art_u8 b = *p++;
               art_u8 a = *p++;
               *bits++ = qRgba(r,g,b,a);
        bitBlt(m_target, 0, 0, &qimg);

6. libtool nuisances:

6a) Apply fink patch to use correct -bundle for libtool

6b) Remove -s option (stripping is no good idea if you want to link plugins)

7. Make Scribus ignore any "-psn_*" commandline options passed by Qt

8. Adjust a few #includes to MacOSX

9. Created a rudimentary bundle (thanks to Ronald Florence who did the same for LyX so I just had to replace a few strings)

The application still uses the files (plugins etc.) which Scribus installs to /usr/local. The following libraries get linked:

/sw/lib/libjpeg.62.dylib (compatibility version 63.0.0, current version 63.0.0)
/sw/lib/libart_lgpl_2.2.dylib (compatibility version 6.0.0, current version 6.16.0)
/usr/local/lib/libfreetype6.dylib (compatibility version 6.2.0, current version 6.3.4)
/usr/lib/libcups.2.dylib (compatibility version 2.0.0, current version 2.5.0)
/usr/lib/libssl.0.9.7.dylib (compatibility version 0.9.7, current version 0.9.7)
/usr/lib/libcrypto.0.9.7.dylib (compatibility version 0.9.7, current version 0.9.7)
/sw/lib/liblcms.1.dylib (compatibility version 2.0.0, current version 2.12.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 71.1.1)
/sw/lib/libtiff.3.dylib (compatibility version 3.6.0, current version 3.6.1)
libqt-mt.3.dylib (compatibility version 3.3.0, current version 3.3.3)
/sw/lib/libpng.3.dylib (compatibility version 3.0.0, current version 3.0.0)
/usr/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.0.0)

I still have problems with some plugins and some icons don't show, but otherwise it's usable. Anyone who want's to test and help finishing it to a proper MacOSX application?

Regards Andreas

Ah, yes, the screenshot: