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
