Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

I've been trying to get scribus to work on my new gentoo 12.1 (amd64, XFCE, qt 4.8.2) installation, but when running as a regular user the program won't start up. Thanks to suggestions and extra tests below I've narrowed it down to a problem with .ICEauthority, when I move the file (or start Scribus as root, sho doesn't have the file) it loads up perfectly. The file is created at login automatically though, so removing it is no option.

I've tried these ebuilds, with the same result:

  • Stable amd64 (1.4.0-r2)
  • Unstable amd64 (1.4.1)
  • Stable i386 (1.4.0-r2)

Some strace results, I've mixed strace -eopen and full output on the first one.

As User:

open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
open("/home/xxx/.ICEauthority", O_RDONLY) = 8
open("/home/xxx/.ICEauthority", O_RDONLY) = 8
open("/home/xxx/.ICEauthority", O_RDONLY) = 8
open("/home/xxx/.ICEauthority", O_RDONLY) = 8
open("/home/xxx/.scribus//prefs140.xml", O_RDONLY|O_CLOEXEC) = 8
open("/usr/share/scribus/translations/scribus.en_GB.qm", O_RDONLY|O_CLOEXEC) = 8
open("/etc/nsswitch.conf", O_RDONLY)    = 8
open("/etc/ld.so.cache", O_RDONLY)      = 8
open("/lib64/libnss_compat.so.2", O_RDONLY) = 8
open("/lib64/libnsl.so.1", O_RDONLY)    = 8
open("/etc/ld.so.cache", O_RDONLY)      = 8
open("/lib64/libnss_nis.so.2", O_RDONLY) = 8
open("/lib64/libnss_files.so.2", O_RDONLY) = 8
open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 8
open("/etc/passwd", O_RDONLY|O_CLOEXEC) = 8
fcntl(8, F_GETFD)                       = 0x1 (flags FD_CLOEXEC)
lseek(8, 0, SEEK_CUR)                   = 0
fstat(8, {st_mode=S_IFREG|0644, st_size=1129, ...}) = 0
mmap(NULL, 1129, PROT_READ, MAP_SHARED, 8, 0) = 0x7f748c6bd000
lseek(8, 1129, SEEK_SET)                = 1129
munmap(0x7f748c6bd000, 1129)            = 0
close(8)                                = 0
write(7, "\1\f\1\0\7\0\0\0\1\0\0\0\0\0\0\0\6\0\0\0UserID\0\0\0\0\0\0"..., 64) = 64
--- SIGSEGV {si_signo=SIGSEGV, si_code=SEGV_MAPERR, si_addr=0x7070415173} ---
rt_sigaction(SIGALRM, {SIG_DFL, [ALRM], SA_RESTORER|SA_RESTART, 0x7f7488617bc0}, {SIG_DFL, [], 0}, 8) = 0
fstat(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 0), ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f748c6bd000
write(1, "Scribus Crash\n", 14)         = 14
write(1, "-------------\n", 14)         = 14
write(1, "Scribus crashes due to Signal #1"..., 34) = 34

As root (same first file, different afterwards):

open("/usr/share/locale/en/LC_MESSAGES/libc.mo", O_RDONLY) = -1 ENOENT (No such file or directory)
Qt: Session management error: Authentication Rejected, reason : None of the authentication protocols specified are supported and host-based authentication failed
open("/root/.scribus//prefs140.xml", O_RDONLY|O_CLOEXEC) = 7
open("/usr/share/scribus/translations/scribus.en_GB.qm", O_RDONLY|O_CLOEXEC) = 7
open("/usr/share/scribus/icons/Splash.png", O_RDONLY|O_CLOEXEC) = 7
open("/etc/qt4/Trolltech.conf", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory)
open("/usr/lib64/qt4/plugins/imageformats", O_RDONLY|O_NONBLOCK|O_DIRECTORY|O_CLOEXEC) = 8
open("/usr/lib64/qt4/plugins/imageformats/libqgif.so", O_RDONLY) = 8
open("/usr/lib64/qt4/plugins/imageformats/libqico.so", O_RDONLY) = 8
open("/usr/lib64/qt4/plugins/imageformats/libqjpeg.so", O_RDONLY) = 8
open("/usr/lib64/qt4/plugins/imageformats/libqmng.so", O_RDONLY) = 8
open("/etc/ld.so.cache", O_RDONLY)      = 8
open("/usr/lib64/libmng.so.1", O_RDONLY) = 8
open("/usr/lib64/liblcms.so.1", O_RDONLY) = 8
open("/usr/lib64/qt4/plugins/imageformats/libqtiff.so", O_RDONLY) = 8

I ran it through gdb (after compiling without -O2):

(gdb) run
Starting program: /usr/bin/scribus 
[Thread debugging using libthread_db enabled]

