[Scribus] Solaris 10 - getting really close
Mon Mar 7 00:10:18 2005
rheilke at dragonhearth.com (Rainer Heilke)

Greetings, all.

I’m not sure what changed in the last little while, but the newest CVS compiles under Solaris 10 SPARC. Thanks, guys! :-)

Unfortunately, Scribus core dumps with a Segmentation Fault on start-up. From watching the splash screen, this seems to happen when searching for fonts. Running freetype-config gives back 9.7.3, which seems a little odd, but maybe that’s what it is supposed to say? I used the 2.1.9 package from sunfreeware.com. Building freetype-2.1.9 directly works, but gives a pile of "dereferencing type-punned pointer" errors (and yes, that’s spelled correctly--what is "type-punned"?). It did build (freetype-config gave the same version number). I then removed the Scribus directory, slurped down the CVS tree, and rebuilt Scribus. On start-up, it crashed at exactly the same point.

Any ideas? We’re getting closer, and that’s a good sign. :-)—Rainer

Is fontconfig available for Solaris 10 and do you have some postscript fonts in an accessable directory?

The last time I played with Scribus on Solaris was a long time ago on Sol 8 x86.

Yes, that is encouraging news...—PLinnell

Solaris comes with a pile of PostScript fonts, so that’s covered. I don’t think there’s a fontconfig--nothing in my path (which is fairly extensive), but more to the point, no man page for it. There are all sorts of FcFont[...] entries in the man pages, though... Not sure what they all are. They all seem to reference 3fontconfig, which also has no man page.—Rainer

That sounds like fontconfig. It’s an open source library, remember - checking for documentation is hardly a conclusive way to determine its absence :S

Look for fontconfig.h and fontconfig.so (or whatever Solaris calls shared libraries ... I don’t have it installed yet).

I strongly suspect it’ll be present, given the Fc* manpages and the fact that Solaris 10 has GNOME, which tends to use fontconfig (and may require it, not sure).

You may need to tweak your PKG_CONFIG_PATH env var to include the directory where ’fontconfig.pc’ is if Scribus’s `configure’ script doesn’t find it the first time around.—Craig

Typically the first guess is fonts. Scribus must be finding some fonts. Do you have the ghostscript fonts installed, in particular Hershey? Nuke it if so. Scribus uses X11 for font finding, and then your additional font paths, which you wont have any of if you nuke your ~/.scribus/* prefs files.—Craig

I don’t have any .scribus/* files. The startup got far enough to create the directory, but not to populate it with anything. I don’t have any of the ghostscript suite installed, and an xlsfonts -display malaclypse:0 didn’t show any Hershey fonts (1604 fonts are there, many PostScript). I can do a double-check tomorrow night to see if Solaris 10 includes any other ghostscipt fonts without telling anyone, though.—Rainer

OK, so it seems Solaris 10 does install GhostScript fonts, probably through the sfw stuff. A pkginfo -l | grep -i ghost shows the Standard and Other fonts installed (but there does not seem to be a Hershey). So, I can try nuking the entire package (both, actually) and see what happens. Want me to give it a go?—Rainer

 
 

Any chance you can get a backtrace from the crash? Knowing exactly where it crashed would be really handy.

If you’ve compiled with --enable-debug, just

    $ gdb scribus    (gdb) run

and when Scribus crashes it’ll freeze. At that point, go back to the terminal and you should see a message telling you why Scribus crashed and when. Type `bt’ and press enter. That should result in a whole lot of output. If you send both the initial message, and the messages from `bt’, that would be really handy. Please be sure to compile with --enable-debug, since without that the messages are much less useful.—Craig

(gdb) run    Starting program: /usr/local/bin/scribus    warning: Lowest section in /usr/lib/libdl.so.1 is .dynamic at 00000094    warning: Lowest section in /usr/lib/libpthread.so.1 is .dynamic at 00000074    warning: Lowest section in /usr/lib/libintl.so.1 is .dynamic at 00000074

    Program received signal SIGILL, Illegal instruction.    0x007cbe68 in ?? ()    (gdb)—Rainer

(gdb) bt    #0 0x007cbe68 in ?? ()    #1 0xff2999c8 in FT_Get_Postscript_Name (face=0x7e5538) at ftobjs.c:2458    #2 0x002427ac in SCFonts::AddScalableFonts (this=0x516f80,     path=@0xffbfed80) at scfonts.cpp:421    #3 0x00243584 in SCFonts::GetFonts (this=0x516f80, pf=          {static null = {static null = <same as static member of an already     seen type>, d = 0x4f5f78, static shared_null = 0x4f5f78}, d = 0x7caf90,     static shared_null = 0x4f5f78}) at scfonts.cpp:539    #4 0x00386ad8 in ScribusApp::GetAllFonts (this=0x516c08) at     scribus.cpp:6606    #5 0x00355c44 in ScribusApp::initScribus (this=0x516c08) at scribus.cpp:211    #6 0x00354ae0 in ScribusApp::initGui (this=0x516c08) at scribus.cpp:138    #7 0x0039db00 in mainGui (argc=1, argv=0xffbff20c) at main.cpp:208    #8 0x0039d348 in main (argc=1, argv=0xffbff20c) at main.cpp:126    (gdb)

Hmm, doesn’t seem like that much output. But I double-checked, just to be paranoid, and config.log did say --enable-debug.

I’ll try getting rid of the GhostScript fonts, too, and see what happens.—Rainer

Yep, that’s what I meant. The amount of output can vary depending on what’s going on. --enable-debug provides the arguments to functions and the line numbers.

This is a crash in the Freetype libraries, and I strongly suspect it’ll be a bad font, perhaps one of the OpenWin fonts. This pretty much confirms what you already strongly suspected, but it’s always best to check.

I’m going to try to install Solaris 10 today, time permitting, so with luck I’ll be able to play around with it myself and fire up Scribus in a debugger.

I’d be handy to know what you had to do to get Scribus built in Solaris 10 so I can spend less time flailing around myself. I haven’t used Solaris yet, except an older version on a very basic level.—Craig

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Upgrading freetype can have "interesting" and unexpected results. Scribus might be compiling against the new freetype, but getting linked against the old one - with a fairly high chance of it going "splat". Alternately, it might be linking to the new freetype, but one of the libraries it uses may link against an older one - also potentially causing some unpleasantness.

I’ve had relatively few problems with installing a new Freetype on my systems when necessary, but I tend to build a new Qt against it too.

I have my Solaris 10 images now, it’s just a matter of getting around to installing them. I don’t suppose Solaris 10 would be compatible with Linux’s LVM or anything as unexpectedly and spectacularly useful as that?—Craig

I’ll recompile with the debug option, and see what happens. I’ll try to let you know tonight.

I don’t know what LVM is, so I can’t comment... Solaris 10 has some great features (like DTrace), but you need to know programming better than I do. :-(—Rainer

The last time I tried Scribus on Solaris it crashed at the same point. This was on Solaris 8. FreeType was crashing when trying to read one of the fonts in /usr/openwin/... I modified the font path in xset until it didn’t crash (i.e. take out directories). Turns out that I took out the directory containing the offending point just have Scribus tell me it didn’t have any PS fonts. In effect, I never got Scribus working on Solaris. I remember reading about other people needing to go back to older versions of FreeType. You could try older versions (before v2.1.9). Another thing I didn’t try but you could is to NOT use any of the Openwin fonts but to download a collection that is known to work and see if FreeType can work with that.—Adam