[Scribus] [Patch] MacOSX native

Martin Costabel costabel
Mon Mar 14 10:06:23 CET 2005


Craig Ringer wrote:
[]
> Sounds good. I'm still working on build issues and getting plug-ins to
> work properly.
> 
> Martin, do you patch Scribus in any way to make plug-ins work in fink?

Of course I do. The kde admin system knows how to make dylibs for 
darwin, but not how to make plugins. Ben Reed (the only person who knows 
how to build kde on Mac OS X) usually replaces the whole admin directory 
by a heavily patched one so that kde build plugins correctly, but for 
scribus I am getting away with a one-line perl patch command. I have 
been doing this since scribus-0.8 which, if I remember correctly, was 
the first one that actually worked on Mac OS X. The funny thing is that 
Qt/Mac builds its own plugins (in plugins/designer and 
plugins/imageformats) correctly without further aid. You could perhaps 
study their build system.

> If so, how? I can get the first plugin or gettext plugin to load by
> using QLibrary, but if I try to pull in the same symbol again from the
> next lib it fails. I'm assuming this is related to the
> twolevel_namespace thing, and the way Mach-O dylibs work (can't unload
> them using dlcompat/QLibrary?), but I'm not sure why yet. If someone
> else has already solved it, I'm all ears.

You have to understand the distinction - which doesn't exist on linux - 
between dynamic libraries (*.dylib) and modules (*.so). The former 
cannot be unloaded, the latter can. Plugins tradidionally use the .so 
extension.

You should probably have a look at the scribus.info file from Fink or, 
what is almost the same, at the shell script used to compile scribus 
cvs. The latter can be found on the wiki, for example. Or look at the 
scribus-aqua.info file from the scribus-aqua-fink tarball that I 
attached to my recent message. This has been in the open for a long time 
for anyone to see. It is good that some of these things are now making 
their way into the scribus sources.

Besides the fix for building plugins, there are quite a few other 
patches I have had to apply always. Most of them concern libraries that 
are detected by configure correctly, but then for some reason or other 
are not or only incompletely placed on the linker line in the Makefiles. 
This concerns libxml2, libtiff, libcups, libfreetype, libqt-mt.

Some of these patches for library detection would not be needed on a 
virgin system where you only build Scribus and its dependencies and no 
other software and where you can place everything into standard 
/usr/local places, but this is not an option for Fink, and not an option 
for me.

Another patch concerns the strndup() function that doesn't exist here, 
but isn't really needed and can be replaced by strdup().

The final long-standing patch comes from the fact that the Apple 
compiler seems to be more picky about the distinction between "char" and 
"const char" than what Scribus developers seem to be using.

-- 
Martin





More information about the scribus mailing list