Program received signal SIGSEGV, Segmentation fault.
0x0000000000e932c8 in typeinfo name for ScribusQApp ()
(gdb) backtrace
#0  0x0000000000e932c8 in typeinfo name for ScribusQApp ()
#1  0x00007ffff70c94bf in ?? () from /usr/lib64/qt4/libQtGui.so.4
#2  0x00007ffff70c9789 in ?? () from /usr/lib64/qt4/libQtGui.so.4
#3  0x00007ffff278b11e in _SmcProcessMessage () from /usr/lib64/libSM.so.6
#4  0x00007ffff257a9c3 in IceProcessMessages () from /usr/lib64/libICE.so.6
#5  0x00007ffff65b7de3 in QMetaObject::activate(QObject*, QMetaObject const*, int, void**) () from /usr/lib64/qt4/libQtCore.so.4
#6  0x00007ffff660338e in QSocketNotifier::activated(int) () from /usr/lib64/qt4/libQtCore.so.4
#7  0x00007ffff65bfaab in QSocketNotifier::event(QEvent*) () from /usr/lib64/qt4/libQtCore.so.4
#8  0x00007ffff704c8b4 in QApplicationPrivate::notify_helper(QObject*, QEvent*)
() from /usr/lib64/qt4/libQtGui.so.4
#9  0x00007ffff705136f in QApplication::notify(QObject*, QEvent*) () from /usr/lib64/qt4/libQtGui.so.4
#10 0x00007ffff65a33ab in QCoreApplication::notifyInternal(QObject*, QEvent*)
() from /usr/lib64/qt4/libQtCore.so.4
#11 0x00007ffff65d0c18 in ?? () from /usr/lib64/qt4/libQtCore.so.4
#12 0x00007ffff29d6672 in g_main_context_dispatch () from /usr/lib64/libglib-2.0.so.0
#13 0x00007ffff29d6e68 in ?? () from /usr/lib64/libglib-2.0.so.0
#14 0x00007ffff29d7041 in g_main_context_iteration () from /usr/lib64/libglib-2.0.so.0
#15 0x00007ffff65d12bf in QEventDispatcherGlib::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#16 0x00007ffff70edc7e in ?? () from /usr/lib64/qt4/libQtGui.so.4
#17 0x00007ffff65a722f in QCoreApplication::processEvents(QFlags<QEventLoop::ProcessEventsFlag>) () from /usr/lib64/qt4/libQtCore.so.4
#18 0x0000000000c26285 in ScribusQApp::init() ()
#19 0x0000000000e04250 in mainApp(int, char**) ()
#20 0x0000000000e041f8 in main ()

I usually always find solutions to a problem online - so I'm not used to filing bug reports. However, I can't seem to find any cases with this problem this time.

So where should I go from here - file a bug report with scribus? Would they need any additional information from the one provided here?

Any advice would be greatly appreciated.

All the best and thank you for your time.

share|improve this question
    
LibreOffice is no QT app, is it? But you probably tested others, so I'm just nit-picking, sorry. –  sr_ Aug 3 '12 at 10:53
    
You're right - sorry, was confused by the output of equery. Did try other QT app though, which works fine. –  NwN Aug 3 '12 at 12:58
    
A likely explanation is a bug triggered by something in a configuration file that Scribus reads. Some things to try: if you run mkdir ~/foo; cp -p ~/.Xauthority ~/foo/; HOME=~/foo scribus, does it crash? Run strace -eopen scribus to see what files it loads. Run strace -s9999 -o /tmp/scribus.$UID.strace as root and as your user and compare the traces. –  Gilles Aug 3 '12 at 22:16
    
Thank you very much Gilles, that seems to have helped to clarify the problem, but no solution as of yet - I'll update the post. –  NwN Aug 4 '12 at 4:54
    
What kernel version are you running ? And don't file a bug report to gentoo. Maybe you could try modify the ebuild file, build the package with debug information, which will easily identify the problem, but I'm off gentoo for a year, so can't test that myself now –  warl0ck Aug 4 '12 at 6:43
show 1 more comment

1 Answer 1

Did you compile Scribus with -no-rtti? The backtrace hints at a failure to locate the typeinfo of ScribusQApp. Scribus doesnt rely on RTTI and I thought Qt didn't, either. Yet the error occurs in an unnamed function in /usr/lib64/qt4/libQtGui.so.4. So my advice is to check the compile settings for Qt and Scribus and make sure they use the same RTTI configuration.

Don't bother to file a bug with bugs.scribus.net - the error occurs 17 calls down from the last call to a Scribus function, touching Qt, GLIB and icewm in between. We usually just tell people to use another window manager in this case :-)

/Andreas, Scribus developer

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.