Greetings, all.—Rainer
[Scribus] Solaris 10 - getting really close
Mon Mar 7 07:31:06 2005
craig at postnewspapers.com.au (Craig Ringer)

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

Cool.

I have Solaris 10 installed now, and have managed to cobble together enough of my "required" apps that I can work on it while I try to get this stuff working. I’m actually unable to get the `gcc’ from sunfreeware.com to work - I can’t find critical headers like ’new’ in the package. However, I just got Qt built with the compiler in /usr/sfw/bin.

I was able to fix that problem you were having by changing ’CS’ to ’CSx’ wherever it’s used in src/xml/qxml.cpp . It turns out that somewhere, somebody has done a:

#define CS 15

resulting in preprocessed output like this:

bool QXmlSimpleReader::parseChoiceSeq() {    const signed char Init = 0;    const signed char Ws1 = 1;    const signed char 15 = 2; <-- oops!    const signed char Ws2 = 3;    const signed char More = 4;

instead of:

bool QXmlSimpleReader::parseChoiceSeq() {    const signed char Init = 0;    const signed char Ws1 = 1;    const signed char CS = 2;    const signed char Ws2 = 3;    const signed char More = 4;

and causing that bizarre error message. I expect a ’#undef CS’ for that file might be safe too, but figured changing the variable name would be safer since it’s just a local variable.

Anyway, now that that’s working, on to trying to make Scribus build.—Craig

Cool. Sorry about not responding last night--ran later than planned.

The headers issue sounds like the mkheaders thing. Do:

find /usr/local -name mkhead\* -print

and, as root, run the command whereever it finds it.

I’ll try to follow up more tonight. Running late for work...—Rainer

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Don’t worry ... there doesn’t appear to be anything wrong with the fonts after all. At least, nothing that’s causing my build (1.3cvs btw) to crash. It’s hard to say what the problem might be - extra fonts I don’t have, library / compiler incompatibilities between the gzillion different versions of compilers and libs that you seem to end up with on Solaris 10, or something else entirely.

In terms of what I needed to install, I do have the sunfreeware.com gcc installed, I’m just using the /usr/sfw/bin/g++ one since it seems less problematic here. I have a lot of other sunfreeware.com packages installed too, including libjpeg, libtiff, libpng, libxml, fontconfig, freetype, perl, autoconf, automake, m4, and others.

I’ve already detailed how to get Qt to build without needing gcc from sunfreeware.com . It looks like Scribus builds fine with the same compiler, too (and needs a similar workaround for weird macros).

I did have to make a few tweaks, including a workaround in sciten.h where there was a macro defined for `DS’ that was causing issues ; I #indef’d it in that file and that took care of that. I need to track down where those defines are coming from.

For some reason, admin/install-sh was lacking execute permissions, so I had to `chmod a+x’ that.

The only other Scribus compile issue I ran into is that, at least on my system, /usr/sfw/lib/libstdc++.la is an empty *file*, resulting in an error like this from libtool:

libtool: link: `/usr/sfw/lib/libstdc++.la’ is not a valid libtool archive

I just copied /usr/local/lib/libstdc++.la from the sunfreeware.com compiler to /usr/sfw/lib/libstdc++.la. Yes, this is horrible and scary ... but appears to have worked. I’d like to find out what was going on properly later.

With that done it all built and installed fine. I did have to set a sane UI font using qtconfig to solve a font issue (unrelated to yours I suspect) when creating new documents, but once that was done it all worked fine.

It’s still horribly ugly - I don’t have RENDER support in Qt yet - and there are other issues, but it seems to work ok. I’ll document the install process a bit better on the wiki later.—Craig

I installed the complete distribution (you’ll need the OEM support on x86, too), and selected any relevant software from the companion CD. Rather than the latter, you may be better off pulling down the packages from SunFreeWare.com. They are often a bit more current. I actually had to pull out a couple Companion CD packages, and replace them with SunFreeWare.com installs.

If Qt doesn’t compile with thread support (do this one first), check the caveat for GCC on the sunfreeware site (I think it was regarding mkheaders). I haven’t found a precompiled QT for Solaris with thread support. The rest of the dependencies should be fine, either with a standard ./configure; make, or from the sunfreeware packages. After that, the latest Scribus CVS should be pulled down and it should compile. Note that I haven’t hunted down the developer package for Python for Solaris, so the script plugin doesn’t get pulled in.

That should cover it. If you have any questions, I can try to help. My responses will be about this time of night, as I’ll be out the next two evenings.—Rainer