[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