Difference between revisions of "MacOSX version of Scribus"

From Scribus Wiki
Jump to: navigation, search
Line 85: Line 85:
Ah, yes, the screenshot:
Ah, yes, the screenshot:

Revision as of 20:19, 5 March 2005

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 Scribus.app/ 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: